Repository navigation
feat(workbench): download originals archives - #198
Merged
Merged
Conversation
Keep kit, suite and report semantics in the canonical MCK while the MoonBit CLI owns explicit backend selection and process supervision. Qualify opaque argv, canonical verdicts, actual model operations and adapter cleanup through built and installed CLI entry points. Refs: morphir-ukvn.5.64.22, morphir-ukvn.5.64.23
Signed-off-by: Damian Reeves <[email protected]>
Write native stderr with its UTF-8 byte length so embedded NULs cannot truncate canonical diagnostics. Exercise built and installed CLI text channels with NUL and Unicode process fixtures.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Signed-off-by: Damian Reeves <[email protected]>
Signed-off-by: Damian Reeves <[email protected]>
Worksheet autosave can replace the shared status after evaluation. Check the retained exact result after the save instead. A transfer deadline can expire before dispatch. Permit zero or one generation and cover pre-dispatch timeout without publication.
Signed-off-by: Damian Reeves <[email protected]>
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 21, 2026
Synchronize CodeMirror focus before browser select-all so its delayed focus update cannot restore the previous caret during replacement. Retain the real focus/replacement regression and both original workspace controls.
Verify the actual matching report and saved source across independent save replies. Tie pending fixture waits and observer disposal to test cancellation and real resource cleanup.
Capture bounded redacted timeout reports and host events before fixture disposal removes evidence needed to classify early deadline failures.
The worksheet click can return while the editor still holds compiled source. Reconciliation during browser insertion clears select-all and leaves the worksheet sample behind. Wait for the intended document and rendered editor state before replacing its text. Signed-off-by: Damian Reeves <[email protected]>
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
Playwright sent Ctrl+Shift+z with key "z". A real keyboard reports key "Z". CodeMirror looks up Ctrl-z first for a lowercase character key, so the redo press ran undo whenever history remained. That happened when the filled text and the trailing space became separate history events, which is timing dependent and occurred under CI load on Linux. Reproduced in the Playwright 1.64.1 Linux image: 5 of 24 runs failed at the redo wait, and the logged keydown events showed the second undo. With the space forced into its own history event, key "z" failed 6 of 6 runs and key "Z" passed 6 of 6. Claude-Session: https://claude.ai/code/session_01Uqbs1b3vn3y3B5Cn9JPsNQ
Pin the six published v0.4.0-beta.10 archives by SHA-256, with source and fixture revision 477e3ce7d86ad447c85fc2bfcb64832b387a4be7. The headless gate acquires the prebuilt backend for its host with mck-release.mbtx and requires MCK qualification on every platform. It also retains the acquisition receipt and runner pin. The old-source authenticated host and installed producer builds keep their existing pin. Claude-Session: https://claude.ai/code/session_01Uqbs1b3vn3y3B5Cn9JPsNQ
Wait for the actual source document and rendered editor before replacing text. Use CodeMirror select-all so the editor owns the replacement selection, and retain a real imported-document ordering regression. Use a multi-character incomplete form for the negative compile/save control. A lone opening bracket intentionally wraps the selected text; the failed compile and exact saved-content checks remain. Signed-off-by: Damian Reeves <[email protected]>
Three browser fills raced a render that the previous step had queued: - The project folder follows the name in a later render. When that render arrived between fill's select-all and insert, the folder became "quotespackages/quotes", so packages/quotes/morphir.toml was never written. The loose root-manifest regex still matched the corrupted member. - The worksheet and an opened file replace the editor document after the click. A fill that starts first keeps its text in front of the new document, for example "33(define (identity value) value)\n". fillNewProject now waits for the derived folder before it types the folder, and checks the exact typed value. The editor fills wait for the shown document. The root-manifest assertions now match the exact members entry. Reproduced in the Playwright 1.64.1 Linux image with a Linux native owner and 8 parallel loops: 7 of 48 runs failed, including the CI ENOENT at workspace-files-browser.test.ts:74 and the connected savedText failure seen on main. After the change, 64 of 64 runs passed under the same load. Claude-Session: https://claude.ai/code/session_01Uqbs1b3vn3y3B5Cn9JPsNQ
Windows CI ran the released-backend cancellation for the first time. It failed with "Real adapter did not start" after the fixed 25 second wait. The leftover job request showed the helper still on its second preflight runner call (kit status), so the canonical command had not started yet. Each supervised runner call on Windows starts a PowerShell job. Receipts now record the duration of every delegated and direct call. The summary line reports the count, total and slowest delegated call. The cancellation phases wait up to 150 seconds for the real adapter and name any pending supervised runner calls when it does not start. The deadline phase takes its budget from the slowest observed start, so the deadline still expires while the real adapter hangs. The adapter-removal and report-refusal assertions are unchanged.
Readiness follows the mounted document key and current CodeMirror draft. The host rendered value can lag a valid edit. Signed-off-by: Damian Reeves <[email protected]>
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Oct 22, 2026
On Windows CI the deadline phase ended with exit 1 instead of 124. The hanging adapter reached the canonical runner's own per-request timeout (run --timeout, default 30000 ms) before the bridge deadline. The runner then completed with a failed case. The cancellation phases now pass run --timeout 60 s beyond the bridge budget, so only the bridge's cancellation or deadline ends the adapter. The canonical session timeout default (1800000 ms) is already longer.
Under a stripped host environment, every supervised Windows job took about 22 seconds before its command started. PowerShell command autoloading for Get-Item, ConvertFrom-Json and Add-Type searched PSModulePath. Windows PowerShell inserts the all-users Program Files modules directory, and on CI runners that lookup took about 22 s. Windows probe runs 39715632034 and 39718454509 timed ConvertFrom-Json at 22-23 s whenever that directory was on the effective path, and at 0.3-0.9 s otherwise. windows-job.ps1 now disables module autoloading and imports Microsoft.PowerShell.Management and Microsoft.PowerShell.Utility by absolute $PSHOME paths, so it never searches PSModulePath. The launcher and model environments are unchanged. The supervision test starts a job from a stripped host. It requires the job to start within 8 s, and the model environment to receive no PSModulePath.
Signed-off-by: Damian Reeves <[email protected]>
Signed-off-by: Damian Reeves <[email protected]>
DamianReeves
changed the base branch from
main
to
DamianReeves/mck-runner-bridge
October 22, 2026 04:16
Prevent Windows checkout conversion from changing the vendored ZIP notice. Keep the dependency hash and exact byte comparison unchanged. Signed-off-by: Damian Reeves <[email protected]>
Signed-off-by: Damian Reeves <[email protected]>
DamianReeves
changed the base branch from
DamianReeves/mck-runner-bridge
to
main
October 22, 2026 04:44
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
#197 has merged as
04f64b1ff9cbb33b5d8095d8807235d3a549a18d. This PR now targets main and includes that actual squash commit through integration226f1f4b489e147a37664d2f25baebfe2ea06cdc. Its complete source tree is identical to tested predecessor917a614. Normal squash queue only; no bypass is requested.Connected Originals adds Download originals archive. The ZIP64 archive preserves exact original bytes, binary sidecars, empty files and explicit empty directories. Each download belongs to the current workspace and inventory revision, retires on Close or replacement, and clears pending state after page lifecycle retirement. Failed openings preserve the prior model.
The adapter validates the complete portable namespace before copying, snapshots originals privately, writes within checked fixed capacity and consumes each download output once. Shared bridge types remain DOM-free for worker type checking. The pinned zip.js dependency includes its license and provenance. Current head
226f1f4b489e147a37664d2f25baebfe2ea06cdcpreserves the vendored license bytes across checkout. Git'score.autocrlf=truefilter reproduces the mismatching CRLF bytes before the attribute, and restores the exact pinned package hash afterward. The version, hash check and byte comparison remain strict.Editor and browser controls wait for the actual selected document key and CodeMirror's current draft to agree before replacing text. A delayed host echo does not block a settled editor. Source replacement uses CodeMirror's select-all command. Two real browser regressions cover a held selected-document reconciliation and a genuine user edit awaiting its host input event. Both retain their original oracles; the latter fails with the former echo requirement and passes when only that requirement is removed. Readiness failures report bounded state metadata without source contents or replacing the original error. The negative compilation/save control retains failed-compilation and exact saved-content assertions with a multi-character incomplete form, since a lone opening bracket intentionally wraps selected text.
The editor focus handler preserves select-all through CodeMirror's delayed focus notification. Connected worksheet controls retain the real source/revision report, result
42, rendered currentness and saved native bytes. The stack conflict resolution retains #197's project-creation helper and exact rendered result assertions alongside this PR's source/revision, late-save, cancellation and disposal checks.The unrelated macOS endpoint-test failure reproduced locally from unchanged base code. Its 150 ms ACK deadline could expire during Node/TypeScript module startup before any Open frame. The control now selects its single original deadline after module import and before the factory opens either endpoint. Production code, the deadline duration and every assertion are unchanged. No opened producer receives an extension. Failure-only CLI transfer diagnostics also preserve bounded, redacted evidence.
Validation and source association:
18206c561e9f53b5e4d342e857ff9bcef8d00ccfcontains dependency head f76d664. It passes the full ordinary browser workflow, eight workspace-file browser tests, all 14 actual endpoint tests, type checking of 397 files across five projects, lint, MoonBit formatting, validation and the normal pre-push hook. The ACK control has a preserved local failing baseline and passing successor. Earlier editor regressions and their oracles remain intact. The only successor change is the byte-preserving license attribute; its Git-filter comparison and normal pre-push checks pass.1e249ca6passed 74 originals tests. Production encoding and independent extraction cover 100,064 directory-only and mixed entries, an exact 64 MiB binary original, empty files and empty directories.The squash integration encountered the same workspace browser-test history conflict. Restoring the already-resolved current file yields an exact full-tree match to917a614, with all dependency fixes preserved. There are no changed application/test inputs requiring a duplicate local browser run. Current-head CI and complete review/queue checks remain required before the normal squash queue.
Tracked by
morphir-etg2.22.2. Its complete HTML design and done/pending checklist are stored in beads. These checks establish product and format behavior. Maintained browser/checker binding, full connected MCK/platform qualification and browser back/forward-cache acceptance remain open campaign work.