Skip to content
Merged
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
24 changes: 24 additions & 0 deletions docs/reviews/2026-10-24-v0.4.0-release-review.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# v0.4.0 release review

## Current candidate preparation — 2026-10-29

Publication remains pending. The latest public release is v0.3.0; the desktop version on main is already 0.4.0. Protected main `469c612986938e12440f8c570d036066ca880f58` contains 18 commits after the `v0.4.0-rc.2` rehearsal source and is the selected application source for fresh release preparation. ACP repair #436 merged at that source after protected queue run [40967999188](https://github.com/TypeSafeAI/modex/actions/runs/40967999188) passed 478 desktop tests with four skips and seven site tests; the transcript median was 374.1 ms on Apple M1 Virtual, three cores, Node 24.21.0. CR-8 journey #440 and integrated review/recovery #441 are also included. Exact landed trees and independent recovery-bundle restores were verified before pruning those owned worktrees. No open PRs remained at this checkpoint. The release evidence update still needs its own signed commit and protected delivery before the final tag source is pinned. The older rc.2 rehearsal does not qualify this newer candidate.

Fresh local `pnpm build && pnpm test` completed with exit 0 on application source `469c612`, with only the release-review and status documentation modified. Desktop compiled tests reported 2,064 passes and 20 skips; the separate native/package tests reported 21 passes and six skips. Core, worktree, site and Store suites also passed. This documentation-only update does not change the application or E2E test tree qualified by queue run 40967999188; hosted checks on the signed documentation commit remain pending. These checks do not replace the protected release workflow or downloaded-artifact verification.

