Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ itself driving one of them.
everyday builds.
- `docs/status.md` — what has shipped, what is on `main` but unreleased, what is in flight, what is
next. Update it in the PR that changes any of those. `docs/reviews/` holds release evidence.
Its "Open issue checklists" table maps each open tracked issue's ticked boxes and next action.
Tick an issue box only when on-`main` evidence meets its full text. Open PRs, deferrals and
unrun human, live or native rows stay unticked. A tick summarizes a receipt; re-check the
receipt rather than trusting the tick.
- Real models run only through the `claude`, `codex`, `opencode` and `mimo` CLIs (the last two
over their `acp` server, `docs/opencode.md`). There is no API mode for coding turns; do not
add one. App-owned Sign in with ChatGPT may make authentication-only requests to OpenAI's
Expand Down
3 changes: 2 additions & 1 deletion docs/conversation-fidelity.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ the user-facing summary of tracker [#273](https://github.com/TypeSafeAI/modex/is
contracts behind it are [conversation events](conversation-events.md),
[evidence](conversation-evidence.md), [task plans and records](task-context.md) and the
[event journal](event-journal.md). The acceptance matrix and its open gates are in
[the acceptance receipt](reviews/2026-10-18-conversation-fidelity-acceptance.md).
[the acceptance receipt](reviews/2026-10-18-conversation-fidelity-acceptance.md). Each CF issue's ticked
boxes and next action are in [status.md](status.md#open-issue-checklists).

Coding still runs only through `codex app-server` and `claude -p`. Nothing described here executes,
replays or re-sends anything by being shown, reloaded or reconnected.
Expand Down
7 changes: 4 additions & 3 deletions docs/design/code-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@ screenshots (R1–R4). The work is tracked in [#319](https://github.com/TypeSafe
This page is CR-1's contract ([#320](https://github.com/TypeSafeAI/modex/issues/320)). Every later
slice works against it.

**Nothing here has shipped.** CR-1 adds a pure read contract, synthetic fixtures and this page. It
registers no IPC channel, draws no UI and makes no GitHub request. The rest of Gate A follows in
order:
**Where it stands (2026-11-01).** The core CR-1 through CR-7 slices have landed on `main`, and Code Review is present but hidden in v0.4.0. Built apps require the local switch `modex.codeReview` to be `on` because Gate A (#319) is not accepted ([v0.4.0 review](../reviews/2026-10-24-v0.4.0-release-review.md)). Remaining engineering work includes the CR-7 sign-out/draft regression, CR-4 through CR-7 accessibility coverage (C76), and composer-clearance verification. C58 attachments and C59 effort remain omitted without an approved deviation, alongside the unresolved composer decisions below. Original-reference comparison, human keyboard/VoiceOver, the live CR-6 smoke and the CR-7 canary retain their separate acceptance gates. Each issue's ticked boxes and next action are in [status.md](../status.md#open-issue-checklists).

CR-1 itself added a pure read contract, synthetic fixtures and this page, with no IPC channel, UI or
GitHub request. Gate A then followed in order:

- [#321](https://github.com/TypeSafeAI/modex/issues/321): the read service.
- [#322](https://github.com/TypeSafeAI/modex/issues/322): the inbox and the workspace.
Expand Down
4 changes: 3 additions & 1 deletion docs/local-models.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Local models: LM-1 contract and feasibility

Each LM issue's ticked boxes and next action are in [status.md](status.md#open-issue-checklists).

Status: narrow Gate A accepted by Val on 2026-10-24 under #377 / #376 for the producer at main `bb0e1a42ac7bb3e11ccfee05a40d8a02f1dc10c4` and the recorded Codex/Strata combination. No local execution option is enabled by this change. Existing `BackendId`, thread persistence, account policy, native execution, approval handling and companion messages are unchanged.

## Identity and migration
Expand Down Expand Up @@ -113,7 +115,7 @@ other runtimes and resume across restarts are unqualified.

## LM-5 slice 1: effective destination and managed policy

Status: in `lm3-codex`'s successor branch `lm5-policy` (#380); main-only, no UI. Before a local child opens or
Status: on `main` through #423 (`c23e6be`), from #424 (#380); main-only, no UI. Before a local child opens or
resumes a thread, main reads the child's own `config/read` (effective configuration, the layer that set each
key, and every layer's contents and hash) and `configRequirements/read`, and admits the child only when every
governed key (destination, model, context, tools, plugins, hooks, instructions) comes from Modex's session flags,
Expand Down
580 changes: 580 additions & 0 deletions docs/reviews/2026-11-01-issue-checkbox-reconciliation.md

Large diffs are not rendered by default.

33 changes: 32 additions & 1 deletion docs/status.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The living map of what has shipped, what is on `main` but unreleased, what is in
what is next. Update it in the same PR that changes any of those; a reader should be able to
plan the next session from this page alone. Release evidence lives in [`reviews/`](reviews/).

_Last updated 2026-10-31 UTC._
_Last updated 2026-11-01 UTC._

## Shipped

Expand Down Expand Up @@ -231,6 +231,37 @@ The published application source is `6a97d23aaea315b29008890f25dde2d7ea07f1d0` (
three observations in the receipt (a shell-written file listed as read, a `perl -pi` edit listing
no file, a title cut mid-word). #280 stays open until Val records a result or a written deferral.

## Open issue checklists

The checkboxes in every open tracked issue were reconciled against `main` at `9ecccc9` on
2026-11-01. A box is ticked only when on-main evidence meets its full text. Open PRs, deferrals
and unrun human, live or native rows stay unticked. The row-by-row evidence is in the
[reconciliation record](reviews/2026-11-01-issue-checkbox-reconciliation.md). A checkmark
summarizes a receipt; it does not replace one. When code or receipts change, re-check the rows
before relying on a tick.

| Issue | Ticked | What is left | Next action |
| --- | --- | --- | --- |
| [#273](https://github.com/TypeSafeAI/modex/issues/273) CF tracker | 9/15 | CF-3, CF-7 and CF-8 are open; their code is on `main`. Fresh full checks name candidate `b643617`, which predates #450, #453 and #463 | Val decides whether to keep `b643617` or pin a new candidate |
| [#276](https://github.com/TypeSafeAI/modex/issues/276) CF-3 | 11/13 | No test that the draft and attachments survive a question card; YOLO's never-answer rule is in source only. Human D/P rows live on #281 | Add the two regressions; Val runs D1–D5 |
| [#280](https://github.com/TypeSafeAI/modex/issues/280) CF-7 | 11/14 | Steps 1, 2 and 4: model-proposed relations, file hashes and selection/notes context are not built; step-level linking was retired | Val reviews the two saved Notes and records steps 1, 2 and 4 as deferred or retired |
| [#281](https://github.com/TypeSafeAI/modex/issues/281) CF-8 | 8/27 | Keyboard A1–A8, VoiceOver B1–B7, CF-3 D1–D5, P1–P4 and P6; memory measurement; ChatGPT multi-agent restriction check; staged release recommendation; list of remaining visual differences. C1–C5, V1–V3 and P5 are deferred | Val chooses the candidate, then runs A1–A8 and D1–D5 |
| [#319](https://github.com/TypeSafeAI/modex/issues/319) CR tracker | 2/10 | CR-3 to CR-8 acceptance; R1–R4 reconstruction comparison | Land #472 (current CR-8 matrix) |
| [#322](https://github.com/TypeSafeAI/modex/issues/322) CR-3 | 10/14 | Original-reference comparison (AC1), keyboard/VoiceOver (AC4), composer clearance with CR-6's composer | Val runs the [CR-8 VoiceOver checklist](reviews/2026-10-22-cr8-voiceover/checklist.md) |
| [#323](https://github.com/TypeSafeAI/modex/issues/323) CR-4 | 10/14 | Original R1/R2 comparison, VoiceOver, composer clearance; avatars wait on decision 1 | Re-check composer clearance; Val decides on references |
| [#324](https://github.com/TypeSafeAI/modex/issues/324) CR-5 | 12/14 | Original R4 comparison (AC1); the Viewed toggle waits on decision 5 | Val decides on R4 references or re-captures |
| [#325](https://github.com/TypeSafeAI/modex/issues/325) CR-6 | 13/14 | Authorized live native smoke (AC6) | Val names `owner/repo#n` for the smoke |
| [#326](https://github.com/TypeSafeAI/modex/issues/326) CR-7 | 12/14 | No on-main test of draft visibility after sign-out; live canary on a disposable repository (AC6) | Add the sign-out test; Val names a disposable repository |
| [#327](https://github.com/TypeSafeAI/modex/issues/327) CR-8 | 2/17 | Current matrix, staged enablement/rollback and live procedures are only in open #472; a11y coverage of CR-4 to CR-7 controls (C76); performance budgets; reference comparison | Land #472, then the C76 a11y fold-in |
| [#376](https://github.com/TypeSafeAI/modex/issues/376) LM tracker | 1/14 | LM-2 to LM-8 acceptance; `LocalExecution` is not constructed, so the product refuses local turns | Val reviews #475 and answers the [LM-5 admission brief](https://github.com/TypeSafeAI/modex/issues/380#issuecomment-6558687340) |
| [#378](https://github.com/TypeSafeAI/modex/issues/378) LM-2 | 11/13 | Cold-load explanation text (step 6); no regression for tokens in diagnostics or exports (AC3) | Decide on an AC3 regression; listing-only discovery once a local generative model exists |
| [#379](https://github.com/TypeSafeAI/modex/issues/379) LM-3 | 10/13 | Live turn against a real local server (AC1); global Codex config byte check (AC4); managed-Mac policy run (AC6) | Add the `~/.codex/config.toml` before/after byte check |
| [#380](https://github.com/TypeSafeAI/modex/issues/380) LM-5 | 3/13 | Fixture work for AC1, AC3, AC4 and AC5 is in open #475 (with #480); offline canary (AC2) and real-runtime AC4 are native gates | Review and land #475, then re-reconcile #380 |
| [#381](https://github.com/TypeSafeAI/modex/issues/381) LM-4 | 0/13 | Not started | Start Settings → Local models after the #380 admission decision |
| [#382](https://github.com/TypeSafeAI/modex/issues/382) LM-6 | 0/11 | Not started; needs LM-5 and real runtimes | None until LM-5 lands |
| [#383](https://github.com/TypeSafeAI/modex/issues/383) LM-7 | 0/15 | Not started | Draft the criterion-to-evidence map from existing receipts |
| [#384](https://github.com/TypeSafeAI/modex/issues/384) LM-8 | 0/11 | Optional; an outside contributor's scope question is unanswered | A maintainer answers the [scope question](https://github.com/TypeSafeAI/modex/issues/384#issuecomment-6390714922) |

## In flight

- **Deferred Markdown for long threads (hosted cold-open budget).** Hosted CI's approved 500 ms cold-open gate failed on runner variance alone: 33 hosted runs on 2026-10-30 had a 377.7 ms median and a 781.9 ms failure on application code identical to a 436.1 ms pass. Val chose on 2026-10-30 to defer offscreen answers. Turns before the newest eight show their Markdown as written until it nears the view, then parse once; scroll anchoring keeps the reader's place. Locally the five-launch median fell from about 190 to 88 ms, and 3× CPU throttling cut it from 806–870 to 312–340 ms. The gate is unchanged. The first hosted run had a 129.9 ms median (481 desktop E2E passes). It landed through #463 (`32f1cb4`) on 2026-10-31 UTC and is unreleased. [Evidence](reviews/2026-10-30-deferred-markdown.md).
Expand Down
2 changes: 1 addition & 1 deletion docs/superpowers/plans/2026-10-11-worktree-hygiene.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ paths independently before enabling the local schedule.
- [x] Finish configured desktop/site E2E: 163 desktop passes, 3 opt-in Knowledge skips,
and 7 site passes. Required hosted CI enables the three integration cases.
- [x] Sign and verify the implementation commit after local checks and independent review.
- [ ] Land through the coordinated protected PR queue after required CI. Preserve the
- [x] Land through the coordinated protected PR queue after required CI. Preserve the
unrelated approval/provider branch.

## Progress
Expand Down
3 changes: 2 additions & 1 deletion docs/superpowers/plans/2026-10-20-cf7-verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@

**Status, 2026-10-20:** done in #351 (`d1902d2`). The full e2e suite passed in CI, on the PR and in
the merge queue (run 39508701952). The local run stopped when the disk filled. Linking a check to the
plan step it verifies stays open on #280, because neither CLI reports that link.
plan step it verifies was retired by Val on 2026-10-23, because neither CLI reports that link
([task-context.md](../../task-context.md#retired)); #280 keeps that step unticked as retired, not passed.

**Goal:** a turn's task record says whether the turn's latest change is verified by a check that ran
after it, and never calls a step verified on the CLI's word, an unrelated command, or a check that a
Expand Down
Loading