Repository navigation
docs: record 2.77.0 candidate acceptance and publication #6561
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
c3c6323
docs: record independent frozen-candidate regression acceptance
lidge-jun c45aa54
docs: preserve failed Windows candidate gate and repair boundary
lidge-jun ca8fc92
docs: record 2.77.0 candidate acceptance after unchanged Windows rerun
lidge-jun 56fba46
docs: record 2.77.0 publication outcome
lidge-jun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
63 changes: 63 additions & 0 deletions
63
devlog/_plan/261003_release_stabilization/016_regression_acceptance.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| # Independent regression acceptance | ||
|
|
||
| The integrated source at `0818ea1812a028e1c14cd0b0511b44863407bc52` | ||
| (tree `98c6c2f05364c8274d404ae5f6ecc56bb73450d2`) is accepted for the next | ||
| complete candidate CI run. Production publication remains pending. | ||
|
|
||
| Four fresh-context workers ran in parallel with disjoint temporary state and | ||
| shared test locking. All 63 selected original test files executed: **2,423 pass, | ||
| 0 fail, 0 skip**. Separate current-source GUI verification passed 48 tests; | ||
| a separate runner-isolation preflight passed 25. Those counts are not added to | ||
| 2,423. The candidate GUI build succeeded and its 94 generated artifact hashes | ||
| remained unchanged through the manual browser verification. | ||
|
|
||
| | Area | Original tests | Additional acceptance | | ||
| | --- | ---: | --- | | ||
| | Native accounts, catalog and fallback | 990 | Seventeen HTTP scenarios and the actual account CLI, including revoked versus transient credentials, replacement races, hard locks, precise model refusal and committed output. | | ||
| | Request bytes, compaction and tool history | 370 | UTF-8 threshold captures, destination and cancellation controls, typed Messages errors, recovery limits, and ordered immutable Ollama tool history. | | ||
| | Pairing, identity and existing-format accounting | 363 | Actual CLI minting, HTTP redemption, browser interaction, identity race negatives, capacity refusal, and durable legacy-journal restart/corruption. | | ||
| | Provider, platform, CLI and historical fixtures | 700 | Discovery and saved-effort persistence across processes, operator commands, synthetic launcher controls, and eight separately executed original historical files. | | ||
|
|
||
| A fresh independent acceptance review found no blocker to final candidate CI. | ||
| Two independent visual reviews found only Low wrapping and validation-layout | ||
| polish issues, with no observed clipped text or blocked controls. These are | ||
| retained follow-ups, not claimed fixes or a complete accessibility audit. | ||
|
|
||
| ## Evidence limits and failed attempts | ||
|
|
||
| Failed harness executions remain failed in the private evidence ledger. They | ||
| were not overwritten or included as passing executions. Corrected probes use | ||
| source-backed fixture contracts. Two request-probe expectations received a | ||
| separate independent adjudication: cancellation prevented another physical send | ||
| although the legacy reset-only counter remained zero; a preflighted compaction | ||
| stream legitimately returned HTTP 400 rather than the HTTP 200 required for an | ||
| already-open Messages stream. Neither result proves complete legacy accounting | ||
| or preservation of client-visible partial compaction text. | ||
|
|
||
| Manual expiry evidence proves rejection of an expired signed mint capability, | ||
| not expiry of an issued pairing code. Current CLI/HTTP/browser pairing passed; | ||
| full native SSH enrollment at this candidate was unavailable. Earlier native | ||
| join/replacement and teardown evidence remains historical. The named pairing | ||
| owners are byte-identical, which does not make that a fresh integrated native run. | ||
|
|
||
| Every one of the 20 uniquely named assertions from the earlier broad failed run | ||
| maps to a current pass in its original file. The former GUI setup error has | ||
| current original-file coverage as well. This does not certify the old broad run | ||
| or identify its historical state writer; its original 21-failure/one-error total | ||
| is preserved. Complete cross-platform CI is still required. | ||
|
|
||
| The original Antigravity Windows/multi-account report remains unproven, the real | ||
| launcher scenario remains unavailable, and packaged Windows login behavior is | ||
| not established by native helper/parser tests. The canonical spend migration | ||
| remains excluded; the landed capacity repair preserves the existing format. | ||
| Previously recorded accounting, diagnostic and dependency limitations remain | ||
| explicit. No current required product failure was waived by those limitations. | ||
|
|
||
| All owned processes, listeners and disposable homes were closed or removed; | ||
| source and build identity were rechecked. The artifact validator only proves | ||
| schema/source consistency; semantic acceptance comes from the reviewed scenario | ||
| matrix and the explicit dispositions above. | ||
|
|
||
| Next: run the complete `lane=all` CI at the accepted source SHA, inspect every | ||
| requested job, then follow the separate version pre-move, promotion and publication | ||
| procedure. This documentation record adds no product changes to that source. |
31 changes: 31 additions & 0 deletions
31
devlog/_plan/261003_release_stabilization/021_candidate_first_run.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # First complete candidate run: NO-GO | ||
|
|
||
| The final candidate check ran once against source | ||
| `0818ea1812a028e1c14cd0b0511b44863407bc52` on the immutable | ||
| `codex/release-2770-0818-candidate` branch. Run | ||
| [37162399902](https://github.com/lidge-jun/opencodex/actions/runs/37162399902), | ||
| attempt 1, used `workflow_dispatch` with `lane=all`. Its scope outputs selected | ||
| all areas, including native, GUI, desktop packaging, docs and helper matrices. | ||
|
|
||
| The result is **NO-GO**: 37 jobs succeeded, Windows shard 8/9 failed, and the | ||
| aggregate correctly failed. The separate privacy-only job was intentionally | ||
| unrequested; the privacy scan inside `gates` executed successfully. | ||
|
|
||
| Linux's four shards, macOS's two shards and full-membership control, and eight | ||
| Windows shards passed. macOS widget/app verification and Linux AppImage/deb, | ||
| sidecar-keyring and packaged-shell E2E also passed. Those results remain valid | ||
| observations of this attempt, not permission to ignore its failed shard. | ||
|
|
||
| The reported error is `EPERM` in the temporary-directory teardown of | ||
| `server-management-auth.test.ts`, in the self-logout case. The failing batch | ||
| reported 140 passes and one failure; later batches in that shard did not run. | ||
| The log identifies the recursive removal root, not the particular retained | ||
| resource or permission condition. The cause is not established by the error | ||
| message or by unchanged owning source relative to the earlier green candidate. | ||
|
|
||
| A bounded investigation is collecting causal evidence. No cleanup retry budget, | ||
| assertion, test membership, Windows requirement or release gate has been relaxed. | ||
| There has been no blind retry, version pre-move, main promotion or publication. | ||
| Any separate native diagnostic run is evidence collection only and cannot replace | ||
| successful release verification. Production changes require a reviewed, | ||
| evidence-backed repair and appropriate current-source regression/CI evidence. |
31 changes: 31 additions & 0 deletions
31
devlog/_plan/261003_release_stabilization/022_candidate_acceptance.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| # Candidate acceptance: GO after unchanged Windows rerun | ||
|
|
||
| Candidate `0818ea1812a028e1c14cd0b0511b44863407bc52` passed the complete | ||
| cross-platform gate. Run | ||
| [37162399902](https://github.com/lidge-jun/opencodex/actions/runs/37162399902) | ||
| attempt 2 re-ran only the failed `windows 8/9` job and the aggregate, with the | ||
| same command, assertions, test membership and removal retry schedule. The shard | ||
| passed and the run concluded success: 40 jobs, all nine Windows shards green, and | ||
| only the standalone `privacy gate` skipped because manual dispatch does not request | ||
| it (the privacy scan inside `gates` passed). | ||
|
|
||
| The attempt-1 failure is preserved in `021_candidate_first_run.md`. A separate | ||
| non-release Windows diagnostic (run | ||
| [37168238608](https://github.com/lidge-jun/opencodex/actions/runs/37168238608), | ||
| same runner image `20260925.250.1` and Bun 1.4.0) replayed the failing six-file | ||
| batch with instrumentation. The self-logout case's temp home was removed on the | ||
| first attempt, so the failure did not reproduce in isolation. That run is | ||
| diagnostic evidence only and was never treated as release proof; the diagnostic | ||
| branches are not merged. | ||
|
|
||
| What remains open: the cause of the intermittent teardown `EPERM` is not | ||
| established. The diagnostic replay changed the temp root from the profile's | ||
| 8.3 short path to the runner temp drive, so it cannot exclude the lexical | ||
| alias gap in the Windows ACL reap matcher, where a short-name root does not | ||
| match long-name pending reaps. That gap is a real weakness, but nothing shows it | ||
| caused this failure. It is a follow-up for the test-cleanup path, and the | ||
| release gate did not depend on it. | ||
|
|
||
| The candidate is promoted unchanged: the `main` promotion merge `06841165f8` | ||
| (#6550) has the same tree as `0818ea1812`, after the version pre-move #6549 | ||
| opened `dev` at 2.78.0. Publication is recorded in `031_publication_outcome.md`. |
40 changes: 40 additions & 0 deletions
40
devlog/_plan/261003_release_stabilization/031_publication_outcome.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| # Publication outcome: 2.77.0 released | ||
|
|
||
| OpenCodex 2.77.0 is published as the stable `latest` release from `main` | ||
| commit `06841165f884a9176d701310638b2112aca7a514`, whose tree is identical to | ||
| the verified candidate `0818ea1812`. | ||
|
|
||
| 1. Version pre-move #6549 opened `dev` at 2.78.0 (`87e3156339`) after its exact-head | ||
| Cross-platform CI and Service lifecycle passed. | ||
| 2. Promotion #6550 merged as a merge commit through the owner-authorized admin PR | ||
| route. As with #6468, only the main-target `enforce-target` rule and CodeQL's | ||
| new-alert count against `main` were red; neither gates `release.yml`. | ||
| 3. Push-event Cross-platform CI | ||
| [37169967963](https://github.com/lidge-jun/opencodex/actions/runs/37169967963) | ||
| and Service lifecycle 37169967951 succeeded on `06841165f8`. | ||
| 4. Release workflow | ||
| [37170949169](https://github.com/lidge-jun/opencodex/actions/runs/37170949169) | ||
| (`version=2.77.0`, `tag=latest`, `dry-run=false`, `expected-sha=06841165f8`) | ||
| succeeded in every job: dispatch validation, preflight, five standalone and three | ||
| desktop packages, verification, npm publish, release attachment and outcomes. | ||
|
|
||
| Published evidence: | ||
|
|
||
| - npm `@bitkyc08/opencodex@2.77.0`, dist-tag `latest`, gitHead `06841165f8`, | ||
| shasum `4b0155005e19588bdaab1661eb02479de5546dad`, SLSA v1 provenance (Sigstore | ||
| log index 3076198266). The registry served the version about five minutes after | ||
| the publish step acknowledged it. | ||
| - GitHub release [v2.77.0](https://github.com/lidge-jun/opencodex/releases/tag/v2.77.0), | ||
| tag on `06841165f8`, marked Latest, 25 assets (same set shape as v2.76.0): | ||
| standalone archives for darwin arm64/x64, linux arm64/x64 and windows x64, the | ||
| macOS app/dmg, Linux AppImage/deb and Windows MSI, checksums, updater signatures | ||
| and `latest.json`. | ||
| - Docs deploy for `06841165f8` succeeded (run 37169967937). | ||
| - Install smoke in a throwaway npm prefix with an isolated home: `ocx --version` | ||
| reports `opencodex 2.77.0` and `ocx help` runs; the darwin arm64 archive matches | ||
| its published SHA-256. | ||
|
|
||
| Not verified here: launching the signed desktop installers on real macOS, Windows | ||
| and Linux hosts, the in-app updater path from 2.76.0, and the native limits already | ||
| recorded for #6220, #6473 and #6502. The intermittent Windows test-teardown | ||
| `EPERM` described in `022_candidate_acceptance.md` remains a test-cleanup follow-up. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_finThis outcome declares the release complete, but the entire
261003_release_stabilizationunit remains underdevlog/_plan/. The repository reserves_planfor open units and requires closed units to be moved to_fin; leaving this terminal record here makes the open-work inventory falsely report the release as active. Move the whole unit todevlog/_fin/261003_release_stabilization/in this change.AGENTS.md reference: AGENTS.md:L108-L111
Useful? React with 👍 / 👎.