Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
c60c0f5
chore(porch): 1658 init spir
amrmelsayed Oct 11, 2026
ccc3156
[Spec 1658] Initial specification draft
amrmelsayed Oct 11, 2026
2fae3e1
chore(porch): 1658 specify build-complete
amrmelsayed Oct 11, 2026
b988964
[Spec 1658] Specification with multi-agent review
amrmelsayed Oct 11, 2026
006e3d2
chore(porch): 1658 spec-approval gate-requested
amrmelsayed Oct 11, 2026
149d5ec
[Spec 1658] Thread log + iter1 rebuttal
amrmelsayed Oct 11, 2026
0f83301
[Spec 1658] Specification with user feedback
amrmelsayed Oct 21, 2026
d06ed2d
[Spec 1658] Thread log: gate feedback
amrmelsayed Oct 21, 2026
6c4da97
Merge remote-tracking branch 'origin/main' into builder/spir-1658
amrmelsayed Oct 21, 2026
279f4ed
[Spec 1658] Specification with user feedback: sync facts with current…
amrmelsayed Oct 21, 2026
1c6b396
[Spec 1658] Specification with user feedback: Codev IDE server in sco…
amrmelsayed Oct 21, 2026
5b46ca0
[Spec 1658] Thread log: IDE server direction
amrmelsayed Oct 21, 2026
a227b10
chore(porch): 1658 spec-approval gate-approved
amrmelsayed Oct 21, 2026
a9d8e24
chore(porch): 1658 plan phase-transition
amrmelsayed Oct 21, 2026
dc9674b
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
3bd35fb
[Spec 1658] Initial implementation plan
amrmelsayed Oct 21, 2026
4ccc9b6
chore(porch): 1658 plan build-complete
amrmelsayed Oct 21, 2026
6a9ad3e
[Spec 1658] Plan with multi-agent review
amrmelsayed Oct 21, 2026
4b4aa39
chore(porch): 1658 plan-approval gate-requested
amrmelsayed Oct 21, 2026
c0badf4
[Spec 1658] Thread log: plan review and gate
amrmelsayed Oct 21, 2026
96b64a8
[Spec 1658] Plan with user feedback: early windows.yml PR, Git Bash o…
amrmelsayed Oct 21, 2026
38339fc
chore(porch): 1658 plan-approval gate-approved
amrmelsayed Oct 21, 2026
9d03412
chore(porch): 1658 implement phase-transition
amrmelsayed Oct 21, 2026
4736cce
[Spec 1658][Phase: phase_1] feat: Windows probe harness, on-demand wo…
amrmelsayed Oct 21, 2026
d265221
[Spec 1658] Thread log: Phase 1 and early PR
amrmelsayed Oct 21, 2026
ed43c78
[Spec 1658][Phase: phase_1] fix: Isolate the --tower probe from a rea…
amrmelsayed Oct 21, 2026
c167f7b
[Spec 1658][Phase: phase_1] fix: Probe never leaks its Tower; detect …
amrmelsayed Oct 21, 2026
7f68834
[Spec 1658][Phase: phase_1] fix: Probe detects real node-gyp runs and…
amrmelsayed Oct 21, 2026
3b4b572
[Spec 1658][Phase: phase_1] docs: Audit measured facts from three Win…
amrmelsayed Oct 21, 2026
dd507f3
[Spec 1658] Thread log: Phase 1 CI facts
amrmelsayed Oct 21, 2026
fcac87d
[Spec 1658][Phase: phase_1] docs: Windows Terminal survival result (o…
amrmelsayed Oct 21, 2026
74d382d
[Spec 1658][Phase: phase_1] docs: Owner machine probe facts
amrmelsayed Oct 21, 2026
725a0e6
[Spec 1658][Phase: phase_1] docs: VS Code terminal survival; launcher…
amrmelsayed Oct 21, 2026
37ee7fa
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
9c300aa
Merge remote-tracking branch 'origin/main' into builder/spir-1658
amrmelsayed Oct 21, 2026
9db8e04
[Spec 1658][Phase: phase_1] fix: Review feedback: hang reproduction, …
amrmelsayed Oct 21, 2026
2d04cc9
[Spec 1658][Phase: phase_1] Review rebuttal; ARM64 measured; hang rep…
amrmelsayed Oct 21, 2026
04b9077
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 21, 2026
3bd43f8
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
132ad38
[Spec 1658][Phase: phase_1] fix: Tower probe fails the run on hang/fa…
amrmelsayed Oct 21, 2026
d6faa0f
[Spec 1658][Phase: phase_1] Iteration 2 rebuttal; 3.3.3 probed, hang …
amrmelsayed Oct 21, 2026
3f7e019
chore(porch): 1658 implement re-iter (iter 3)
amrmelsayed Oct 21, 2026
edc882a
[Spec 1658] Owner ruling: hang root-cause criterion discharged as not…
amrmelsayed Oct 21, 2026
81719ec
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
54cce6c
[Spec 1658] Review: record intermittent porch tests-check failure
amrmelsayed Oct 21, 2026
7cefdd6
[Spec 1658] Thread log: Phase 1 approved
amrmelsayed Oct 21, 2026
9bc2b58
chore(porch): 1658 advance plan phase → phase_2
amrmelsayed Oct 21, 2026
4ed6d5a
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
eaeee65
[Spec 1658][Phase: phase_2] feat: shellper named-pipe transport, per-…
amrmelsayed Oct 21, 2026
2591d48
[Spec 1658][Phase: phase_2] fix: read shellper info on complete JSON,…
amrmelsayed Oct 21, 2026
90a1b6f
[Spec 1658][Phase: phase_2] test: Windows pipe test harness fixes (ne…
amrmelsayed Oct 21, 2026
3081da1
[Spec 1658][Phase: phase_2] test: record the scenario 14 second-user …
amrmelsayed Oct 21, 2026
d0b1402
[Spec 1658][Phase: phase_2] audit: record Windows pipe measurements
amrmelsayed Oct 21, 2026
662e67c
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
15a93e6
[Spec 1658][Phase: phase_2] Restore DbTerminalSession doc comment pla…
amrmelsayed Oct 21, 2026
19820db
chore(porch): 1658 advance plan phase → phase_3
amrmelsayed Oct 21, 2026
d893919
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
1115a17
[Spec 1658][Phase: phase_3] feat: Windows process census and session-…
amrmelsayed Oct 21, 2026
39556e0
[Spec 1658][Phase: phase_3] fix: teardown reads the census fresh, not…
amrmelsayed Oct 21, 2026
614c395
[Spec 1658][Phase: phase_3] fix: ConPTY console host does not keep a …
amrmelsayed Oct 21, 2026
ae0ede5
[Spec 1658][Phase: phase_3] test: Windows re-parent case uses a backg…
amrmelsayed Oct 21, 2026
cca541d
[Spec 1658][Phase: phase_3] test: orphan the Windows re-parent leaf w…
amrmelsayed Oct 21, 2026
9049a0c
[Spec 1658][Phase: phase_3] thread: Windows teardown findings and B2 …
amrmelsayed Oct 21, 2026
d36dcb9
[Spec 1658][Phase: phase_3] Pin the re-parented teardown gap; amend c…
amrmelsayed Oct 21, 2026
cf457c7
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
30126a4
[Spec 1658] Plan: add Phase 3b (per-session Job Object, B2) for archi…
amrmelsayed Oct 21, 2026
bdff381
[Spec 1658] Plan: fold the architect's six Phase 3b conditions and th…
amrmelsayed Oct 21, 2026
2312d7f
[Spec 1658][Phase: phase_3] Address iter1 review: awaited reap, root …
amrmelsayed Oct 21, 2026
c6f3c57
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 21, 2026
4116273
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
b11e774
[Spec 1658][Phase: phase_3] Address iter2 review: start times through…
amrmelsayed Oct 21, 2026
253d931
chore(porch): 1658 implement re-iter (iter 3)
amrmelsayed Oct 21, 2026
27efd86
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
23d5bbe
[Spec 1658][Phase: phase_3] Address iter3 review: root identity check…
amrmelsayed Oct 21, 2026
ab0ebe8
chore(porch): 1658 implement force-advance (safety ceiling reached at…
amrmelsayed Oct 21, 2026
48aaec7
chore(porch): 1658 advance plan phase → phase_4
amrmelsayed Oct 21, 2026
fb293fb
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
a891d30
[Spec 1658][Phase: phase_3b] Teardown: an unverifiable root rejects (…
amrmelsayed Oct 21, 2026
cf7f324
[Spec 1658][Phase: phase_3b] Job helper with in-memory P/Invoke, and …
amrmelsayed Oct 21, 2026
8ddc138
[Spec 1658][Phase: phase_3b] Job helper: session root holds a job han…
amrmelsayed Oct 21, 2026
1e636de
[Spec 1658][Phase: phase_3b] Windows job test: measure detached and C…
amrmelsayed Oct 21, 2026
b337be6
[Spec 1658][Phase: phase_3b] Shellper: with deferPty, hold the first …
amrmelsayed Oct 21, 2026
49344eb
[Spec 1658][Phase: phase_3b] killSessionTree: terminate the named ses…
amrmelsayed Oct 21, 2026
23a4af7
[Spec 1658][Phase: phase_3b] Audit 1.8: job object cost gate and brea…
amrmelsayed Oct 21, 2026
df021c1
[Spec 1658][Phase: phase_3b] Sessions get their job before the PTY; t…
amrmelsayed Oct 21, 2026
58e1933
[Spec 1658] Plan and review: record the detached-breakaway ruling, th…
amrmelsayed Oct 21, 2026
ee2eff6
[Spec 1658][Phase: phase_3b] cleanup sweep test expects the job name;…
amrmelsayed Oct 21, 2026
08c3c66
[Spec 1658][Phase: phase_3b] Address 3b review: terminate only a job …
amrmelsayed Oct 21, 2026
ece177d
[Spec 1658][Phase: phase_3b] Job helper: read the last Win32 error on…
amrmelsayed Oct 21, 2026
cfedc4f
[Spec 1658][Phase: phase_3b] 3b review rebuttals, thread
amrmelsayed Oct 21, 2026
6feae46
[Spec 1658] Audit: record the Phase 3b commit range in porch's phase_…
amrmelsayed Oct 21, 2026
b980ece
[Spec 1658][Phase: phase_4] Tower stop/start on Windows: HTTP gracefu…
amrmelsayed Oct 21, 2026
ac20f5a
[Spec 1658][Phase: phase_4] Tower lifecycle Windows test: the daemon …
amrmelsayed Oct 21, 2026
0932eda
[Spec 1658][Phase: phase_4] Review and thread: Tower lifecycle facts,…
amrmelsayed Oct 21, 2026
abb3a44
[Spec 1658][Phase: phase_4] Audit: Phase 4 commit range
amrmelsayed Oct 21, 2026
f6f930b
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
6617ad7
[Spec 1658][Phase: phase_4] /api/shutdown refuses tunnel-borne reques…
amrmelsayed Oct 21, 2026
d4fd2e7
[Spec 1658][Phase: phase_4] Shutdown route logs its source through lo…
amrmelsayed Oct 21, 2026
306fd3c
[Spec 1658][Phase: phase_4] Address phase_4 review: agent pid continu…
amrmelsayed Oct 21, 2026
8fae1aa
[Spec 1658][Phase: phase_4] phase_4 review rebuttals, review follow-u…
amrmelsayed Oct 21, 2026
8162a09
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 21, 2026
3ea7456
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
db4de3d
[Spec 1658][Phase: phase_4] Address phase_4 iter2 review: bridge-mode…
amrmelsayed Oct 21, 2026
ee83423
[Spec 1658][Phase: phase_4] phase_4 iter2 rebuttals, thread
amrmelsayed Oct 21, 2026
4c0fa7c
chore(porch): 1658 implement re-iter (iter 3)
amrmelsayed Oct 21, 2026
ca0dcd4
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
bb67a5a
[Spec 1658][Phase: phase_4] iter3 nits: shutdown wording, bridge read…
amrmelsayed Oct 21, 2026
6fc123e
chore(porch): 1658 advance plan phase → phase_5
amrmelsayed Oct 21, 2026
7053288
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
6b94190
[Spec 1658][Phase: phase_5] feat: Git Bash, executable shim and MSYS …
amrmelsayed Oct 21, 2026
19e1ba7
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
5fe79f6
[Spec 1658][Phase: phase_5] iter1 review: jq probe failure, quote-awa…
amrmelsayed Oct 21, 2026
4ee8f02
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 21, 2026
93da5f0
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
f410fa2
[Spec 1658][Phase: phase_5] thread: consult outcome and Phase 6 carry…
amrmelsayed Oct 21, 2026
0841add
chore(porch): 1658 advance plan phase → phase_6
amrmelsayed Oct 21, 2026
44fe584
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
d1183f5
[Spec 1658][Phase: phase_6] feat: route launchers through Git Bash an…
amrmelsayed Oct 21, 2026
c49041c
[Spec 1658][Phase: phase_6] test: bash-quote the porch check path; di…
amrmelsayed Oct 21, 2026
1a72232
[Spec 1658][Phase: phase_6] fix: snapshot a Windows session tree befo…
amrmelsayed Oct 21, 2026
f1b7311
[Spec 1658][Phase: phase_6] thread: Phase 6 launcher routing and Wind…
amrmelsayed Oct 21, 2026
46aea89
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
ea79baa
[Spec 1658][Phase: phase_6] fix: doctor CLI probes through the shim r…
amrmelsayed Oct 21, 2026
b0eb373
[Spec 1658][Phase: phase_6] test: role assertion strips trailing CRLF…
amrmelsayed Oct 21, 2026
ee08bf1
[Spec 1658][Phase: phase_6] thread: consult iter1 outcome
amrmelsayed Oct 21, 2026
7b4ce51
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 21, 2026
1951f20
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
908f907
[Spec 1658][Phase: phase_6] docs: note Tower maps the extension's dev…
amrmelsayed Oct 21, 2026
7664bf8
chore(porch): 1658 advance plan phase → phase_7
amrmelsayed Oct 21, 2026
1b72c7d
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
049eaec
[Spec 1658][Phase: phase_7] feat: Windows worktree links (junction/ha…
amrmelsayed Oct 21, 2026
7b43835
[Spec 1658][Phase: phase_7] test: separator-agnostic removal unit tes…
amrmelsayed Oct 21, 2026
04f5aec
[Spec 1658][Phase: phase_7] test: POSIX cleanup routing test skips on…
amrmelsayed Oct 21, 2026
1b40ff3
[Spec 1658][Phase: phase_7] thread: Windows run outcomes
amrmelsayed Oct 21, 2026
b031db8
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
49eb0cd
[Spec 1658][Phase: phase_7] fix: a failed Windows worktree removal st…
amrmelsayed Oct 21, 2026
48fc2c6
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 21, 2026
ae00882
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
909e375
[Spec 1658][Phase: phase_7] thread: iter2 outcome
amrmelsayed Oct 21, 2026
8efa944
chore(porch): 1658 advance plan phase → phase_8
amrmelsayed Oct 21, 2026
cdc2e8a
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
d69ebd0
[Spec 1658][Phase: phase_8] feat: ConPTY capture recorder, production…
amrmelsayed Oct 21, 2026
54a1f66
[Spec 1658][Phase: phase_8] Replay suite skips with a reason when cap…
amrmelsayed Oct 21, 2026
1e0b3b7
chore(porch): 1658 implement build-complete
amrmelsayed Oct 21, 2026
9e2d59b
[Spec 1658][Phase: phase_8] Recorder uses the production agent env an…
amrmelsayed Oct 21, 2026
397e3e3
chore(porch): 1658 advance plan phase → phase_9
amrmelsayed Oct 21, 2026
40c0aa5
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 21, 2026
baa0e1c
[Spec 1658][Phase: phase_9] IDE server on Windows: shim-resolved spaw…
amrmelsayed Oct 21, 2026
559ccb9
[Spec 1658][Phase: phase_9] Stub-shim test covers both shim shapes (n…
amrmelsayed Oct 21, 2026
3af370f
Merge remote-tracking branch 'origin/main' into builder/spir-1658
amrmelsayed Oct 22, 2026
67d45ce
[Spec 1658][Phase: phase_9] IDE server on Windows after #1789: discov…
amrmelsayed Oct 22, 2026
ffc0071
[Spec 1658][Phase: phase_9] Windows check of the #1595 lifecycle repo…
amrmelsayed Oct 22, 2026
fee021f
[Spec 1658][Phase: phase_9] Lifecycle reporter check: probe Claude Co…
amrmelsayed Oct 22, 2026
1ad5f26
[Spec 1658][Phase: phase_9] build-ide-extension: run pnpm via npm_exe…
amrmelsayed Oct 22, 2026
fcfcb33
[Spec 1658][Phase: phase_9] Server CLI commands not detached on Windo…
amrmelsayed Oct 22, 2026
6b82342
[Spec 1658][Phase: phase_9] IDE liveness checks in async paths use a …
amrmelsayed Oct 23, 2026
259c991
[Spec 1658][Phase: phase_9] Thread: Phase 9 notes
amrmelsayed Oct 23, 2026
381bf09
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
22acfbb
[Spec 1658][Phase: phase_9] CMAP iter1: never-ready server's tree kil…
amrmelsayed Oct 23, 2026
58469f9
[Spec 1658][Phase: phase_9] Never-ready IDE server stopped on POSIX t…
amrmelsayed Oct 23, 2026
6a999e4
[Spec 1658][Phase: phase_9] Review: POSIX never-ready fix recorded
amrmelsayed Oct 23, 2026
544c06b
[Spec 1658][Phase: phase_9] Stub test: profile check evaluates the pr…
amrmelsayed Oct 23, 2026
28631aa
[Spec 1658][Phase: phase_9] test: auto-restart real-shellper tests wa…
amrmelsayed Oct 23, 2026
26d943f
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 23, 2026
1a15700
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
1a813ac
[Spec 1658][Phase: phase_9] CMAP iter2: Windows stop tells a failed p…
amrmelsayed Oct 23, 2026
43e0379
chore(porch): 1658 implement re-iter (iter 3)
amrmelsayed Oct 23, 2026
d7f5244
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
d5b8e18
[Spec 1658][Phase: phase_9] CMAP iter3: Windows never-ready stop veri…
amrmelsayed Oct 23, 2026
b7d7b1d
chore(porch): 1658 implement force-advance (safety ceiling reached at…
amrmelsayed Oct 23, 2026
19e5131
chore(porch): 1658 advance plan phase → phase_10
amrmelsayed Oct 23, 2026
ac2b80d
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 23, 2026
7754315
[Spec 1658][Phase: phase_9] Thread: Phase 9 CMAP and #1800 notes
amrmelsayed Oct 23, 2026
1e643aa
[Spec 1658][Phase: phase_10] Runtime POSIX residue, doctor long-path …
amrmelsayed Oct 23, 2026
b95f62c
[Spec 1658][Phase: phase_10] Install guard check passes the node-gyp …
amrmelsayed Oct 23, 2026
62bcef3
[Spec 1658][Phase: phase_10] findWorkspaceRoot stops at a drive root;…
amrmelsayed Oct 23, 2026
c15892f
[Spec 1658][Phase: phase_10] /tmp residue in tests: annotate opaque a…
amrmelsayed Oct 23, 2026
de8af0e
[Spec 1658][Phase: phase_10] Windows suite triage: runtime fixes (cod…
amrmelsayed Oct 23, 2026
35602e0
[Spec 1658][Phase: phase_10] Windows triage round 2: jira forge keys …
amrmelsayed Oct 23, 2026
067cd80
[Spec 1658][Phase: phase_10] Windows triage round 3: census-bound res…
amrmelsayed Oct 23, 2026
261bf8e
[Spec 1658][Phase: phase_10] agy lane cleanup checks every fake agy e…
amrmelsayed Oct 23, 2026
4b69397
[Spec 1658][Phase: phase_10] agy cache cleanup reports survivors when…
amrmelsayed Oct 23, 2026
a767d6a
[Spec 1658][Phase: phase_10] Windows budget for the first native-bind…
amrmelsayed Oct 23, 2026
4773a5a
[Spec 1658][Phase: phase_10] Windows load noise: agy lane temp dirs t…
amrmelsayed Oct 23, 2026
e827078
[Spec 1658][Phase: phase_10] Phase 4(b) records Tower's job membershi…
amrmelsayed Oct 23, 2026
14c8cdc
[Spec 1658][Phase: phase_10] Windows-only test and hook timeout defau…
amrmelsayed Oct 23, 2026
8b70613
[Spec 1658][Phase: phase_10] Thread: Phase 10 Windows suite green
amrmelsayed Oct 23, 2026
edea4ed
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
3aae3df
[Spec 1658][Phase: phase_10] Review: Windows findings with test counts
amrmelsayed Oct 23, 2026
43dd92a
[Spec 1658][Phase: phase_10] CMAP iter1: node-pty load failures carry…
amrmelsayed Oct 23, 2026
621358d
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 23, 2026
7f440b4
[Spec 1658][Phase: phase_10] Plan: record the npm-config deviation (t…
amrmelsayed Oct 23, 2026
beedfe6
[Spec 1658][Phase: phase_10] #1800: skip 'bounds a harness that exits…
amrmelsayed Oct 23, 2026
d6df87e
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
f52f214
[Spec 1658][Phase: phase_10] CMAP iter2: every runtime better-sqlite3…
amrmelsayed Oct 23, 2026
136b7cd
chore(porch): 1658 implement re-iter (iter 3)
amrmelsayed Oct 23, 2026
60a67c1
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
755ca8f
chore(porch): 1658 advance plan phase → phase_11
amrmelsayed Oct 23, 2026
88aa5f1
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 23, 2026
61c2032
[Spec 1658][Phase: phase_11] Windows workflow: unit, cli-e2e and post…
amrmelsayed Oct 23, 2026
5e2871b
[Spec 1658][Phase: phase_11] Docs: native Windows and WSL 2 install p…
amrmelsayed Oct 23, 2026
9cd969c
[Spec 1658][Phase: phase_11] verify-install.mjs names the missing cod…
amrmelsayed Oct 23, 2026
aa3e543
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
34b0c15
[Spec 1658][Phase: phase_11] CMAP iter1: only shell terminals default…
amrmelsayed Oct 23, 2026
1c36454
chore(porch): 1658 implement re-iter (iter 2)
amrmelsayed Oct 23, 2026
05b736e
[Spec 1658][Phase: phase_11] Thread: CMAP iter1
amrmelsayed Oct 23, 2026
f8d8ed8
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
d2296d5
[Spec 1658][Phase: phase_11] CMAP iter2: Windows install verification…
amrmelsayed Oct 23, 2026
8bf8896
[Spec 1658][Phase: phase_11] Windows: ws-snapshot test waits for the …
amrmelsayed Oct 23, 2026
94c0c08
[Spec 1658][Phase: phase_11] launchers.windows: postSpawn hook writes…
amrmelsayed Oct 23, 2026
1154b7b
[Spec 1658][Phase: phase_11] launchers.windows: take the whole worktr…
amrmelsayed Oct 23, 2026
4741b29
[Spec 1658][Phase: phase_11] Thread and review: the two intermittent …
amrmelsayed Oct 23, 2026
058a8c4
[Spec 1658][Phase: phase_11] Thread: Windows confirmation runs green
amrmelsayed Oct 23, 2026
6a60c71
chore(porch): 1658 implement re-iter (iter 3)
amrmelsayed Oct 23, 2026
430fe6f
chore(porch): 1658 implement build-complete
amrmelsayed Oct 23, 2026
977322d
[Spec 1658][Phase: phase_11] CMAP iter3 minors: Windows Node wording …
amrmelsayed Oct 23, 2026
b3e55fb
chore(porch): 1658 all plan phases complete → review
amrmelsayed Oct 23, 2026
1ab2f6e
chore(porch): 1658 acknowledge context refresh
amrmelsayed Oct 23, 2026
a9b2dba
[Spec 1658][Phase: review] Review doc to template; gate fixtures mark…
amrmelsayed Oct 23, 2026
1b78fc0
chore(porch): 1658 record PR #1859
amrmelsayed Oct 23, 2026
f6458b7
chore(porch): 1658 review build-complete
amrmelsayed Oct 23, 2026
4752375
[Spec 1658][Phase: review] PR CMAP + integration review: root taskkil…
amrmelsayed Oct 23, 2026
5dca140
[Spec 1658][Phase: review] Review: cwd-first user-tool spawns recorde…
amrmelsayed Oct 23, 2026
40b8c9c
chore(porch): 1658 review re-iter (iter 2)
amrmelsayed Oct 23, 2026
a98072e
chore(porch): 1658 review build-complete
amrmelsayed Oct 23, 2026
fa7d227
[Spec 1658][Phase: review] PR CMAP iter2: isSameProcess comment, roun…
amrmelsayed Oct 23, 2026
6b7ec61
chore(porch): 1658 review re-iter (iter 3)
amrmelsayed Oct 23, 2026
2d85e6f
chore(porch): 1658 review build-complete
amrmelsayed Oct 23, 2026
4d74bd5
[Spec 1658][Phase: review] PR CMAP iter3 dispositions; Windows interm…
amrmelsayed Oct 23, 2026
045a5e9
chore(porch): 1658 review force-advance (safety ceiling reached at it…
amrmelsayed Oct 23, 2026
833df77
chore(porch): 1658 pr gate-requested
amrmelsayed Oct 23, 2026
91ea359
[Spec 1658][Phase: review] POSIX CI: findWorkspaceRoot drive-root tes…
amrmelsayed Oct 23, 2026
8273c6b
[Spec 1658][Phase: review] Review: POSIX CI latent test fixes and Win…
amrmelsayed Oct 23, 2026
c8dbf3e
[Spec 1658] Thread: review phase, PR rounds and gate status
amrmelsayed Oct 23, 2026
7696e57
[Spec 1658] chore(docs): IDE server platform package renamed to @clue…
amrmelsayed Oct 29, 2026
793332c
Merge remote-tracking branch 'origin/main' into builder/spir-1658
amrmelsayed Oct 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .claude/skills/runnable-worktrees/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ command. Opt-in via `.codev/config.json`; unconfigured repos see zero behavior c
**unless** the entry ends in a slash: `".local-user-data/"` is treated as a literal path and
links the directory whole — shared with the parent, not branch-isolated. A dangling link is
fine if the source does not exist yet.
**Native Windows:** links are real symlinks when Developer Mode is on. Otherwise a directory
becomes a junction and a file a hard link, or a copy when no hard link can be made (another
volume); a copy does not reflect later edits, and `afx spawn` warns when it makes one.
- **Scripts on Windows** — `postSpawn` and `devCommand` run under Git Bash, so a script file
they call needs LF line endings (`codev doctor` warns about CRLF ones).
- **`postSpawn`** — commands run sequentially with `cwd` = worktree path. A non-zero exit aborts
the spawn loudly; the half-built worktree stays for inspection.
- **`devCommand`** — the foreground command that starts your dev process. Required for
Expand Down
5 changes: 5 additions & 0 deletions .codex/skills/runnable-worktrees/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ command. Opt-in via `.codev/config.json`; unconfigured repos see zero behavior c
**unless** the entry ends in a slash: `".local-user-data/"` is treated as a literal path and
links the directory whole — shared with the parent, not branch-isolated. A dangling link is
fine if the source does not exist yet.
**Native Windows:** links are real symlinks when Developer Mode is on. Otherwise a directory
becomes a junction and a file a hard link, or a copy when no hard link can be made (another
volume); a copy does not reflect later edits, and `afx spawn` warns when it makes one.
- **Scripts on Windows** — `postSpawn` and `devCommand` run under Git Bash, so a script file
they call needs LF line endings (`codev doctor` warns about CRLF ones).
- **`postSpawn`** — commands run sequentially with `cwd` = worktree path. A non-zero exit aborts
the spawn loudly; the half-built worktree stays for inspection.
- **`devCommand`** — the foreground command that starts your dev process. Required for
Expand Down
13 changes: 13 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Shell scripts run under bash, which is Git Bash on native Windows (Spec 1658),
# and bash fails on CRLF line endings. Pin LF in the working tree whatever the
# checkout's core.autocrlf, so the forge concept scripts that ship in
# packages/codev/scripts/forge/ (and every other .sh) stay runnable.
*.sh text eol=lf
*.bash text eol=lf

# Windows batch files need CRLF; cmd.exe misparses some LF-only scripts.
*.cmd text eol=crlf

# Render-gate fixtures are raw PTY bytes (Spec 1658): never convert their line
# endings, or a Windows checkout with core.autocrlf=true rewrites the captures.
packages/codev/src/agent-farm/__tests__/fixtures/gate/** -text
292 changes: 278 additions & 14 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,63 @@
name: Windows (on demand)
# Each dispatch names its purpose, so the run list says what every run was for.
run-name: "Windows: ${{ inputs.purpose || 'unlabelled' }}"

# Native Windows checks for Spec 1658. Manual dispatch ONLY: this workflow never runs on
# push or pull_request and is never a required check (owner ruling, 2026-10-21). Dispatch it
# before a release and on any PR that touches platform code:
#
# gh workflow run windows.yml --ref <branch> [-f filter=<vitest filter>] [-f tower=true]
# gh workflow run windows.yml --ref <branch> -f purpose='<what this run is for>' [-f suites=true] [-f filter=<vitest filter>] [-f tower=true]
#
# Jobs:
# probe scripts/windows-probe.mjs on Node 20/22/24: Git Bash, PATHEXT, named pipes,
# probe scripts/windows-probe.mjs on Node 20/22/24 (x64) and 22/24 (ARM64): Git Bash, PATHEXT, named pipes,
# CIM census latency, job objects, detached survival, native-dependency installs.
# With tower=true the Node 22 leg also starts Tower from the built checkout.
# With tower=true the x64 Node 22 leg also starts Tower from the built checkout (building
# the repo on ARM64 fails in the artifact-canvas bundler; users install prebuilt packages).
# targeted runs the packages/codev vitest files matching `filter` (skipped when empty).
# install-guard (install_guard=true) packs the branch packages, then on Node 20 installs them
# globally with node-gyp replaced by a failing stub: the install must fail with the
# supported-versions message and never reach the stub; on Node 22 it must succeed.
# unit, cli-e2e, post-release-e2e (suites=true) the full suites on windows-latest, Node 22 and 24
# (Node 20 has no better-sqlite3 prebuild on Windows, so it cannot install there):
# unit runs the sdk, core and codev unit tests; cli-e2e runs the built CLI tests;
# post-release-e2e packs the dispatched ref's packages and installs those tarballs
# with verify-install.mjs, or a published release when `version` is set (setting
# `version` without `suites` runs this job and the probes, not unit or cli-e2e).

on:
workflow_dispatch:
inputs:
purpose:
description: 'What this run is for (shown as the run name)'
required: false
default: ''
filter:
description: 'Vitest filter for the targeted job (packages/codev); empty skips it'
required: false
default: ''
tower:
description: 'Probe: also try `afx tower start` from the built checkout'
description: 'Probe: also try `afx tower start` (built checkout on Node 22; published package on every leg)'
type: boolean
required: false
default: false
install_guard:
description: 'Run the native-dependency install guard check (Node 20 refused, Node 22 installs)'
type: boolean
required: false
default: false
suites:
description: 'Run the full unit, cli-e2e and post-release-e2e suites (about an hour)'
type: boolean
required: false
default: false
version:
description: 'post-release-e2e: verify this published @cluesmith/codev version instead of the packed branch (a release after 3.3.5)'
required: false
default: ''
published:
description: 'Published @cluesmith/codev versions to probe with tower=true (space-separated; 3.3.3 was current on 2026-09-09)'
required: false
default: 'latest'

defaults:
run:
Expand All @@ -36,13 +70,21 @@ env:

jobs:
probe:
name: Probe (Node ${{ matrix.node }})
runs-on: windows-latest
name: Probe (${{ matrix.os }}, Node ${{ matrix.node }})
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os: [windows-latest]
node: ['20', '22', '24']
# ARM64: the spec supports it only if the native dependencies install from prebuilds;
# measured here rather than inferred from release asset names.
include:
- os: windows-11-arm
node: '22'
- os: windows-11-arm
node: '24'
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -56,34 +98,99 @@ jobs:
node-version: ${{ matrix.node }}

- name: Probe platform facts and native-dependency installs
run: node scripts/windows-probe.mjs --deps --out "$RUNNER_TEMP/probe-node${{ matrix.node }}.json"
run: node scripts/windows-probe.mjs --deps --out "$RUNNER_TEMP/probe-${{ matrix.os }}-node${{ matrix.node }}.json"

- name: Install dependencies
if: ${{ inputs.tower && matrix.node == '22' }}
if: ${{ !cancelled() && inputs.tower && matrix.node == '22' && matrix.os == 'windows-latest' }}
run: pnpm install

- name: Build packages/codev
if: ${{ inputs.tower && matrix.node == '22' }}
if: ${{ !cancelled() && inputs.tower && matrix.node == '22' && matrix.os == 'windows-latest' }}
working-directory: packages/codev
run: pnpm build

- name: Probe Tower start
if: ${{ inputs.tower && matrix.node == '22' }}
run: node scripts/windows-probe.mjs --tower --out "$RUNNER_TEMP/probe-tower.json"
if: ${{ !cancelled() && inputs.tower && matrix.node == '22' && matrix.os == 'windows-latest' }}
run: node scripts/windows-probe.mjs --tower --out "$RUNNER_TEMP/probe-tower-${{ matrix.os }}.json"

- name: Probe Tower start from the published package (global install)
if: ${{ !cancelled() && inputs.tower }}
# Node 20 cannot install the package on Windows (no better-sqlite3 prebuild; audit 1.1), so
# that leg records the failure without turning the run red.
continue-on-error: ${{ matrix.node == '20' }}
env:
PUBLISHED: ${{ inputs.published }}
run: |
specs=()
for v in $PUBLISHED; do specs+=(--tower-published "$v"); done
node scripts/windows-probe.mjs "${specs[@]}" --out "$RUNNER_TEMP/probe-published-${{ matrix.os }}-node${{ matrix.node }}.json"

- name: Upload probe reports
if: always()
uses: actions/upload-artifact@v4
with:
name: windows-probe-node${{ matrix.node }}
name: windows-probe-${{ matrix.os }}-node${{ matrix.node }}
path: ${{ runner.temp }}/probe-*.json
if-no-files-found: warn

install-guard:
name: Install guard (native dependencies)
if: ${{ inputs.install_guard }}
runs-on: windows-latest
timeout-minutes: 45
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js 22 (build and pack)
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Build packages/codev
working-directory: packages/codev
run: pnpm build

- name: Pack the branch packages
run: |
mkdir -p "$RUNNER_TEMP/packs"
for p in codev-types codev-core codev-sdk codev; do
pnpm --filter "@cluesmith/$p" pack --pack-destination "$RUNNER_TEMP/packs"
done
ls -l "$RUNNER_TEMP/packs"

- name: Setup Node.js 20 (unsupported on native Windows)
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Control - without the guard, better-sqlite3 falls back to node-gyp on Node 20
run: node scripts/windows-install-guard-check.mjs --control "$RUNNER_TEMP/packs"

- name: Guard - Node 20 install fails with the supported versions, node-gyp never runs
run: node scripts/windows-install-guard-check.mjs --unsupported "$RUNNER_TEMP/packs"

- name: Setup Node.js 22 (supported)
uses: actions/setup-node@v4
with:
node-version: '22'

- name: Supported - Node 22 installs from prebuilds
run: node scripts/windows-install-guard-check.mjs --supported "$RUNNER_TEMP/packs"

targeted:
name: Targeted tests
if: ${{ inputs.filter != '' }}
runs-on: windows-latest
timeout-minutes: 45
# The full unit suite (filter `src`) runs about 50 minutes on windows-latest.
timeout-minutes: 120
steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -108,4 +215,161 @@ jobs:
working-directory: packages/codev
env:
FILTER: ${{ inputs.filter }}
run: pnpm exec vitest run $FILTER
# Read-only GitHub concepts run live (Spec 1658 scenario 8).
GH_TOKEN: ${{ github.token }}
run: pnpm exec vitest run "$FILTER" --reporter=default --reporter=json --outputFile.json="$RUNNER_TEMP/vitest-report.json"

- name: Upload the test report
if: always()
uses: actions/upload-artifact@v4
with:
name: windows-vitest-report
path: ${{ runner.temp }}/vitest-report.json
if-no-files-found: warn

unit:
name: Unit tests (Node ${{ matrix.node }})
if: ${{ inputs.suites }}
runs-on: windows-latest
# The codev unit suite alone runs about 50 minutes on windows-latest.
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
node: ['22', '24']
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

# Builds codev's workspace dependencies (types, sdk, core) first.
- name: Build packages/codev
working-directory: packages/codev
run: pnpm build

- name: Run sdk unit tests
working-directory: packages/sdk
run: pnpm test

- name: Run core unit tests
working-directory: packages/core
run: pnpm test

- name: Copy skeleton for unit tests
working-directory: packages/codev
run: pnpm copy-skeleton

- name: Run codev unit tests
working-directory: packages/codev
env:
# Read-only GitHub concepts run live (Spec 1658 scenario 8).
GH_TOKEN: ${{ github.token }}
run: pnpm exec vitest run --reporter=default --reporter=json --outputFile.json="$RUNNER_TEMP/vitest-unit-report.json"

- name: Upload the test report
if: always()
uses: actions/upload-artifact@v4
with:
name: windows-unit-report-node${{ matrix.node }}
path: ${{ runner.temp }}/vitest-unit-report.json
if-no-files-found: warn

cli-e2e:
name: CLI tests (Node ${{ matrix.node }})
if: ${{ inputs.suites }}
runs-on: windows-latest
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
node: ['22', '24']
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'

- name: Install dependencies
run: pnpm install

- name: Build packages/codev
working-directory: packages/codev
run: pnpm build

- name: Run CLI integration tests
working-directory: packages/codev
run: pnpm exec vitest run --config vitest.cli.config.ts

post-release-e2e:
name: Install verification (Node ${{ matrix.node }})
if: ${{ inputs.suites || inputs.version != '' }}
runs-on: windows-latest
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
node: ['22', '24']
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install pnpm
if: ${{ inputs.version == '' }}
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: Install dependencies
if: ${{ inputs.version == '' }}
run: pnpm install

- name: Build packages/codev
if: ${{ inputs.version == '' }}
working-directory: packages/codev
run: pnpm build

# codev-types, codev-core and codev-sdk are runtime dependencies of codev, so the branch
# install takes their tarballs too (as test.yml's install verification does).
- name: Pack the branch packages
if: ${{ inputs.version == '' }}
run: |
mkdir -p "$RUNNER_TEMP/packs"
for p in codev-types codev-core codev-sdk codev; do
pnpm --filter "@cluesmith/$p" pack --pack-destination "$RUNNER_TEMP/packs"
done
ls -l "$RUNNER_TEMP/packs"

- name: Download the published package
if: ${{ inputs.version != '' }}
env:
VERSION: ${{ inputs.version }}
run: |
mkdir -p "$RUNNER_TEMP/packs"
npm view "@cluesmith/codev@$VERSION" version
npm pack "@cluesmith/codev@$VERSION" --pack-destination "$RUNNER_TEMP/packs"

# A user's npm runs install scripts under cmd.exe, so the workflow's Git Bash script shell
# (needed only to build this repo) is removed for the install, as windows-probe.mjs does.
- name: Verify installation
run: env -u npm_config_script_shell node packages/codev/scripts/verify-install.mjs "$RUNNER_TEMP"/packs/*.tgz
Loading
Loading