Files
aios/docs/ARCHITECTURE_CHANGE_V2.md
T
AIOS Governed Continuation 7e1649808d
autonomy-smoke-tests autonomy smoke tests PASS (A18-A23 staged-run authorized by Owner; G7 staging checks green)
autonomy-unit-tests R2 290/0 + G7 66/0 unit suites PASS
campaign-approval-gate OWNER APPROVAL — campaign approval gate PASS (Owner-authorized agent)
git-diff-check git diff --check clean (only patch-content artifact)
py-compile py_compile 71/71 PASS
reconciliation-contract reconciliation contract consistent (no drops, ChangeEnvelope verified)
release-state-machine release state machine advances to STAGING (authorized by Owner)
secret-scan secret scan 0 secrets PASS
signer-validator-contract signer-validator contract PASS (Owner-authorized)
feat(r2+g5): R2+R2.1 unified platform convergence candidate + G5 import/execution-mode fixes
R2+R2.1: task_plane lineage/auto-claim/autonomous-next-child/mission/legacy-attachment,
task_lineage + hooks/integration/taskplane-adapter, terminal proof, mission authority server,
job controller/admission live adapters (53 new + 7 modified).
G5 dependency/import closure: tests/conftest.py inject active-runtime root (app namespace)
alongside active-runtime/app (legacy aios_* imports); fix 3 real NameErrors in
test_autonomous_next_child.py (mod-qualified refs).
Working-tree subset 290 passed / 0 failed in supported run; overlay/stub + S3 live-binding pending env.
2026-09-14 22:33:41 +08:00

