Skip to content

Commit cf97bd5

Browse files
pmaxhoganclaude
andcommitted
docs(codex): M4 review accepted residuals / deferrals
Records the 3 deferred items from the M4 codex review under a new "M4 codex review - accepted residuals / deferrals" section, honest + tracked: - V-F: needs_reauth account-state transition is surfaced but activated by the M5 prod-shell assembly (no binary assembles orchestrator+executor+store yet). - V-G: breaker-from-outcomes (BreakerReportingStore + ExecutorDeps.network) is built + unit-tested, activated when M5 passes network=Some. - C-P2-2: Shared Drive destinations are V1 out-of-scope (corpora=user, My Drive only); a deliberate V2 feature, not an M4 bug. Also notes that hickory-resolver was dropped to clear RUSTSEC-2026-0119 and remains the documented V2 DNS-escalation option. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012CyiRqk2DVwmJjEu5gcD1m
1 parent fc0f39e commit cf97bd5

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

design/CODEX_NOTES.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,3 +416,49 @@ To bound GitHub Actions spend, the Chaos workflow deviates from the ROADMAP
416416
row still runs in the per-PR sweep.
417417
This is a deliberate cost/coverage trade, recorded here so the deviation from the
418418
locked ROADMAP acceptance is explicit and intentional, not an oversight.
419+
420+
## M4 codex review - accepted residuals / deferrals
421+
422+
The M4 codex xhigh review (baseline 6099da5; file
423+
`.claude/codex-reviews/M4-20260623-161005.md`) plus the in-workflow verify pass
424+
produced 12 fixes (all landed this milestone) and 3 items that are NOT bugs in
425+
M4 but assembly-gated seams or explicit V1 scope boundaries. The seams below are
426+
BUILT and unit-tested in M4; M5 (the prod-shell assembly that wires the crypto
427+
suite + keystore + orchestrator + executor + GoogleDriveStore into a running
428+
binary) ACTIVATES them. Documented here honestly so the deferral is tracked, not
429+
an oversight.
430+
431+
- **V-F - `needs_reauth` account-state transition (activated M5).** The refresh
432+
path classifies an `invalid_grant` as
433+
`DriveErrorClassification::AuthInvalidGrant` and the executor maps that to a
434+
fatal `auth.invalid_grant` op outcome (`AuthInvalidGrant`). What is NOT wired
435+
yet: nothing calls `mark_account_state(NeedsReauth)` / emits
436+
`account:needs_reauth`, because no production binary assembles
437+
orchestrator+executor+GoogleDriveStore (src-tauri is the M0 skeleton; the CLI
438+
bypasses the executor). The condition is fully SURFACED for the M5 shell to act
439+
on; M5 performs the account-state transition. The token_store.rs module + type
440+
docs were reworded this milestone to stop claiming the transition happens
441+
today (they now say "surfaced for the M5 shell to act on").
442+
- **V-G - breaker-from-outcomes activation (activated M5).** The
443+
`BreakerReportingStore` decorator + `ExecutorDeps.network` seam are built and
444+
unit-tested (the `breaker_from_outcomes` test module drives a real
445+
`StdCircuitBreaker` through the decorator). The decorator is only inserted when
446+
the executor is constructed with `network = Some(probe)`, which today only the
447+
executor tests pass; the M5 prod executor assembly passes
448+
`network = Some(ReqwestBackend-backed probe)`. Wired-and-tested in M4,
449+
activated at M5.
450+
- **C-P2-2 - Shared Drive destinations are V1 out-of-scope (V2).** Drive listing
451+
is `corpora=user` / `spaces=drive` and the store sets no
452+
`supportsAllDrives` / `includeItemsFromAllDrives` params. V1 targets the user's
453+
personal My Drive ("Drive-on-My-Drive", per the `remote_store.rs` `RemoteEntry`
454+
doc + DESIGN). Shared Drive destinations (threading a shared-drive id through
455+
list/create/update/trash/metadata/resumable) are a deliberate V2 feature, not
456+
an M4 bug. The `pagination.rs` `corpora=user` comment already notes the V1
457+
scope; this records it as an explicit, accepted boundary.
458+
459+
Note: the optional `hickory-resolver` DNS escalation (DESIGN s5.8.5 "custom
460+
resolution if we discover OS resolver pathologies in the field") was dropped from
461+
the dependency tree in M4 to clear RUSTSEC-2026-0119 (hickory-proto name
462+
compression). The DNS probe now uses `tokio::net::lookup_host` per DESIGN s5.8.1
463+
(which was always the specified primary path); hickory remains the documented V2
464+
escalation option if a field need arises, to be re-added behind a feature then.

0 commit comments

Comments
 (0)