[Release rehearsal 40673497786](https://github.com/TypeSafeAI/modex/actions/runs/40673497786) completed successfully for source `6c9000f5b6bc7d1733cec9db15ba00d5b9844291`. It supersedes the earlier statement that rc.2 signer acceptance and subsequent workflow jobs were pending. The approved SSH signing key is loaded as `~/.ssh/modex_release`, fingerprint `SHA256:Apqee2EOZLXmfVUUy/QX1QLBn9g10SuzHbK5ARks19E`. The first rehearsal's signer authorization failure and the earlier local teardown failure remain historical results; neither is erased by later success. The rc.2 draft must not be published.

Later delivered changes include the LM-3/LM-5 refusal and recovery integration (#423), Code Review ownership repair (#426), packaged Code Review launcher correction (#430), CF-3 and CF-4 evidence repairs (#434 and #433), Markdown keyboard test sequencing (#435), and Code Review read-retry ownership repair (#438). The current main status reconciliation is #439. Local coding execution remains disabled in production, and Code Review remains hidden in built apps pending its acceptance gates. Human conversation, accessibility, physical-device and runtime qualifications remain separate from automated CI.

The final candidate still needs its own protected release validation, signed tag and approved signing environment, packaged E2E with the documented fixture/source exceptions, native updater scenarios, native platform checks, exact candidate identity and manifest verification, and independent verification of downloaded draft assets. Preserve first failures and retries with their exact source/run identities. Publish only the validated protected-workflow assets. The published-to-published updater check and Companion TestFlight delivery retain their separate human/device requirements.

## Publication candidate refresh — 2026-10-27

Val requested the latest patch or minor release. The next version is **v0.4.0**, a minor release from the published v0.3.0 because this candidate adds task-context and conversation features. The desktop version bump already landed in #409; no additional version increment is needed. The refreshed source is protected main `6c9000f5b6bc7d1733cec9db15ba00d5b9844291`, including #410's shared review anchors, #411's Windows worktree fixes, #416's guarded Code Review actions and #418's credential/discovery hardening and fake-process isolation. PR #417 is not included, and local coding execution remains unavailable.

The release workflow, signing scripts, release verifier, native updater verifier and desktop build hooks are unchanged from v0.3.0. The previous preparation and its checks below remain historical evidence for their recorded source. Fresh frozen-lockfile installation, build, unit tests, typecheck and ad-hoc packaging passed in owned `release-040-final`. Unit totals were 2,172 passed, 22 skipped and zero failed across six reported suites. The desktop E2E invocation finished with 464 passed, seven skipped and one failed (23.7 minutes); the site stage did not run. The failure was `ENOTEMPTY` in `code-review-support.ts:97` during `afterEach` temporary-home deletion, after the edit-conflict test body. Its trace and error context are preserved under `first-failure/`. Five unchanged focused repetitions passed on 2026-10-28 (`teardown-reproduction.log`), which does not clear the first full-suite failure or establish its root cause. This Code Review harness launches through `electron.launch({ args: [appDir] })` and does not use `MODEX_PACKAGED_APP`; do not treat its result as packaged Code Review acceptance. Logs are preserved outside the worktree under `~/Documents/Codex/artifacts/modex-release-040-final/`. Ad-hoc artifacts must not be published. Hosted Developer ID signing, notarization, packaged tests, native updater scenarios and independent downloaded-asset verification remain required before publication.

The local keychain has only an Apple Development identity, and the 1Password CLI is unavailable. At Val's explicit request, signed tag `v0.4.0-rc.1` tested the loaded SSH key `SHA256:YprOIgLzN6V1HRC23ZBFfarWcT8LC3y45AMN4QDe9rs` against the existing protected environment. [Release run 40583558539](https://github.com/TypeSafeAI/modex/actions/runs/40583558539), macOS job `122469026052`, failed at `Verify the tag is signed by an allowed key`: Git reported a good signature but `No principal matched.` Signing, notarization and macOS packaged acceptance were skipped. The signer allowlist was not changed. The run completed as cancelled after the decisive signer failure. No candidate draft existed; the local and remote rc tag were removed under the documented rehearsal cleanup procedure after preserving its signed tag object as `rc-tag.txt` (object `d44f5b9efd3df6528f9b97885b39967ea2f76614`). The job log is preserved outside the worktree as `rc-macos-job.log`. No stable tag or public v0.4.0 release was created. On 2026-10-28, `~/.ssh/modex_release` was fingerprint-verified and subsequently observed loaded in the SSH agent. A new hosted signer verification is still required; the previous release used `SHA256:Apqee2EOZLXmfVUUy/QX1QLBn9g10SuzHbK5ARks19E`. Companion TestFlight delivery retains its separate credentials and acceptance steps.

The approved key signed `v0.4.0-rc.2` at the same source `6c9000f5b6bc7d1733cec9db15ba00d5b9844291` on 2026-10-28. Local signature verification passed with fingerprint `SHA256:Apqee2EOZLXmfVUUy/QX1QLBn9g10SuzHbK5ARks19E`; the signed tag object is preserved as `rc2-tag.txt` in the external release artifacts. [Release rehearsal 40673497786](https://github.com/TypeSafeAI/modex/actions/runs/40673497786) was queued after the tag push. At that preparation checkpoint, hosted signer acceptance and subsequent release gates were pending; the current candidate section above records the completed rehearsal result. This rehearsal does not include the pending LM-3, LM-5, CR-6 or companion evidence PRs, and its draft must not be published.

## Original preparation

Desktop v0.4.0 ships task context and answering from anywhere:
- a saved task note reopens as the task it saved;
- a turn lists the files it touched and says whether a check verified its last change;
Expand Down
2 changes: 2 additions & 0 deletions docs/status.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ PR #422's CR-6 review found two blockers: unconfirmed child exit was reported as

## On main, unreleased

- **v0.4.0 publication preparation.** The release branch has advanced to main `469c612`, preserving the earlier rehearsal and failure records. The approved-key rc.2 rehearsal passed at older source `6c9000f`; it does not qualify current main. CR-8 journey #440 and integrated review/recovery #441 have landed. ACP repair #436 has also landed after protected queue validation. This is the selected application source; the release evidence update and final tag source remain pending. The latest public release remains v0.3.0. A fresh protected release and independent downloaded-asset checks remain required; see the [current release preparation](reviews/2026-10-24-v0.4.0-release-review.md#current-candidate-preparation--2026-10-29).

- **OpenCode and MiMo Code backends** ([#408](https://github.com/TypeSafeAI/modex/issues/408)).
Two new thread backends drive the OpenCode CLI and Xiaomi's MiMo Code fork through their Agent
Client Protocol server (`opencode acp --pure`, `mimo acp --pure`), the way Codex runs through
Expand Down
Loading