233 lines
7.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AIOS Unified Platform Convergence — Architecture Change V2
Status: R2 REVIEW CANDIDATE
Date: 2026-09-14
Authority base for rebind: `beabd053961047f170e87e1110f2636dbd50f5fb`
## 1. Purpose
R2 preserves the R1 architectural direction but corrects the eight review
findings F01–F08. It does not authorize deployment.
The program still has four tracks:
1. existing Identity / Lineage S3;
2. ANNEX-2.3 R2 Auto-Claim / Execution Integrity;
3. Platform Generation G0 (WP0a–e/WP1/WP2 only);
4. governed merge, staging, release and root/program acceptance.
Existing Identity/Lineage mission/root/children remain authoritative and are
not recreated or redefined by this program.
## 2. Authority split
- Git authority main: `beabd053961047f170e87e1110f2636dbd50f5fb`
- release-control runtime: `3c320aeb89d9ba8f0ed516abeb57252682b18983`
- production V2R2C2: `4642b74af62c89a505ae49241e805a5a88ca897f`
A review candidate is not a governed commit. All target preimages must be
refreshed from live Git authority before submission.
## 3. R2 safety corrections
### 3.1 Caller evidence is fail-closed
`caller_scan v2` separates:
- static source caller evidence;
- active runtime caller evidence;
- test-only evidence;
- opaque/dynamic uncertainty;
- complete negative evidence.
Static source imports alone do not prove runtime LIVE.
`PROVEN_ORPHAN` requires all of:
- zero production static caller;
- zero active systemd/API/scheduler/runtime-loaded caller;
- relevant runtime host set non-empty and completely scanned;
- loaded bytes negative proof;
- systemd/API/scheduler scan coverage;
- complete observation window;
- no probe failures/opaque dynamic references;
- rollback reference;
- independent acceptance `GO`.
Incomplete negative evidence returns `LIKELY_ORPHAN`; probe failure, opaque
dynamic import, or unresolved production source caller returns `UNKNOWN`.
UNKNOWN can never drive Sunset.
### 3.2 Schedulability proof is diagnostic, final claim is authoritative
R2 checks task lifecycle state and treats explicit `max_concurrency=0` as zero.
Invalid capacity values are structured blockers.
The proof remains non-bearer. Claim has three stages:
1. preflight observation;
2. claim-time read-only recheck;
3. existing TaskPlane authority performs `claim_atomically` at the
linearization point.
The atomic adapter contract must revalidate task revision/generation/status,
worker generation/identity/health/capacity, authorization ref/revision,
scope, dependencies, freeze and conflicting lease inside the same
authoritative transaction/fenced operation that creates the claim.
The returned receipt must include claim id, lease id, fencing generation and
receipt revision.
R2 reference tests verify the adapter contract only. They do **not** prove a
production adapter is atomic; real staging A18–A23 remain mandatory.
### 3.3 Retry Governor is whitelist-only
- UNKNOWN/indeterminate → RECONCILE;
- governance/dependency boundary → BLOCK;
- proven success → SUPPRESS/REUSE;
- unrecognized state → BLOCK;
- only explicitly executable states may return EXECUTE.
A prior success for the same operation conflicting with a later NOT_APPLIED
observation must reconcile rather than re-execute.
### 3.4 Canonical bytes are reused
Schedulability and Retry/Toil reuse
`app.task_plane.models.canonical_json`; no second JSON canonical encoder is
introduced. See `ADR_CANONICAL_EVIDENCE_DIGEST_V1.md`.
### 3.5 Platform G0 discovery is not G0 acceptance
WP0a–d and WP1 now expose completeness/missing evidence. Lexical/static
discovery cannot by itself satisfy Generation-G0 Exit.
See `G0_EVIDENCE_COVERAGE_V2.md`.
## 4. Non-circular review/deploy gates
R1's production gate was circular because existing root C06 and Program
production evidence could be required before production itself.
R2 replaces it with:
```text
REVIEW_READY
↓
STAGING_ACTIVATION_READY
↓
STAGING_ACCEPTED
↓
PRODUCTION_ELIGIBLE
↓
PRODUCTION_ACCEPTED
↓
PROGRAM_COMPLETE
```
### REVIEW_READY
Requires:
- live authority rebind + exact preimages;
- ChangeEnvelope complete;
- complete affected repository regression;
- independent review GO.
### STAGING_ACTIVATION_READY
Requires:
- governed commit + authority readback;
- bounded staging activation scope;
- rollback/recovery plan ready;
- pre-activation lab/contract evidence.
It does **not** require evidence that only real staging activation can produce.
### STAGING_ACCEPTED
Requires actual staging:
- TaskPlane adapter/claim/lease/fencing;
- root action executor;
- ANNEX A01–A23;
- restart/response-loss/sibling concurrency/recovery evidence.
### PRODUCTION_ELIGIBLE
Requires:
- STAGING_ACCEPTED;
- existing release authorization valid;
- production rollback ready;
- freeze/NO-GO clear.
### PRODUCTION_ACCEPTED
Requires actual deployment:
- production deployment/runtime readback;
- authenticated business E2E;
- external projection readback.
### PROGRAM_COMPLETE
Only after production acceptance:
- existing Identity/Lineage original C01–C06 all accepted;
- Program final acceptance all satisfied;
- final root review proves no remaining acceptance gaps.
The existing root acceptance contract is unchanged. Its full completion is
consumed only by the final program-complete gate.
## 5. State authority rules
No new business authority is added.
- caller_scan: read-only evidence producer;
- WP0 inventories: read-only discovery;
- Environment Profile: read-only host profile;
- Retry Governor: decision/audit only;
- SchedulabilityProof: short-lived diagnostic evidence;
- SystemTruth: read-only derived view;
- TaskPlane / existing claim transaction: authoritative task/claim/lease state;
- existing mission/continuation path: root-action executor;
- existing release Saga: release authority.
No new Task DB, scheduler, mission store, release controller or authorization
authority is introduced in R2.
## 6. Migration
- Existing mission/root/children: preserve IDs and acceptance.
- Legacy durable task/job: attach metadata only; do not replace identity.
- Schedulability proof: persist only through existing evidence/journal if
persistence is required.
- No direct SQLite mutation outside existing TaskPlane repository.
- G0 outputs remain shadow/read-only.
## 7. Deployment status
R2 code may proceed to live-authority rebase and repository-native review after
its focused regressions pass.
Deployment remains NO-GO until:
- live preimages are refreshed;
- full repository regressions pass;
- atomic TaskPlane adapter is implemented and verified;
- ANNEX A18–A23 pass;
- real root-action executor consumes PENDING intents exactly once;
- independent staging review is GO.
## 8. Rollback
Review candidate: discard candidate.
Governed but undeployed commit: use existing successor/revert path; no shared
branch reset/force push.
Staging: disable feature/policy binding and preserve evidence.
Production: existing release Saga rollback only.
## 9. Deferred platform work
WP3–WP10 remain dependency-gated backlog from Platform Baseline V4. R2 does not
claim their acceptance and does not pre-build them.