Skip to content

plan: AF-CTR-04 delivered (complete after the Windows reruns at the post-#71 main); start AF-CTR-05 with its P0 scope - #82

Merged
deku2026 merged 3 commits into
mainfrom
plan/af-ctr-04-delivered
Nov 5, 2026
Merged

deku2026 merged 3 commits into
mainfrom
plan/af-ctr-04-delivered

Conversation

@deku2026

@deku2026 deku2026 commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

This PR records AF-CTR-04 as delivered, widens AF-CTR-05's task record before its work starts (execution-policy §1.6, part P0 of the reviewed AF-CTR-05 plan) and starts AF-CTR-05. It also records the deferred real-world validations of AF-CTR-04 in the acceptance register and two hand-overs (AF-AND-01, AF-PROD-01). It changes graph content, so it is reviewed like a task (execution-policy §4). States, sequence.md and every ledger line are written by tools/plan.py.

AF-CTR-04 -> delivered

  • PRs and merges (every SHA read with gh api repos/ArcForges/<repo>/pulls/<n> --jq .merge_commit_sha):
  • Publications (each run checked with gh run view: success at the merge SHA):
    • Contracts cohorts and Go tags 1.0.0-ci.424.1 (run 41724651206), 1.0.0-ci.426.1 (42005833954), 1.0.0-ci.430.1 (42016941693).
    • Cloud production, dark, 11 deploys 0.1.0-ci.517.1 to 0.1.0-ci.563.1. #132's own main push (41774844734) failed in the image build on GHSA-p3jp-9v83-76w9 and deployed nothing; #133 deployed both.
    • Proof: 7 deploys 0.1.0-ci.518.1 to 0.1.0-ci.558.1 (since #138 the main-push artifact); surfaces identity,pages,operations,fleet,mobile.
  • Labels in the delivered ledger line (as the evidence files state them):
    • REAL: X (logs/evidence/x-ctr04-2026-11-05/), N2-7, the keys rerun (keys-rerun/), H1 (logs/evidence/e3-h1-2026-11-04.md), H3 (logs/evidence/h3-mobile-2026-11-05.md, Cloud #141 comment 6660944407: PASSED on proof, all four mobile cases, assetlinks, the callback, Google's Digital Asset Links check and the regression; its two tooling defects were fixed in Cloud #142), the Go integration tests on real PostgreSQL, the 120 mobile vectors.
    • MOCKED: the virtual authenticator, the test-mode opener, node-probe and MobileProbe, the rehearsal edge platform.
    • NOT PROVEN: AR-23, AR-24 (opener; a node outside test mode on the owner's Credential Manager), AR-08/H-02 (Android App Link, Custom Tab hand-off, fragment, release identity), H-23, AR-11, bullet 2 with a real node, command keys on proof and private-half signing (AF-CTR-05), production.
  • Delivered, not complete: docs: remove hardcoded reviewer model requirements #71 changed CloudLink product code after X, the hosted OS secret-store tier run and the keys rerun (all on ArcForges 978d25d). complete follows in a later state-only Plan PR recording the re-runs at ArcForges main 4bc33da or later: the Windows tier (PASSED at 4bc33da, run 42061577006), X item 1 (PASSED at 4bc33da, logs/evidence/x-ctr04-2026-11-05/rerun-4bc33da/) and the keys check.

Record correction (ledger note on AF-CTR-04)

Computed from GitHub's file list of every PR against AF-CTR-04's repositories[].paths:

Acceptance register

  • AR-08: the mobile native authorization on a phone; prepared by AF-CTR-04 for the center side. A new §3 section hands the emulator checks (a) to (c) and the app rules to AF-AND-01 (no register entries), and gives the phone procedure with H-02.
  • AR-23: prepared by also names AF-CTR-04 (the node approval pages and the mobile authorization page); §3 addition.
  • AR-24 (new): a real node sign-in by a person outside --test-mode (OS opener, Credential Manager, CNG key, logout); §3 section with the procedure and the Credential Manager status of X (REAL in the hosted tier run 41994995309; the owner's local opt-in not run).
  • H-02: "Needed by" and "Blocks" name the mobile surface's asset links; notes name the proof test statement.
  • H-04: "Needed by" and "Blocks" name AF-PROD-01 for the upload certificate fingerprint in the asset links; AF-PROD-01's human_prerequisites gains H-04.
  • AF-CTR-04 acceptance_register: AR-08, AR-23, AR-24.

AF-CTR-05 widened and started (P0)

  • fakes_allowed (was empty): the nodetest channel client and the FakeCenter channel peer (Q3); also the virtual WebAuthn authenticator and IsolatedSecretStore, as AF-CTR-04's list has them.
  • Paths: Contracts src/internal/dotnet/** (Q4); Cloud .gitleaks.toml, .dockerignore, biome.json, tsconfig.json, deploy/** and ArcForges .github/** (the files AF-CTR-03's and AF-CTR-04's PRs changed outside their paths).
  • Acceptance: bullet 1 records the venues (Q5, decision delivery-1); bullet 3 STATE/node_offline (added by part D0; Q2).
  • Scope: the e-mail bound tightens the protobuf constraints to 254 while the frozen public/http/v1 documents stay at 320 (Q12).
  • Routed (ledger note): the six D3 annotations (C1); ArcForges docs: remove hardcoded reviewer model requirements #71 N-8 to N-12 (N1); nothing from H3 (its tooling defects are fixed in Cloud #142).
  • State active with a started line naming the part order P0, D0, C1, E0, C2, E1a, E1b, E2, N1, N2a, N2b, N3, E3, X, D.

AF-AND-01, AF-PROD-01

  • AF-AND-01 notes and a ledger note: the emulator checks (a) to (c) and the MobileNativeAuth app rules.
  • AF-PROD-01 scope bullet and a ledger note: the edge rate limit in front of /.well-known/assetlinks.json must not refuse Google's or Android's verifiers (Cloud #141 review B N-8); the release identity (H-02, with H-04's upload key).

Review round

Independent review at 0891264 (plan82-verdict.md): APPROVE, 0 blocking, 6 non-blocking. Taken in a new commit, rebuilt from the base with the same scripts:

  • N-1: the delivered line records that acceptance bullet 6's real-browser part ran on proof (H3), not against a local center; the local closed loop is the Go integration tests on real PostgreSQL (pages handler, virtual authenticator, no browser). The coordinator decided the divergence, and the venue is stronger.
  • N-2: N2-7 is mapped to bullet 4 (its node contacted only its self-hosted center), and X's limit is stated: a refresh's success is inferred from the node staying signed in.
  • N-4: the H-04 row and AF-PROD-01's human_prerequisites name the upload certificate fingerprint of the asset links; AR-08's section 3 now says these prerequisites block complete, not delivery, of AF-PROD-01, and that AR-08 itself blocks nothing.
  • N-5: AF-CTR-05 bullet 3 reads "STATE/node_offline (added to ArcForges-Design errors.md by part D0)".
  • N-3: kept as is.
  • N-6: no wording change; the complete condition now names the keys check with the Windows tier and X item 1 (coordinator decision).

Checks

  • python3 tools/plan.py validate --design <ArcForges-Design main 5da245e>: 0 errors; 63 tasks, 17 milestones.
  • python3 <Design>/tools/check_design.py --plan delivery-graph.json: 0 errors, 3 notes.
  • python3 -m unittest discover -s tests: 48 tests OK (QUIET-HOST absent).
  • git diff --check: clean.
  • The ledger diff against main is 7 appended lines; sequence.md and the ledger were written by tools/plan.py only (rebuilt from the base; build.py and register.py in the coordinator's scratch directory).

🤖 Generated with Claude Code

https://claude.ai/code/session_01H6Cf6kHnz1ZkfURhVWvGjP

deku2026 and others added 3 commits November 5, 2026 22:36
…; widen and start AF-CTR-05 (P0)

AF-CTR-04 delivered with every merged PR and merge SHA from GitHub, the Contracts cohorts and the Cloud deploys; the record
correction for the files outside AF-CTR-04's paths (#63's tier workflow; the .NET repair PRs named); the acceptance register
gains AR-24 (a real node sign-in outside test mode), the mobile part of AR-08 with H-02, and AF-CTR-04 on AR-23. AF-CTR-05 gets
the P0 items (fakes, src/internal/dotnet/**, the shared Cloud and ArcForges files, acceptance bullets 1 and 3, the e-mail bound
note), the routed items (D3, #71 N-8 to N-12) and its started line; AF-AND-01 carries the emulator checks; AF-PROD-01 the
assetlinks rate limit (Cloud #141 B N-8) and the release identity. States and ledger lines by tools/plan.py.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01H6Cf6kHnz1ZkfURhVWvGjP
…on the Windows re-runs after #71

The coordinator's facts: ArcForges #71 merged 0708e1b and #70 merged 4bc33da (both rechecked: no file outside the paths); H3
PASSED on proof on 2026-11-05 (logs/evidence/h3-mobile-2026-11-05.md), its two tooling defects fixed in Cloud #142, nothing left
to route. Decision: delivered; complete follows in a later state-only Plan PR once the Windows OS secret-store tier and X item 1
are re-run at ArcForges main 4bc33da or later. Graph, sequence and ledger rebuilt from the base by tools/plan.py (the ledger diff
against main is again 7 appended lines); the register rebuilt the same way.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01H6Cf6kHnz1ZkfURhVWvGjP
…efresh limit, H-04, D0's code; the complete condition

Review of #82 (APPROVE, 0 blocking): N-1, the delivered line records that acceptance bullet 6's real-browser part ran on proof
(H3), with the local closed loop in Go tests only; N-2, N2-7 maps to bullet 4 (only its self-hosted center contacted) and X's
limit that a refresh's success is inferred is stated; N-4, H-04 and AF-PROD-01's human_prerequisites name the upload certificate
fingerprint of the asset links, and AR-08's section says the prerequisites, not AR-08, block AF-PROD-01's complete; N-5,
AF-CTR-05 bullet 3 says D0 adds STATE/node_offline. The complete condition names the Windows tier (PASSED at 4bc33da, run
42061577006), X item 1 (PASSED at 4bc33da) and the keys check. Rebuilt from the base by tools/plan.py; the ledger diff
against main stays 7 appended lines.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01H6Cf6kHnz1ZkfURhVWvGjP
@deku2026

deku2026 commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

Review record for Plan #82 (AF-CTR-04 delivered; AF-CTR-05 started with P0).

Independent review at 0891264: APPROVE. It found 0 blocking and 6 non-blocking findings.

Review round at ec7056e: one new commit, rebuilt with the same scripts.

  • N-1: bullet 6's real browser ran on proof (H3), not against a local center. The PR states this divergence.
  • N-2: N2-7 is mapped to bullet 4, and the PR adds X's limit that a refresh's success is inferred, not observed.
  • N-4: the H-04 upload-key fingerprint is named for AF-PROD-01, and the AR-08 wording is fixed.
  • N-5: node_offline is noted as added by D0.
  • N-6: the coordinator added the keys check to the complete condition.

complete is recorded separately. It is a state-only Plan PR, because #71 changed CloudLink after X, the tier run and the keys run. Its three conditions have now passed at ArcForges main 4bc33da:

  • OS secret-store tier: run 42061577006, success.
  • X item 1, the Windows node against proof: PASSED. Evidence: logs/evidence/x-ctr04-2026-11-05/rerun-4bc33da/.
  • Keys check, on the local official-hosted rehearsal as originally recorded: PASSED. Evidence: logs/evidence/x-ctr04-2026-11-05/keys-rerun-4bc33da/.

Legs at ec7056e: arcforges/linux and arcforges/windows both succeeded.


Generated by Claude Code

@deku2026
deku2026 merged commit 39ec6e6 into main Nov 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant