Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
784 commits
Select commit Hold shift + click to select a range
6eb4b04
cowork: schedule door port test pins that the bound's timer is always…
Winterrks Oct 19, 2026
ca81f09
Merge branch 'cowork/session-door-d2' into cowork/session-door-d3
Winterrks Oct 19, 2026
8029d91
Mac Cowork: read the row references only while the mode is on; keep a…
Winterrks Oct 19, 2026
8ea3504
cowork session door D3: the service start port carries the conversati…
Winterrks Oct 19, 2026
0b2ed14
Merge pull request #85 from yanlingLabs/cowork/n2-launcher-receipt-mac
Winterrks Oct 19, 2026
e2b205e
merge cowork/n2-integration-b1 (review fixes) into cowork/n2-integrat…
Winterrks Oct 19, 2026
08fc221
Merge pull request #95 from yanlingLabs/test-infra/git-owned-command-…
Winterrks Oct 19, 2026
0a31e72
cowork approvals: re-project after the Bash review, dot/question-mark…
Winterrks Oct 19, 2026
d532ccc
cowork launcher: receipt key equality takes its locks in a fixed orde…
Winterrks Oct 19, 2026
7d7919d
merge cowork/output-integration into cowork/n2-launcher-hardening
Winterrks Oct 19, 2026
54f92ac
cowork session door D3: the repository's write-once backend identity …
Winterrks Oct 19, 2026
428b9e7
cowork session door D3: planViewInstalled is true only under plan wit…
Winterrks Oct 19, 2026
a812d57
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
cc995f2
cowork approvals: the bridge accepts mode cowork (fails closed withou…
Winterrks Oct 19, 2026
e252ece
cowork native: a pressure halt before the host is bound is reported u…
Winterrks Oct 19, 2026
e83fdb0
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
7a2c2c0
Merge pull request #100 from yanlingLabs/cowork/n2-launcher-hardening
Winterrks Oct 19, 2026
73cb0b1
Merge pull request #96 from yanlingLabs/cowork/landing-fixes-1
Winterrks Oct 19, 2026
4ce0889
ci: build and test the Cowork launcher package (both configurations) …
Winterrks Oct 19, 2026
7422442
cowork: phone-stream revocation tests (no frames, stays attached); ou…
Winterrks Oct 19, 2026
ef698d4
test: a hidden non-litter entry under cowork/ still refuses (litter p…
Winterrks Oct 19, 2026
76044f9
core: correct the lazy adapter comment; pin the lazy runtime require
Winterrks Oct 19, 2026
23d1925
Merge pull request #94 from yanlingLabs/cowork/doctor-restore-and-purge
Winterrks Oct 19, 2026
006be28
cowork native: a held-frame overflow ends the incarnation instead of …
Winterrks Oct 19, 2026
6962f35
merge cowork/n2-integration-b1 (held-frame overflow, unbound-halt tes…
Winterrks Oct 19, 2026
f97be43
cowork native: explicit libkrun opt-out (COWORK_NATIVE=omit), no-inpu…
Winterrks Oct 19, 2026
a2d5b82
merge #88 (session-door-d1) into content-out
Winterrks Oct 19, 2026
c506726
docs: D3 note records the two LOWs owed from the delta review
Winterrks Oct 19, 2026
59565c0
Cowork content-out: review fixes (held restore section, content bindi…
Winterrks Oct 19, 2026
a1190a6
test: fold the lazy-runtime pin into host-code-broker.test.ts (a new …
Winterrks Oct 19, 2026
e73ffb0
N2 extensions design: fold the #92 review and the 2026-10-19 rulings
Winterrks Oct 19, 2026
3dac0e6
docs: D3 note checks the launch literals against agent SDK 5183d3a9's…
Winterrks Oct 19, 2026
7378eb1
cowork native: a conversation root whose source differs from its gues…
Winterrks Oct 19, 2026
193abbc
merge cowork/n2-integration-b1 (conversation root source pin) into co…
Winterrks Oct 19, 2026
6ab6474
Merge pull request #88 from yanlingLabs/cowork/session-door-d1
Winterrks Oct 19, 2026
4cb80c2
Merge pull request #89 from yanlingLabs/cowork/session-door-d2
Winterrks Oct 19, 2026
ccfa60b
Merge pull request #90 from yanlingLabs/cowork/schedule-port
Winterrks Oct 19, 2026
2a965a5
Merge pull request #93 from yanlingLabs/cowork/mac-ui
Winterrks Oct 19, 2026
5bd9def
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
f46af11
Cowork content-out: lock, deny-ACL, unreadable-ACL and workspace-fold…
Winterrks Oct 19, 2026
7bbcafd
Merge remote-tracking branch 'origin/cowork/approvals-projection' int…
Winterrks Oct 19, 2026
aec13ae
N2 extensions design: close the R15 bypasses and pin the R14 baseline
Winterrks Oct 19, 2026
ec5d0d4
verify:fd-receiver also proves installedHostCodeAdapter() runs in the…
Winterrks Oct 19, 2026
5bb3937
Merge pull request #84 from yanlingLabs/cowork/approvals-projection
Winterrks Oct 19, 2026
0003d52
Test: the launch's permission mode must agree with the set's even whe…
Winterrks Oct 19, 2026
1b25d60
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
5fd3c6a
Merge branch 'cowork/session-door-d3' into cowork/session-door-d4
Winterrks Oct 19, 2026
0c8ef88
test: winter-mcp-image-probe unregisters its host-storage policy cons…
Winterrks Oct 19, 2026
d4c068f
Merge integration into test-infra/fence-consumer-leak (the image-prob…
Winterrks Oct 19, 2026
e767a2e
Merge pull request #103 from yanlingLabs/cowork/landing-fixes-2
Winterrks Oct 19, 2026
e98075a
Cowork session door D4a: create is reserve, store row, bind, each ste…
Winterrks Oct 19, 2026
44012b0
merge cowork/output-integration into cowork/n2-integration-b2
Winterrks Oct 19, 2026
7ef1d19
merge cowork/output-integration into cowork/n2-integration-b1
Winterrks Oct 19, 2026
4bc3af7
Merge pull request #102 from yanlingLabs/cowork/launcher-ci
Winterrks Oct 19, 2026
9b2ee2b
cowork native: the activation seam's comment no longer names the door…
Winterrks Oct 19, 2026
b9a718b
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
df42d1a
Cowork session door D4a: tests for every reservation and authority cl…
Winterrks Oct 19, 2026
f3d65b0
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
14c8e96
Cowork content-out: give the whole-tree wiring scans a CI-sized timeo…
Winterrks Oct 19, 2026
c276385
wip: unregister the embedded storage-policy consumer on every stop pa…
Winterrks Oct 19, 2026
f9717cb
Merge integration into test-infra/fence-consumer-leak
Winterrks Oct 19, 2026
9cf38e6
Cowork session door D4b: stored Cowork rows route to the door's drive…
Winterrks Oct 19, 2026
1ced175
Cowork session door D4b: a Cowork steer reaches only a live driver (s…
Winterrks Oct 19, 2026
5312d88
Cowork session door D4c: the service calls S7B's provision after COMM…
Winterrks Oct 19, 2026
da3d248
N2 extensions design: R15 keeps the denylist and refuses repository-t…
Winterrks Oct 19, 2026
629d859
cowork native: the launcher-port tests wait for the hub's late end ev…
Winterrks Oct 19, 2026
cc432cb
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
4474986
test-infra: no host-storage policy consumer outlives its owner (faile…
Winterrks Oct 19, 2026
d1d6329
Cowork session door D3b: the outputs location (O1) runs behind the do…
Winterrks Oct 19, 2026
51059a8
N2 extensions design: close the R15 host-exec bypasses (REJECT at aec…
Winterrks Oct 19, 2026
335b811
cowork: landing pre-scan fixes (rollback docs and doctor hint, prepar…
Winterrks Oct 19, 2026
43b8aca
Cowork session door #92 N2: folder shares acknowledged ready at share…
Winterrks Oct 19, 2026
d0bc549
Cowork content-out: random opaque output ids and the SQLite content b…
Winterrks Oct 19, 2026
301b8bd
cowork approvals: planScratch path class (own sid, current epoch), pl…
Winterrks Oct 19, 2026
ab1ae76
doctor: comment wording (anti-wiring pin names the ledger)
Winterrks Oct 19, 2026
2f871fb
Cowork N1: migrations 20 (#97 export content binding) and 21 (#92 DOO…
Winterrks Oct 19, 2026
adf8b6b
Cowork content-out: note the migration 20 definitions
Winterrks Oct 19, 2026
5af774e
cowork native contract revision 3: host-backed shares, cold resume, t…
Winterrks Oct 19, 2026
4ae88c5
cowork native contract revision 3: re-pin the worker's and launcher's…
Winterrks Oct 19, 2026
66f2b2d
cowork native: the descriptor-count test takes its baseline once the …
Winterrks Oct 19, 2026
e2fedcd
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
d4496e6
Merge main into cowork/landing-fixes-3 (the usage-inert pin lives on …
Winterrks Oct 19, 2026
7a8c3f4
test: list scripts/embed-cowork-native.test.ts in the usage-inert pin…
Winterrks Oct 19, 2026
ad61ae9
docs: the rollback pin is in boot-quiet.test.ts
Winterrks Oct 19, 2026
4832dc0
merge #114 (cowork/session-door-n1-schema: migrations 20 and 21) into…
Winterrks Oct 19, 2026
2474503
Cowork content-out: run the export and restore tests against migratio…
Winterrks Oct 19, 2026
0625fb1
Merge pull request #112 from yanlingLabs/cowork/approvals-plan-scratch
Winterrks Oct 19, 2026
60ce48a
Merge pull request #101 from yanlingLabs/cowork/session-door-d3
Winterrks Oct 19, 2026
8764736
Merge pull request #107 from yanlingLabs/cowork/session-door-d4
Winterrks Oct 19, 2026
499fec0
Cowork session door D4 review fixes: abandoned standalone reservation…
Winterrks Oct 19, 2026
461299b
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
7c61586
Merge pull request #108 from yanlingLabs/cowork/session-door-d4b
Winterrks Oct 19, 2026
efd0ca2
Merge pull request #109 from yanlingLabs/cowork/session-door-d4c
Winterrks Oct 19, 2026
b2d1245
Merge pull request #110 from yanlingLabs/cowork/session-door-d3b
Winterrks Oct 19, 2026
8f79ded
cowork native: the descriptor-count test demands no growth (a leak ad…
Winterrks Oct 19, 2026
df63119
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
39110b3
Cowork plan view, DOOR half: planScratch path class, the machine's ep…
Winterrks Oct 19, 2026
749bbf2
Merge pull request #105 from yanlingLabs/test-infra/fence-consumer-leak
Winterrks Oct 19, 2026
27dfb1c
Merge integration (b2d1245d) into cowork/landing-fixes-3
Winterrks Oct 19, 2026
b8d3ada
Merge integration (749bbf26) into cowork/landing-fixes-3
Winterrks Oct 19, 2026
c970230
test: the rollback pin follows RUNTIME_STATE_SCHEMA_VERSION (now 19)
Winterrks Oct 19, 2026
d7713ba
N2 extensions design: close the R15 creation-order bypass (H5, round-…
Winterrks Oct 19, 2026
402512f
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
44ab7ca
Cowork DOOR review fold: shares acknowledged all or nothing, a refuse…
Winterrks Oct 19, 2026
a0f0f62
Cowork content-out: point the binding comment at the pins and validat…
Winterrks Oct 19, 2026
2700f0c
Cowork approval-ports test: compare the DOOR ports to APPROVALS' minu…
Winterrks Oct 19, 2026
0a1b77e
Merge branch 'cowork/fix-approval-ports-typecheck' into cowork/sessio…
Winterrks Oct 19, 2026
3d81112
Merge the integration tip and #117 into the DOOR fixes; the DOOR port…
Winterrks Oct 19, 2026
488986e
Cowork contract v3: wire the merged conversation-set builder to revis…
Winterrks Oct 19, 2026
c7093b2
merge cowork/output-integration into cowork/n2-integration-b3
Winterrks Oct 19, 2026
124ea74
merge cowork/session-door-d4-fixes (#116) into cowork/n2-integration-b3
Winterrks Oct 19, 2026
150220e
Cowork N3 + N4, the host half, gated: stable uids through the allocat…
Winterrks Oct 19, 2026
113c631
merge cowork/session-door-n34 (#118) into cowork/n2-integration-b3
Winterrks Oct 19, 2026
9e3e251
merge cowork/n2-contract-v3 (#115) into cowork/n2-integration-b3
Winterrks Oct 19, 2026
866910f
cowork native: a runtime overflow closes the stream for good; onData …
Winterrks Oct 19, 2026
93362ca
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
ba29691
cowork native: a test that kills the omit-branch rm -rf mutant (a sta…
Winterrks Oct 19, 2026
0f9491b
merge cowork/n2-integration-b2 into cowork/n2-integration-b3
Winterrks Oct 19, 2026
67931be
Merge pull request #117 from yanlingLabs/cowork/fix-approval-ports-ty…
Winterrks Oct 19, 2026
8881925
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 19, 2026
4354b2b
Merge commit '67931be51cf7258a98b37bebc41788627c06f6c8' into HEAD
Winterrks Oct 19, 2026
c74c5f8
merge cowork/output-integration into cowork/n2-integration-b1
Winterrks Oct 19, 2026
c76e08f
merge cowork/n2-integration-b1 into cowork/n2-integration-b2
Winterrks Oct 19, 2026
598cdc3
merge cowork/output-integration into cowork/landing-fixes-3
Winterrks Oct 19, 2026
221b33e
Cowork N3/N4 review fold: lost is terminal at the set (repository and…
Winterrks Oct 19, 2026
f958567
cowork native: guest boots at hello with their end proof, the store v…
Winterrks Oct 19, 2026
18a038a
Cowork N4 peer-inbox side (gated): the drain holds, acks and commits …
Winterrks Oct 19, 2026
29b54df
cowork libkrun: SH2 part 1, the confined virtio-fs server core (patch…
Winterrks Oct 19, 2026
de5f221
Cowork N4 projector: system/host_input_committed is shown as a peer_m…
Winterrks Oct 19, 2026
417087d
cowork native: the provisioning port in the door's shape (shared dire…
Winterrks Oct 19, 2026
2bb86cd
cowork volumes: the exclusive restore claim, a read-only identity-pin…
Winterrks Oct 19, 2026
205b6cd
merge cowork/n2-integration-b2 and the integration tip into cowork/n2…
Winterrks Oct 19, 2026
5cd7c29
cowork native: the outputs preparer also makes missing shared roots; …
Winterrks Oct 19, 2026
4e8cfc1
Merge pull request #92 from yanlingLabs/cowork/n2-extensions-design
Winterrks Oct 19, 2026
38e799f
Cowork N4 review fold: the held_inputs tap and reconcile need a held-…
Winterrks Oct 19, 2026
89ee808
Cowork guest: the file channel's guest side (FC3), gated on file-chan…
Winterrks Oct 19, 2026
3c93a23
Merge cowork/n2-contract-v3 into cowork/n2-guest-file-channel
Winterrks Oct 19, 2026
a8f6987
Cowork N4: only permanent commit refusals count toward ending a recei…
Winterrks Oct 19, 2026
c5b716f
Merge pull request #87 from yanlingLabs/cowork/n2-integration-b1
Winterrks Oct 19, 2026
15f307c
Guest image build: verify the LLVM toolchain signature over the decom…
Winterrks Oct 19, 2026
6f4c718
Merge pull request #113 from yanlingLabs/cowork/landing-fixes-3
Winterrks Oct 19, 2026
2e8c5a7
cowork native: fold the #121 review LOWs - resume_store_missing marks…
Winterrks Oct 19, 2026
8aa0767
Guest image build: match the signing key from VALIDSIG field 0 and th…
Winterrks Oct 19, 2026
fab5078
Merge remote-tracking branch 'origin/cowork/peer-inbox-held-input' in…
Winterrks Oct 19, 2026
3cca7ff
cowork native b4: the peer-inbox composition seam (held-input gate, d…
Winterrks Oct 19, 2026
dfc057d
FC3 review fold: parents are fchmod'd and read back as 0711 under PID…
Winterrks Oct 19, 2026
197ef5a
Merge pull request #99 from yanlingLabs/cowork/n2-integration-b2
Winterrks Oct 19, 2026
a82854b
cowork libkrun: SH2 part 3, the confined fs device, pin budget, ABI a…
Winterrks Oct 19, 2026
60f997e
Cowork guest: the bootstrap fault vocabulary carries the four contrac…
Winterrks Oct 19, 2026
ca55d8b
cowork libkrun: SH2 part 2, R15 git rules and R16 quarantine (patch 0…
Winterrks Oct 19, 2026
120219a
Restack the guarded fs device onto the confined server's git rules: p…
Winterrks Oct 20, 2026
0e0d699
FC3: the share-mount test also asserts nothing was created under .win…
Winterrks Oct 20, 2026
ecbb81d
Guarded fs device: a chain whose writable area cannot hold the 16-byt…
Winterrks Oct 20, 2026
d98ec1a
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
0f7efe3
Guest image re-pin: SDK main f5612e46 (#42/#43/#44), source pins reco…
Winterrks Oct 20, 2026
548d546
usage pin: verify-fd-receiver-compiled runs only compiled-binary prob…
Winterrks Oct 20, 2026
6d69bb5
Merge pull request #123 from yanlingLabs/cowork/image-toolchain-sig
Winterrks Oct 20, 2026
6d040f8
cowork libkrun: 0024 review follow-ups (bounded directory streams, no…
Winterrks Oct 20, 2026
042a02b
Guest image re-pin: point at the v0.0.54 tag commit 7511bbae (guest s…
Winterrks Oct 20, 2026
719d2b6
Cowork guest artifact: re-pin guest_bootstrap.py after the contract r…
Winterrks Oct 20, 2026
c04b478
Merge pull request #128 from yanlingLabs/cowork/fix-usage-inert-fd-re…
Winterrks Oct 20, 2026
bafa7b3
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
21bcd72
Merge remote-tracking branch 'origin/cowork/n2-integration-b3' into c…
Winterrks Oct 20, 2026
ea61685
Guest image re-pin: workflow AGENT_SDK_HEAD at the v0.0.54 commit; do…
Winterrks Oct 20, 2026
e4cad43
cowork: the host-env graph loads lazily, inside the activation seam, …
Winterrks Oct 20, 2026
3e4eaf1
cowork: a compiled-binary probe step proves the lazy host-env require…
Winterrks Oct 20, 2026
ff021ba
Merge cowork/n2-sh2-virtiofs (6d040f830) into cowork/n2-sh2-git: rest…
Winterrks Oct 20, 2026
00ccb00
Restack the guarded fs device onto part 2 at ff021baf (the revised co…
Winterrks Oct 20, 2026
79f70fa
Merge pull request #115 from yanlingLabs/cowork/n2-contract-v3
Winterrks Oct 20, 2026
60ec262
Merge pull request #129 from yanlingLabs/cowork/lazy-host-env
Winterrks Oct 20, 2026
5c82013
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
6a7e93f
Merge remote-tracking branch 'origin/cowork/n2-integration-b3' into c…
Winterrks Oct 20, 2026
ce71856
Merge commit '60ec262db93fcd7edfb461f15ca172e8112a53c5' into HEAD
Winterrks Oct 20, 2026
f3ab9b9
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
8477318
Merge commit 'ce71856d916e3d5b8382882137c618472a11ccea' into HEAD
Winterrks Oct 20, 2026
9d614af
Merge commit '847731897dffd8100360172c78df48a47f9d9c96' into HEAD
Winterrks Oct 20, 2026
31c96ee
Merge remote-tracking branch 'origin/cowork/n2-guest-file-channel' in…
Winterrks Oct 20, 2026
036c2ac
Merge commit '9d614af7ae664d7e430743a93b88cf70d3ffc0bb' into HEAD
Winterrks Oct 20, 2026
73fd531
Merge commit '036c2ac9986b110a59599e0f03cee344c012831c' into HEAD
Winterrks Oct 20, 2026
e17c138
Merge commit '73fd531fd79bb6276578579e19eb0968937f7801' into HEAD
Winterrks Oct 20, 2026
f0290de
cowork libkrun: 0025 follow-up, symlink targets of protected names
Winterrks Oct 20, 2026
1662a2b
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
5dd60c5
Merge remote-tracking branch 'origin/cowork/n2-sh2-virtiofs' into cow…
Winterrks Oct 20, 2026
d4c9369
Restack the guarded fs device onto part 2 at 5dd60c54 (the symlink-ta…
Winterrks Oct 20, 2026
559fd33
Merge pull request #111 from yanlingLabs/cowork/session-door-n2-shares
Winterrks Oct 20, 2026
408cf39
Merge pull request #114 from yanlingLabs/cowork/session-door-n1-schema
Winterrks Oct 20, 2026
ed4da48
Merge pull request #116 from yanlingLabs/cowork/session-door-d4-fixes
Winterrks Oct 20, 2026
02cc000
Merge pull request #97 from yanlingLabs/cowork/content-out
Winterrks Oct 20, 2026
bfadded
Merge pull request #122 from yanlingLabs/cowork/n2-guest-file-channel
Winterrks Oct 20, 2026
2ab22ab
Merge pull request #118 from yanlingLabs/cowork/session-door-n34
Winterrks Oct 20, 2026
f5b431f
tests: the whole-repo source-scan files get a 30 s default timeout (a…
Winterrks Oct 20, 2026
1ecee8d
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
ba8f3f3
Merge remote-tracking branch 'origin/cowork/n2-integration-b3' into c…
Winterrks Oct 20, 2026
d2f928c
Merge pull request #127 from yanlingLabs/cowork/image-repin
Winterrks Oct 20, 2026
a32a130
Merge pull request #131 from yanlingLabs/cowork/anti-wiring-timeouts
Winterrks Oct 20, 2026
1b2b5fd
Guest image build 3: a stale pin exits 3 UNPINNED with every digest p…
Winterrks Oct 20, 2026
a9bb123
Merge pull request #133 from yanlingLabs/cowork/image-pin3
Winterrks Oct 20, 2026
ef1155e
Guest image pins from build 3: lock signers normalised to pinned fing…
Winterrks Oct 20, 2026
e8d6717
Kernel build: file, debug and macro prefix maps for the work folder i…
Winterrks Oct 20, 2026
f4cd12f
Image build: the second kernel is built under a different work path a…
Winterrks Oct 20, 2026
35e547f
test_native_build: a synthetic runner path the hygiene scan allows
Winterrks Oct 20, 2026
b63b663
tests: the live embedded floor fixture activates storage on the engin…
Winterrks Oct 20, 2026
d5d3b09
test_native_build: reach sibling modules by an explicit sys.path inse…
Winterrks Oct 20, 2026
3d56627
Merge pull request #119 from yanlingLabs/cowork/peer-inbox-held-input
Winterrks Oct 20, 2026
e35f251
Merge pull request #121 from yanlingLabs/cowork/n2-integration-b3
Winterrks Oct 20, 2026
e4648c7
Merge pull request #135 from yanlingLabs/cowork/image-pin4
Winterrks Oct 20, 2026
7714976
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 20, 2026
466a271
Merge pull request #124 from yanlingLabs/cowork/n2-integration-b4
Winterrks Oct 20, 2026
7811367
Merge pull request #136 from yanlingLabs/cowork/embedded-floor-deflake
Winterrks Oct 20, 2026
80c37ec
Guest image: pin the kernel Image and vmlinux from build 4 (two work …
Winterrks Oct 24, 2026
e2ccbe2
Cowork guest SH6: the guest side of host-backed shares (helper share …
Winterrks Oct 24, 2026
b006249
Merge pull request #137 from yanlingLabs/cowork/image-pin5
Winterrks Oct 24, 2026
0c61494
Cowork guest SH6: native and Linux-only tests of the share step, 43 g…
Winterrks Oct 24, 2026
c9cbacf
Merge pull request #120 from yanlingLabs/cowork/n2-sh2-virtiofs
Winterrks Oct 24, 2026
641d260
Merge cowork/output-integration into cowork/n2-sh2-git
Winterrks Oct 24, 2026
91ce09d
Merge pull request #126 from yanlingLabs/cowork/n2-sh2-git
Winterrks Oct 24, 2026
6ce623d
Merge cowork/output-integration into cowork/n2-sh2-device
Winterrks Oct 24, 2026
3953339
Merge pull request #125 from yanlingLabs/cowork/n2-sh2-device
Winterrks Oct 24, 2026
9930539
cowork guest: PID 1 makes the plan view /workspace/plan/<sid>/<epoch>…
Winterrks Oct 24, 2026
07640a8
cowork guest: the plan view belongs to the conversation's tool uid al…
Winterrks Oct 24, 2026
cecb401
cowork guest: review folds for the plan view
Winterrks Oct 24, 2026
e1f7155
cowork image: fixed environment gitconfig, guest source re-pins, SDK …
Winterrks Oct 24, 2026
c5ddf77
cowork image: SDK pin to 52f275f0 (#52, SH6b, on top of #49)
Winterrks Oct 24, 2026
19fe8f8
Cowork guest SH6 review fold: the share step mounts through the check…
Winterrks Oct 24, 2026
5654174
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 24, 2026
50f7993
wip: plan view lows (not final)
Winterrks Oct 24, 2026
98e33ca
cowork guest: fix the two Linux-only CI failures of the plan view
Winterrks Oct 24, 2026
b1bedbe
merge #138 CI fixes
Winterrks Oct 24, 2026
fb755f3
Cowork guest SH6: restore the Linux test driver's mountinfo and umoun…
Winterrks Oct 24, 2026
90a8e78
cowork image: SDK pin to ec91fe06 (#50 cold-resume owner patch, on to…
Winterrks Oct 24, 2026
18e1d22
Merge pull request #138 from yanlingLabs/cowork/plan-view-guest
Winterrks Oct 24, 2026
65ca88e
Merge cowork/output-integration into cowork/plan-view-lows
Winterrks Oct 24, 2026
5f82096
Cowork guest SH6 second fold: the root step fails rather than skips, …
Winterrks Oct 24, 2026
3410cba
Merge pull request #140 from yanlingLabs/cowork/plan-view-lows
Winterrks Oct 24, 2026
66b8ea9
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 24, 2026
db130d5
Merge pull request #139 from yanlingLabs/cowork/n2-sh6-guest-shares
Winterrks Oct 24, 2026
b8f5cae
Cowork image build 5 prep: plan-directory mode read back from the des…
Winterrks Oct 24, 2026
c0975e0
Cowork image build 5 prep: the init and relay binary pins may be null…
Winterrks Oct 24, 2026
4f6cf95
Cowork image build 5 prep, review folds: data-root mode read back, pi…
Winterrks Oct 24, 2026
8f38426
Merge pull request #141 from yanlingLabs/cowork/image-build5-prep
Winterrks Oct 24, 2026
64b2b63
Cowork guest image build 5 pins: expectedArtifact, the owner library …
Winterrks Oct 25, 2026
1b1664a
Cowork image workflow: the trigger moves to the new branch name cowor…
Winterrks Oct 25, 2026
cfd8039
Merge pull request #142 from yanlingLabs/cowork/image-build5-pins
Winterrks Oct 25, 2026
ae303c0
Cowork docs pass: release.ts needs COWORK_NATIVE=omit or both libkrun…
Winterrks Oct 25, 2026
b0c15c9
Cowork docs: guest image build 6 confirmed the pinned image reproduci…
Winterrks Oct 25, 2026
430cb89
Merge pull request #143 from yanlingLabs/cowork/docs-pass
Winterrks Oct 25, 2026
37f7988
Merge origin/main into cowork/landing-2 (second Cowork landing)
Winterrks Oct 25, 2026
55afc54
docs: name the libkrun patch queue without its path, so its anti-wiri…
Winterrks Oct 25, 2026
5e94918
Merge pull request #145 from yanlingLabs/cowork/docs-libkrun-name
Winterrks Oct 25, 2026
c0c8843
Merge remote-tracking branch 'origin/cowork/output-integration' into …
Winterrks Oct 25, 2026
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
12 changes: 11 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,16 @@ jobs:
- name: verify:runtime-state
run: bun run verify:runtime-state

# N2 S7B: the Cowork native pair's packaging gate. Builds the real launcher (swift build, scratch path), embeds it with a stand-in worker into a
# scratch bundle (ad hoc), accepts it and proves seven refusals. Never runs either binary, never signs with a real identity.
- name: verify:cowork-native
run: bun run verify:cowork-native

# N2 S7B: the Cowork channel's receiver thread must start in the COMPILED daemon (a third compile:core entrypoint). Compiles winter-core and runs a temp copy's
# probe on a socketpair; touches no home, Keychain, daemon or launcher.
- name: verify:fd-receiver
run: bun run verify:fd-receiver

# WS-23 (fix round 1, minor 6): the vendored ant, pinned and checksum-verified by fetch-ant
# itself, so verify:runtimes exercises ant's bundle rung and its record's SHA against the pin
# rather than skipping them.
Expand Down Expand Up @@ -457,7 +467,7 @@ jobs:
python3 -I -B -c "
import json
d = json.load(open('$RUNNER_TEMP/prepare.json'))
assert d['fullSourceDiffSha256'] == '3826aa68ee08b23ed046f8ec5a8df7f6271969747364dd63b0bd12f27013ec01', d
assert d['fullSourceDiffSha256'] == '7ec7dd847bc09373d02ffe23894ca9f6ddebf2c992f8dbd2f251127823be5f24', d
print('composed hash ok', d['fullSourceDiffSha256'])"

- name: Guard tests (including the composition test)
Expand Down
16 changes: 14 additions & 2 deletions .github/workflows/cowork-guest-boot.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
name: Cowork guest boot (N2 S5, unprivileged)
# Source-only checks of the guest's PID 1, relay and bootstrap helper, and of the artifact scripts and kernel pins.
# No root, no mount, no loop device, no container, no VM, no package installation, no network. The ext4 tools used are the
# ones already on the runner, against regular files in a temporary directory.
# No container, no VM, no package installation, no network. The ext4 tools used are the ones already on the runner, against regular
# files in a temporary directory. Two steps run as root: the plan view's identity test (it needs to become a tool uid), and SH6's real mounts,
# each test in a private mount namespace below a temporary directory; this runner has no virtio-fs device, so the live virtio-fs mount is gate G7's.
on:
workflow_dispatch:
pull_request:
Expand All @@ -28,6 +29,17 @@ jobs:
run: python3 -I -S -B -m unittest discover -s apple/Cowork/WinterCoworkGuest/bootstrap -p 'test_*.py' -v
- name: "Native C modules, relay process, state machine and source hygiene (sanitizers)"
run: python3 -I -S -B -m unittest discover -s apple/Cowork/WinterCoworkGuest/tests -p 'test_*.py' -v
- name: "Plan view identities, as root (a sibling conversation's tool uid is refused for real)"
# The one test that changes identity: it makes the plan directories for tool uids 41001 and 41002 and then lists, reads, writes and creates as each of them.
# sudo is already on the runner (nothing is installed); the test is marked skipped, not passed, when it is not root.
env:
WG_REQUIRE_ROOT: "1"
run: sudo -E env "PATH=$PATH" python3 -I -S -B -m unittest discover -s apple/Cowork/WinterCoworkGuest/tests -p 'test_filechannel.py' -k sibling -v
- name: "Real mounts as root, each in a private mount namespace (SH6: the whole share step on tmpfs, ext4 with dax=never, the refused virtio-fs mount)"
# WG_REQUIRE_REALMOUNT=1: a realmount test that cannot run here fails instead of skipping
run: |
sudo -E env "PATH=$PATH" WG_REQUIRE_REALMOUNT=1 python3 -I -S -B -m unittest discover -s apple/Cowork/WinterCoworkGuest/tests -p 'test_pid1_linux.py' -k realmount -v
sudo -E env "PATH=$PATH" WG_REQUIRE_REALMOUNT=1 python3 -I -S -B -m unittest discover -s apple/Cowork/WinterCoworkGuest/tests -p 'test_mutants.py' -k realmount -v
- name: "Artifact scripts and kernel pins"
run: |
python3 -I -S -B -m unittest discover -s scripts/cowork-guest-artifact -p 'test_*.py' -v
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/cowork-guest-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ name: cowork-guest-image-build
# The first steps refuse unless REVIEWED_HEAD is an ancestor of the pushed commit and the whole diff is that one line.
on:
push:
branches: [cowork/guest-image-build]
branches: [cowork/guest-image-build-6]
permissions:
contents: read
env:
REVIEWED_HEAD: '0000000000000000000000000000000000000000'
AGENT_SDK_HEAD: '7e71929d0231be2d77645bfa47ee2b550f3add22'
AGENT_SDK_HEAD: 'ec91fe06719d76e99bcdbdae8a6daaf690dfeb50'
BUILDER_HEAD: '180d3effd7ddbb9406aeea0912f76c78ef20cf75'
BUN_ARCHIVE_URL: 'https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-aarch64.zip'
BUN_ARCHIVE_SHA256: 'a27ffb63a8310375836e0d6f668ae17fa8d8d18b88c37c821c65331973a19a3b'
Expand All @@ -35,7 +35,7 @@ env:
LLVM_KEY_SHA256: 'dc0ffd470f01a27a19fad7a243cf85cf79f063d60b3a4c75090b24d9bdc6e2c8'
jobs:
build:
if: github.repository == 'yanlingLabs/winter' && github.event_name == 'push' && github.ref == 'refs/heads/cowork/guest-image-build' && github.event.created == true && github.run_attempt == '1'
if: github.repository == 'yanlingLabs/winter' && github.event_name == 'push' && github.ref == 'refs/heads/cowork/guest-image-build-6' && github.event.created == true && github.run_attempt == '1'
runs-on: ubuntu-24.04-arm
timeout-minutes: 210
steps:
Expand Down Expand Up @@ -117,15 +117,17 @@ jobs:
run: |
set -euo pipefail
pnpm install --frozen-lockfile --ignore-scripts
- name: Build the pinned kernel twice at the same paths
- name: Build the pinned kernel twice, under two different work paths that must give identical bytes
shell: bash
run: |
set -euo pipefail
kernel_work="$IMAGE_WORK/kernel-work"
kernel_work="$RUNNER_TEMP/winter-kernel-work"
kernel_work_b="$RUNNER_TEMP/winter-kernel-work-b"
test "$kernel_work" != "$kernel_work_b"
python3 -I -S -B scripts/cowork-guest-artifact/kernel/native_build.py --downloads "$IMAGE_WORK/kernel-downloads" --work "$kernel_work" --out "$IMAGE_WORK/kernel-1"
rm -rf "$kernel_work"
python3 -I -S -B scripts/cowork-guest-artifact/kernel/native_build.py --downloads "$IMAGE_WORK/kernel-downloads" --work "$kernel_work" --out "$IMAGE_WORK/kernel-2"
rm -rf "$kernel_work"
python3 -I -S -B scripts/cowork-guest-artifact/kernel/native_build.py --downloads "$IMAGE_WORK/kernel-downloads" --work "$kernel_work_b" --out "$IMAGE_WORK/kernel-2"
rm -rf "$kernel_work_b"
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: guest-kernel-${{ github.run_id }}
Expand Down
8 changes: 4 additions & 4 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Guidance for Claude Code (claude.ai/code) when working in this repository. This

Winter is a macOS-native AI assistant: a TypeScript/Bun daemon (`winter-core`) plus a native Swift menu-bar app. They speak JSON-RPC 2.0 over NDJSON on a Unix socket (`<WINTER_HOME>/run/core.sock`; default home `~/.winter`). The daemon is the single source of truth; every client — CLI, Mac app, phone — is a view over its event stream.

**The daemon runs no agent loop of its own.** Every session is a runtime child driven through the router (`@yanlinglabs/winter-runtime-sdk`) on the Winter agent runtime — the only leg; every model runs on it, Claude included. Code sessions spawn the `winter` binary; chat and dispatch run it EMBEDDED in `winter-core`, one Bun Worker per session. Session modes are `code`, `dispatch`, `chat`. **Cowork is not an implemented session mode** — the protocol names it (`SESSION_MODES`) but `session.create` refuses it for every role (`unsupported_topology`) and no runtime-facing type can hold it; see [docs/cowork-status.md](docs/cowork-status.md). The daemon owns everything around the child: IPC, event-sourced session storage, settings, approvals, the capability tools it hands the child over MCP, the hooks, and the SDK-message→`SessionEvent` projector.
**The daemon runs no agent loop of its own.** Every session is a runtime child driven through the router (`@yanlinglabs/winter-runtime-sdk`) on the Winter agent runtime — the only leg; every model runs on it, Claude included. Code sessions spawn the `winter` binary; chat and dispatch run it EMBEDDED in `winter-core`, one Bun Worker per session. Session modes are `code`, `dispatch`, `chat`. **Cowork is not an implemented session mode** — the protocol names it (`SESSION_MODES`) but `session.create` refuses it for every role (`unsupported_topology`) and no runtime-facing type can hold it; its native VM/guest source is inert and has never booted; see [docs/cowork-status.md](docs/cowork-status.md). The daemon owns everything around the child: IPC, event-sourced session storage, settings, approvals, the capability tools it hands the child over MCP, the hooks, and the SDK-message→`SessionEvent` projector.

## Commands

Expand Down Expand Up @@ -57,7 +57,7 @@ Plain links, not `@` imports — read the file whose area you are about to touch
| [providers-and-credentials.md](docs/claude/providers-and-credentials.md) | Before touching a Keychain slot, `credential.*`/`provider.*` doors, the host-credential broker, the boot Keychain passes or Anthropic/Console sign-in. |
| [internal-jobs.md](docs/claude/internal-jobs.md) | Before touching titles, the bash safety reviewer, the dreamer or the session cleaner — model/effort/credential resolution and the role problems. |
| [protocol-and-remote.md](docs/claude/protocol-and-remote.md) | Before changing a `SessionEvent` variant or field (the 7-step checklist), adding an RPC method, or touching what a remote/phone client sees (allowlists, history, transients, thinking pill, phone mirror). |
| [settings-and-migrations.md](docs/claude/settings-and-migrations.md) | Before adding a setting (live reload, the one-reader rule) or touching the legacy `~/.norma` home or project migration. |
| [settings-and-migrations.md](docs/claude/settings-and-migrations.md) | Before adding a setting (live reload, the one-reader rule), touching the legacy `~/.norma` home or project migration, or bumping the runtime-state schema (currently v21). |
| [runtime-home.md](docs/claude/runtime-home.md) | Before touching `<home>/sdk`, run folders, MCP/settings scopes and trust, Migration C, saved answers or the plugin format. |
| [tool-surface.md](docs/claude/tool-surface.md) | Before changing what a model can call: capability servers and plain names, deferral, chat/dispatch allowed lists, web tools, hooks, read/write fences, sandbox escapes, saved allow rules, skills. |
| [dispatch-and-messaging.md](docs/claude/dispatch-and-messaging.md) | Before touching mid-turn pushes (the fold), turn pairing, `SpawnSession`/children, `SendMessage`/`ListAgents`/`TaskStop`, `ListSessions`, or the Dispatch pill's command mode and terminal. |
Expand All @@ -69,8 +69,8 @@ Plain links, not `@` imports — read the file whose area you are about to touch
| [headless.md](docs/claude/headless.md) | Before touching the `headless` backend, the Winter Headless helper, its local-network rules or the Chromium embed layout. |
| [usage.md](docs/claude/usage.md) | Before touching usage and cost tracking: `packages/core/src/usage/`, the projector's `onTurnUsage`, `usage.*`, `settings.usage`, reading the user's Codex/Claude Code/Antigravity/OpenCode usage or plans, `apple/Winter/Sources/Usage/`. |
| [testing.md](docs/claude/testing.md) | Before running or writing tests, a verify gate, the live computer-use suite, or anything reading daemon logs/temp dirs. |
| [release.md](docs/claude/release.md) | Before bumping a version, writing release notes or cutting a release. |
| [cowork.md](docs/claude/cowork.md) | Before touching `packages/core/src/cowork/**`, `packages/protocol/src/cowork.ts`, `apple/Cowork/**`, host-storage-fence or home-fence cowork roots, `refreshForStorage`, or the `workspace.*` / `project.*` methods and events. |
| [release.md](docs/claude/release.md) | Before bumping a version, writing release notes or cutting a release — including the Cowork native-pair choice (`COWORK_NATIVE=omit` or both libkrun inputs) and a schema bump's rollback line. |
| [cowork.md](docs/claude/cowork.md) | Before touching `packages/core/src/cowork/**`, `packages/protocol/src/cowork.ts`, `apple/Cowork/**`, `scripts/cowork-guest-artifact/**`, host-storage-fence or home-fence cowork roots, `refreshForStorage`, or the `workspace.*` / `project.*` methods and events. |

Other references: `winter-vs-cc-tools.md` (repo root, the live tool comparison with Claude Code), `apple/ComputerUse/PROTOCOL.md` (the helper's wire contract), `apple/ComputerUse/WinterBrowserHost/PROTOCOL.md` (Winter for Chrome's).

Expand Down
Loading
Loading