test(runtime): close shell-run stores before cleanup - #3644
Conversation
Generated-by: Codex
70e123d to
a8661ab
Compare
|
Rebased this PR onto current main at a8661ab, which includes #3642 and removes the three pre-existing SessionChangedEvent.type build errors from the initial run. The new workflow run is currently action_required, so it needs maintainer approval before CI can execute. The branch still contains only the original targeted runtime test cleanup commit. |
Astro-Han
left a comment
There was a problem hiding this comment.
Reviewed at exact head a8661abd. No findings — no [P0]–[P3]. Publishing on behalf of a reviewer without write access here; I re-verified the scope and gate state before posting.
The diff is confined to the runtime shell-run test lifecycle. The wrapper tracks every ClosableShellRunStore it creates, and the top-level after closes each store before removing the directory — which is the right order, and the whole point of the change. Nothing in the production path moves.
Independent validation at this head: focused build plus the shell-run-manager suite at 58 passed / 4 skipped / 0 failed, with lint, format, and git diff --check all clean.
Not approving yet, and the reason is procedural rather than substantive. When this was reviewed the exact-head checks had never executed — the run was parked at action_required, which is the state fork PRs sit in until someone releases them. I have since released it and test is now running. Never-run is not the same as green, so the approval has to wait for a terminal result on this exact head. Assuming it lands green and the head does not move, this is ready.
Astro-Han
left a comment
There was a problem hiding this comment.
Gate now satisfied at the same head a8661abd. The run I released has landed: test is terminal completed/success, which is the only check this path set triggers. The head has not moved since the review above, there are no unresolved threads, and no [P0]–[P3] were found.
Approving.
|
LGTM — merged. Thanks for the contribution! 中文已合并,感谢贡献。 |
Summary
Track every SQLite ShellRun store opened by the shell-run-manager suite and close those leases before removing the temporary workspaces. This removes the deterministic Windows
EBUSYcleanup failure without retrying or masking deletion while a live owner remains.Refs #2624
Verification
npm --workspace @maka/runtime run typecheck— passed.npm --workspace @maka/runtime run build— passed.windows-baseline.yml— 2 passed, 0 failed, and exited normally.close()loop; both selected assertions still passed, then the top-level hook failed withEBUSY ... runtime.sqliteand exit code 1. Restoring the loop returned the gate to exit code 0.npm run lintandnpm run format:check— passed.npx knip --workspace apps/desktopandnpx knip --workspace packages/ui— passed (desktop reported two existing configuration hints).runtime.sqlitecleanup hook failure is absent.npm run build/npm run typecheckreach Desktop and then fail on the three pre-existingSessionChangedEvent.typeerrors ingoal-services-adapter.test.ts. Currentmainfails at the same Build step: https://github.com/apache/maka/actions/runs/32652983938AI use
Select exactly one:
Tool(s) and scope: Codex diagnosed the ownership boundary, implemented the test-lifecycle change, ran the verification and mutation checks, and drafted this pull request description. The commit includes the required
Generated-by: Codextrailer.Checklist
The affected Runtime checks, lint, format, and selected Windows gate pass; the unchecked item reflects the current unrelated Desktop build/typecheck baseline failure documented above.
Does this PR entail a change in behavior?