Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
460 commits
Select commit Hold shift + click to select a range
6ab7a90
Check actual recipient watch against ordinary committed appends
trissim Oct 21, 2026
e45818b
Merge remote-tracking branch 'origin/fix/p412-file-bus-filebus' into …
trissim Oct 21, 2026
fcf666e
refactor(bus): read goal directives and order evidence from bus records
trissim Oct 21, 2026
f7ad315
Keep history identities intact until installation acceptance
trissim Oct 21, 2026
a2cf1f7
Merge remote-tracking branch 'origin/main' into feat/p419-bus-history…
trissim Oct 21, 2026
2881c9d
Own schema installation in TableSchema and migrate fresh bus bootstrap
trissim Oct 21, 2026
1f8ebd9
Merge remote-tracking branch 'origin/refactor/p424-bus-history-seq' i…
trissim Oct 21, 2026
4b89a74
Merge remote-tracking branch 'origin/main' into refactor/p424-bus-his…
trissim Oct 21, 2026
aee5ea7
Merge commit 'c62cfe5146a77279f1f4d8b8a1259148cd693b9e' into refactor…
trissim Oct 21, 2026
f0afef6
Commit participant registrations before ordinary bus publication
trissim Oct 21, 2026
6d6b13d
refactor(bus): read standby review from frozen source projections
trissim Oct 21, 2026
2b69d29
Merge commit 'f0afef67f136577e111d1b76422a0dde9e342969' into fix/p412…
trissim Oct 21, 2026
9625ce5
Merge remote-tracking branch 'origin/refactor/p424-bus-history-seq' i…
trissim Oct 21, 2026
e3ab2ae
Merge remote-tracking branch 'origin/fix/p412-file-bus-filebus' into …
trissim Oct 21, 2026
a8e2713
refactor(bus): delete obsolete file-index and checkpoint cursor tests
trissim Oct 21, 2026
bd35068
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
3326279
Keep watch qualification on shared bus builders without runtime UI im…
trissim Oct 21, 2026
023f7fa
Restart accepted runtime owners even when input retirement fails
trissim Oct 21, 2026
19b1655
Merge remote-tracking branch 'origin/main' into feat/p419-bus-history…
trissim Oct 21, 2026
ff77c7f
Merge remote-tracking branch 'origin/main' into refactor/p426-wake-de…
trissim Oct 21, 2026
a4e56a2
Merge remote-tracking branch 'origin/refactor/p424-bus-history-seq' i…
trissim Oct 21, 2026
9f3c43c
Merge remote-tracking branch 'origin/fix/p412-file-bus-filebus' into …
trissim Oct 21, 2026
bc92345
Delete obsolete route-index preparation from observation
trissim Oct 21, 2026
038c552
Merge remote-tracking branch 'origin/refactor/p424-bus-history-seq' i…
trissim Oct 21, 2026
848f5ae
refactor(ui): delete obsolete route-index preparation state
trissim Oct 21, 2026
5689f3b
Merge commit 'e3ab2aedd' into fix/p412-file-bus-filebus
trissim Oct 21, 2026
439438b
Merge remote-tracking branch 'origin/main' into feat/p415-watched-bus
trissim Oct 21, 2026
1b24d56
Merge branch 'b2440' into claude-ai/bus-batch
claude Oct 21, 2026
2b910d8
Merge branch 'b2448' into claude-ai/bus-batch
claude Oct 21, 2026
d59475d
Merge branch 'b2500' into claude-ai/bus-batch
claude Oct 21, 2026
1e2885d
Merge D (#2459) into the bus batch: both import sets are used
claude Oct 21, 2026
04de5bf
Merge E (#2466) into the bus batch
claude Oct 21, 2026
1d5078e
Two blank lines before ReadValue
claude Oct 21, 2026
8edbfd0
Merge remote-tracking branch 'origin/main' into feat/p415-watched-bus
trissim Oct 21, 2026
f0bff35
B2: migrate native bootstrap and retained goal readers through their …
trissim Oct 21, 2026
fca17bd
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
77d0c4b
Merge remote-tracking branch 'origin/main' into claude-ai/bus-batch
trissim Oct 21, 2026
e8f752f
Merge remote-tracking branch 'origin/pr/2466' into claude-ai/bus-batch
trissim Oct 21, 2026
10d60fc
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
38d6880
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
c09c5c3
Delete the unproduced human initial-unknown error
trissim Oct 21, 2026
7d12e90
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
7fede23
refactor(bus): use sequence owner for goal creation and fixture reads
trissim Oct 21, 2026
466911d
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
401ba04
refactor(bus): delete file log and migrate its remaining C consumers
trissim Oct 21, 2026
914a87f
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
8ab99d7
Migrate installer file declarations and native context fixtures
trissim Oct 21, 2026
ac49905
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
f70aa99
Expose watcher close capability and migrate scratch tool setup
trissim Oct 21, 2026
afac4f8
Exercise native guard cases through their declared bootstrap
trissim Oct 21, 2026
8981955
Isolate schema-report CLI from the live published route
trissim Oct 21, 2026
89860e7
Read retired context certificates inside the one-shot carry
trissim Oct 21, 2026
64f41cb
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
080b58e
Remove retired candidate cleanup and use ordinary publication in shar…
trissim Oct 21, 2026
401f7fd
refactor(export): consume public messages without the file-bus decoder
trissim Oct 21, 2026
25dcbd3
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
c84e85c
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
558d4ea
Merge main into the virtual bus batch
trissim Oct 21, 2026
4ca913f
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into batch-…
trissim Oct 21, 2026
30d1aaf
fix(registry): derive private-state detection from the complete schem…
trissim Oct 21, 2026
bdb3b2a
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
5047ad7
Read native answer references through guard-bound Bus snapshots
trissim Oct 21, 2026
15d0f93
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
3074e47
Merge remote-tracking branch 'origin/main' into refactor/p424-bus-his…
trissim Oct 21, 2026
856c99f
Exercise read evidence through Bus snapshots and owned capture APIs
trissim Oct 21, 2026
fbab702
refactor(bus): delete legacy wire records and duplicate delivery atte…
trissim Oct 21, 2026
713003a
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
27f2f4f
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
db932a9
Qualify context carry against the retired plain-text certificate
trissim Oct 21, 2026
beda01f
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
d1aba92
Own native receipt facts and migrate guard-bound delivery readers
trissim Oct 21, 2026
6f24fb1
Merge remote-tracking branch 'origin/main' into refactor/p424-bus-his…
trissim Oct 21, 2026
acdf429
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
e4ffbca
fix(reads): let viewer roles own unread eligibility and compose tag r…
trissim Oct 21, 2026
2c28eb7
Own native receipt encoding and USER provenance in their existing types
trissim Oct 21, 2026
c6bacf6
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
15732af
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
8f1c6c0
Merge remote-tracking branch 'origin/main' into refactor/p424-bus-his…
trissim Oct 21, 2026
554efba
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
39fdd21
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
06adf2e
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
84f2601
Derive watched bus sources from the view owner and isolate observer c…
trissim Oct 21, 2026
48d2b1b
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
0bb6132
Consume original native authority without retired ACP marker effects
trissim Oct 21, 2026
a40135c
Merge remote-tracking branch 'origin/main' into refactor/p424-bus-his…
trissim Oct 21, 2026
797372b
Invalidate native source coverage after descriptor retirement
trissim Oct 21, 2026
f06884e
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
5fde87a
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
d65a959
Integrate retained P421 requests with current Core owners
trissim Oct 21, 2026
17d9834
fix(bus): preserve admitted snapshot identity and retire obsolete ind…
trissim Oct 21, 2026
8798e6c
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
e1aec8e
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
40b1294
test(bus): use frozen Bus recipients for native channel replies
trissim Oct 21, 2026
7918425
Integrate main goal execution lifetime with owner requests
trissim Oct 21, 2026
630b0b8
Own reference refusal and historical root publication permission
trissim Oct 21, 2026
3949c1a
Own exact committed-input cursor constraints on the owner subtype
trissim Oct 21, 2026
04e978c
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
28ac9f4
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
e1b606f
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
3e78624
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
82913e7
Integrate typed acting assigners and current main with owner request …
trissim Oct 21, 2026
a61cd88
Read native namespace and retained wording from their existing owners
trissim Oct 21, 2026
a8c91dd
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
9b9c031
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 21, 2026
fc90c3e
Merge remote-tracking branch 'origin/main' into fix/p412-file-bus-fil…
trissim Oct 21, 2026
1e55a39
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
33401f5
Derive history carry work and make its full lifecycle repeatable
trissim Oct 21, 2026
de27de7
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
a7000b9
Migrate retained-source journeys off deleted file-bus readers
trissim Oct 21, 2026
ba1cf58
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
c53020b
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 21, 2026
d2576c0
Delete the copied native-tool schema roster from retained-source checks
trissim Oct 21, 2026
a4d241f
Merge remote-tracking branch 'origin/main' into feat/p415-watched-bus
trissim Oct 21, 2026
e5363c4
Own retained table rebuilds and migrate request fixtures
trissim Oct 21, 2026
320b4de
refactor(bus): move final retained and parity readers onto Bus
trissim Oct 21, 2026
a05cb53
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 21, 2026
4759a0e
Keep owner-read failures inside their observation lifetime
trissim Oct 21, 2026
6b9451d
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
a86aace
Merge remote-tracking branch 'origin/main' into feat/p415-watched-bus
trissim Oct 21, 2026
b8318b1
Integrate declaration-owned schema and delete completed carry tests
trissim Oct 21, 2026
1c17ff7
Merge remote-tracking branch 'origin/fix/p447-source-native-preparati…
trissim Oct 21, 2026
43e66ad
Preserve the concrete snapshot subtype at its connection factory
trissim Oct 21, 2026
2ee6f3f
Merge commit 'c220c5b60' into refactor/p424-bus-history-seq
trissim Oct 21, 2026
bcdcd31
refactor(bus): share SQL paging across escalation readers
trissim Oct 21, 2026
75a9001
Inherit read refusal behavior from the awaited-read owner
trissim Oct 21, 2026
996765d
Merge main into the bus batch: finished carry steps deleted, directiv…
claude Oct 21, 2026
835727b
Isolate retained CLI journeys from the published live route
trissim Oct 21, 2026
7481e98
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
ff650b8
Merge commit '996765dae' into feat/p415-watched-bus
trissim Oct 21, 2026
634551e
Use the snapshot factory return type in history carry
trissim Oct 21, 2026
ae35a49
Merge commit '6314491e8' into refactor/p424-bus-history-seq
trissim Oct 21, 2026
25532fa
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into feat/p…
trissim Oct 21, 2026
ee3f875
Read cursor scope and metadata from original registry privacy
trissim Oct 21, 2026
364fe65
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
b51aa4e
Keep cursor scope reads on the original registry snapshot
trissim Oct 21, 2026
d4f87c9
Integrate current main and batch request directive reads
trissim Oct 21, 2026
a541fa3
test(bus): delete retired file-bus heartbeat checks
trissim Oct 21, 2026
c9b2e0d
Declare both original source types in pinned constraint replies
trissim Oct 21, 2026
1cbb243
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 21, 2026
949c113
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 21, 2026
992a5e1
Derive request carry mechanics and preserve copied commander configur…
trissim Oct 21, 2026
1b2101b
Delete obsolete goal and todo dependencies after request migration
trissim Oct 21, 2026
9328bd6
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 21, 2026
34831da
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 22, 2026
321b2de
Factor request persistence and own historical request prefixes
trissim Oct 22, 2026
0e6d7a2
Merge main 844976946 into the bus batch
claude Oct 22, 2026
36cb004
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 22, 2026
fbadb9e
Preserve owner request identity across every parity and verdict caller
trissim Oct 22, 2026
c4bee11
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 22, 2026
14761f8
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 22, 2026
8986da6
Repin the native build inputs the batch changed
claude Oct 22, 2026
3c62299
Merge main d3fcbd662 into the bus batch
claude Oct 22, 2026
306aee0
Keep commander fixture deliveries confined to cited source
trissim Oct 22, 2026
7529af2
Merge remote-tracking branch 'origin/main' into fix/P421-owner-reques…
trissim Oct 22, 2026
d5b9c0a
Copy only the declared plan module into commander fixtures
trissim Oct 22, 2026
f977683
Clarify keyed publication acknowledgement wording
trissim Oct 22, 2026
4b93f07
Sort the imports the batch unsorted (I001 growth in 17 files)
claude Oct 22, 2026
7c44d67
Prepare native fixture schema and rehearse the real predecessor bus
trissim Oct 22, 2026
d657bc5
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 22, 2026
f9521e3
Delete retired file-envelope readers and checkpoint pilots
trissim Oct 22, 2026
2afdaf2
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into fix/p4…
trissim Oct 22, 2026
715d02a
Type bus queries through declared read capabilities
trissim Oct 22, 2026
3c37063
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into integr…
trissim Oct 22, 2026
6b8b166
Keep nominal page cursors and original native scope through readers
trissim Oct 22, 2026
36fd799
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 22, 2026
98b7a83
Declare shared named-target view contracts
trissim Oct 22, 2026
668f6be
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into integr…
trissim Oct 22, 2026
5f7ce84
Require named destinations for inbox and unread operations
trissim Oct 22, 2026
6b533c8
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into refact…
trissim Oct 22, 2026
2c27e7f
Keep reader identities nominal and consume declared deliveries
trissim Oct 22, 2026
51f7a9c
Capture history display facts through their declared contracts
trissim Oct 22, 2026
0e77fa7
Capture registry provenance through its names parent
trissim Oct 22, 2026
c6e7714
Merge remote-tracking branch 'origin/claude-ai/bus-batch' into integr…
trissim Oct 22, 2026
4c55a77
Publish a bus record's public envelope; show awareness in sequence order
claude Oct 22, 2026
f22f909
Move the batch's tests onto the installed SQLite bus
claude Oct 22, 2026
b61acf9
Derive thread activity behavior from presence capabilities
trissim Oct 22, 2026
9574f19
Check caller-relative activity policy across registry aliases
trissim Oct 22, 2026
7259020
Announce new ACP sessions before publishing their updates
trissim Oct 23, 2026
21c13b0
Derive recovery audit execution restriction from its existing owner
trissim Oct 23, 2026
c54f783
Own todo mutation admission in the inherited command algorithm
trissim Oct 23, 2026
1673313
Integrate SQLite bus with current storage and installer ownership
trissim Oct 23, 2026
a1a5039
Merge commit '9574f19c3' into integration/bus-current-main
trissim Oct 23, 2026
a05c229
Merge commit '7259020722d733e51cf04dc33c22c700a463b806' into integrat…
trissim Oct 23, 2026
fcd705f
Merge commit '21c13b06972e60c6fbbb08b6f660219bd221a9d0' into integrat…
trissim Oct 23, 2026
6992d05
Merge commit 'c54f7837d4e787ae2503adfbb0e8e68a80591276' into integrat…
trissim Oct 23, 2026
8509a77
Preserve committed sends when origin completion also fails
trissim Oct 23, 2026
cff415b
Compose coordination capabilities on their existing session owner
trissim Oct 23, 2026
fe7a754
Remove unused recovery facade construction from its capability
trissim Oct 23, 2026
6decb77
Use the existing private bus fixture for selected claim lifetimes
trissim Oct 23, 2026
676e1a5
Resolve commander answer debt once through indexed originals
trissim Oct 23, 2026
fd3f1fd
Rehearse current-format installs with a matching outgoing runtime
trissim Oct 23, 2026
3ee5268
Acquire the pinned package in the native selected-execution check
trissim Oct 23, 2026
7deeebd
Exercise post-cutover installs after converter retirement
trissim Oct 23, 2026
8439845
Honor registry privacy in notification reads and complete native setup
trissim Oct 23, 2026
0994949
Delete slop: builtin channel address is derived from its declared name
trissim Oct 22, 2026
708bf7c
Complete declaration-owned built-in channel address lookup
trissim Oct 23, 2026
c5a4ba0
Carry typed installed-package records through their declaring probe
trissim Oct 23, 2026
ac48da2
Merge commit '843984506c4af48f6cd3dbf686be244a0f921a45' into integrat…
trissim Oct 23, 2026
f65c680
Run the installed-package probe through its canonical declaration
trissim Oct 23, 2026
5cd2e45
Derive coordinator carry from checked registry privacy
trissim Oct 23, 2026
66510aa
Construct package records directly and check canonical probe startup
trissim Oct 23, 2026
d74451e
Merge commit '5cd2e45ee' into integration/bus-current-main
trissim Oct 23, 2026
5544890
Omit pre-rename captures from optional current awareness
trissim Oct 23, 2026
433296d
Key Core wheel caching by its stamped Git commit
trissim Oct 23, 2026
504c7d5
Repair standalone native digest reads and qualify native consumers
trissim Oct 23, 2026
d81363f
Give package records their existing wire-value capability
trissim Oct 23, 2026
9f356f4
Merge commit '504c7d530' into integration/bus-current-main
trissim Oct 23, 2026
a5c7200
Declare history carry marker and archive registry writes
trissim Oct 23, 2026
bef8b51
Point ratchet schema context at the private coordinator owner
trissim Oct 23, 2026
acb2ddd
Delete obsolete schema exemption and use pinned audit imports
trissim Oct 23, 2026
984105a
Own current display references and snapshot field restoration
trissim Oct 23, 2026
453f81f
Record current installer reporting integration and source evidence
trissim Oct 23, 2026
7f0b473
Derive current target views and keep historical factories separate
trissim Oct 23, 2026
7161664
Use registry-owned canonical and alias membership for references
trissim Oct 23, 2026
06055b6
Port independent owner requests onto the current SQL bus and carry li…
trissim Oct 23, 2026
e62b9d2
Prove archive request carry under maintenance and reject missing nati…
trissim Oct 23, 2026
1225696
Checkpoint runtime-owned installer reporting and cleanup lifetime
trissim Oct 23, 2026
bdc2766
Remove duplicate plan fixture setup and honor installer schema ownership
trissim Oct 23, 2026
feafded
Discover bridge sessions from owned endpoints and qualify installed r…
trissim Oct 23, 2026
ca156d2
Retain typed human-send causes and propagate programming failures
trissim Oct 23, 2026
7251da8
Keep exact DM births through publication and read selection
trissim Oct 23, 2026
24ec7d0
Scope running user services to their owning home
trissim Oct 23, 2026
8090ace
Require one explicit destination throughout initial publication
trissim Oct 23, 2026
e8c882c
Include current audit owner corrections
trissim Oct 23, 2026
814b092
Combine independent owner requests with installer lifetime repairs
trissim Oct 23, 2026
dea8aa0
Route order claims to their retained commander birth
trissim Oct 23, 2026
f57f56a
Carry exact thread identities through publication and read boundaries
trissim Oct 23, 2026
2d95a25
Limit native watcher failure delivery to its read and decode contract
trissim Oct 23, 2026
5cd7feb
Exercise native descriptor failure delivery through the real watcher
trissim Oct 23, 2026
77bd95b
Keep carry dependencies while qualifying a distinct incoming revision
trissim Oct 23, 2026
a19a5b9
Freeze claim message identity across recording and publication
trissim Oct 23, 2026
d24908a
Share typed one-field encoding with JSON shape families
trissim Oct 23, 2026
e5aa810
Read claimed originals from committed source and exercise real conten…
trissim Oct 23, 2026
1d10465
Keep claimed references equal to their committed publications
trissim Oct 23, 2026
36df7e4
Keep history decoding and stored-count checks with their owners
trissim Oct 23, 2026
7927eb5
Load carry declarations before classifying retained install roots
trissim Oct 23, 2026
883223e
Validate checkout before selecting install reporting lifetime
trissim Oct 23, 2026
dbba9e2
Keep typed rehearsal through execution and derive installer reports
trissim Oct 23, 2026
7546c03
Unify executable probe declarations and retain committed error ownership
trissim Oct 23, 2026
3bee679
Let conversation observations answer store equality themselves
trissim Oct 23, 2026
a1780f5
Restore shared message activity construction for both indexes
trissim Oct 23, 2026
5f190d7
Construct keyed activity rows from their declared clock fields
trissim Oct 23, 2026
55431d2
Combine reviewed probe and publication ownership cleanup
trissim Oct 23, 2026
7bd42ed
Own coordinator SQL context on the typed row family
trissim Oct 23, 2026
8325507
Make coordinator rows own their shared SQL contract
trissim Oct 23, 2026
bc5e87d
Keep bus append and capability queries with their declared owners
trissim Oct 23, 2026
d890e6c
Give complete bus records append ownership and preserve typed query r…
trissim Oct 23, 2026
fe6db18
Check actual rehearsal rewrites while retained carry steps inspect a …
trissim Oct 23, 2026
5533654
Let schema reconciliation follow history capture with no JSONL
trissim Oct 23, 2026
da50204
Let retained history checks precede schema reconciliation
trissim Oct 23, 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
  •  
  •  
  •  
77 changes: 68 additions & 9 deletions plans/HARNESS-PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,30 @@

Decision (Tristan, 2026-10-21 22:45): the commander fixes the harness it commands with. It works with full authority on this plan only: it makes each change, inspects it with full attention, runs only the tests the change touches, and pushes straight to `main`. Audited against `origin/main` at `39fdfe810`.

## Expanded installer integration, 2026-10-22

Tristan requested the next paired installation include the useful remaining open
work. Core's virtual-bus checkpoint passed the full configured-root rehearsal:
19,182 records, 194 threads, preserved read ledger, 208.38 seconds. That is a
rehearsal result, not an installed checkpoint.

Root owns porting the remaining reporting and bridge-lifetime work from #2556
and #2527 into the current `ChangedInstall` and `PreparedMigration` family.
The old branches' detached migration paths stay deleted. Reports before carry
must execute in the outgoing runtime; reports after accepted carry use the
incoming runtime. Rehearsals publish nothing. The report lifetime includes
target-tree cleanup, so cleanup failure cannot leave a successful terminal post.
Bridge outcomes belong to the actual captured bridge and survive failed exits.

The reused finished checkout is `/home/ts/wt/harness-plan`, branch
`integration/installer-report-lifetime`. Before-source evidence is
`/home/ts/.cache/agent-scratch/root-installer-report-before.json`: NRA parsed
953 production/test/tool modules and retained 5,341 original class declarations;
5,151 project into the conservative family index. The remaining 190 original
declarations stay visible rather than being counted as resolved. No parse
omissions; source evidence does not prove behavior. Implementation and affected
CLI/application qualification remain open.

## Why

On 2026-10-21 the plans Tristan asked for at 18:30 the day before had not landed 28 hours later. Every error pulled the fleet off them, and the errors came from the harness itself:
Expand Down Expand Up @@ -194,15 +218,26 @@ Neither attempt establishes the recorded SelectCurrent diagnosis or a deadlock.
The persistence cause is traced: Toad's `Session` declared SQL directives in
dataclass metadata after Core's column compiler moved to `Annotated`. Fresh
session rows therefore had a NULL `id` while insertion returned SQLite's rowid.
The Toad binding fork owns the complete DB family repair: annotation-derived
session and model-history tables, shared durable schema reconciliation, one
transaction path and surfaced SQLite failures. Eight focused checks passed on
the source checkpoint; final connection-owner and dependency cleanup follows.
The installed user's sessions table already has a valid primary key and no rows;
its model-history table has two rows requiring a one-time schema carry.
That carry uses an explicit SQLite backup and transaction outside the bus-only
installer carry contract. Root owns its execution and paired installation after
the Toad fork's copy proof; the virtual-bus integration is not a prerequisite.
The DB family repair is installed: Core `d9ce9cd95` with Toad `a5c627b95`.
Session and model-history rows share annotation-derived schema and the existing
SQLite connection/transaction owner; SQLite errors propagate. The unused second
connection path, success-only bools and aiosqlite dependency are deleted. The
one-time SQLite carry preserved both model-history rows and the existing sessions;
`/home/ts/.cache/agent-scratch/toad-db-before-install.db` retains the backup.
The accepted transient converter is retired. All 194 registered threads stayed
unchanged, with no owner restarts. Actual installed saved-fork/fresh-DM/reply/tab
return and complete native client-request journeys passed: 2 checks in 54.95 seconds,
recorded in `installer-db-batch-native.txt`. This includes reading the newly
created session's persisted title through the installed DB.

The Toad binding fork separately owns the confirmed new-session ordering defect:
the server reuses load's replay-before-response behavior before the client knows
the new ID. Retained wire records 43–51 in `toad-test-ich92jvs` prove seven new-ID updates
preceded their creation response. The repair belongs to the existing subscription
request family; a fresh subscription announces identity before replay, while load
keeps its required replay-before-response contract. Source implementation and an
actual stdio ordering check are in progress; the passing DB journeys do not cover
this packet-order assertion.

### 2. Commander verbs take a fixed, small time

Expand Down Expand Up @@ -262,3 +297,27 @@ The growth alarm is commander-native phase 7's (`plans/commander-native-plan.md`
- Each change deletes what it replaces in the same commit.
- Never touch a file another plan deletes (2026-10-21: the reverted 047bccc65 added 16 conflicts to #2549).
- Say what is slow or broken the moment it shows, out loud, instead of working around it.


### Installer reporting implementation checkpoint; user pause

Draft #2620 now moves publication into the existing RuntimeProbe/ServiceSender family,
selects the runtime that owns each migration stage, and keeps terminal reporting outside
TargetTree cleanup. RunMode owns rehearsal/live behavior while FieldCodec retains the
single Boolean launcher representation. The outgoing report retains its declared probe
source in memory; the incoming report runs its installed module after source retirement.
Probe commands use runtime home instead of the retired checkout. Existing bridge resume
ownership now covers partial pause failure and decodes a broken socket into the existing
per-bridge failure type.

Latest focused report/cleanup tests pass14/14 (22.44s); the preceding command/bridge batch
passed43/43 before retained-source execution was added. These are source checks. Actual
new installer build/rollback/fresh-root qualification and the paired installed journey
remain open. The earlier package-probe test failure from the main editable environment
is retained in the root evidence. Bridge state discovery still misses custom/default
Claude directories; this is an unresolved installer defect owned by root. The full old
nominal bridge-outcome port is not claimed complete.

Tristan explicitly paused the fleet to reopen Codex after its thread tools retained a
dead MCP address. Preserve current dirty owned checkouts and uncertain inputs. The
existing root handoff contains precise heads, results and remaining integration work.
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,9 @@ include = [
[tool.hatch.version]
path = "src/agent_comms/__init__.py"

[tool.uv]
cache-keys = [{ file = "pyproject.toml" }, { git = { commit = true } }]

[tool.pytest.ini_options]
testpaths = ["tests"]
pythonpath = [".", "src", "tools"]
Expand Down
59 changes: 20 additions & 39 deletions src/agent_comms/acp.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,7 @@
TextContentBlock,
)

from agent_comms.coordination_errors import (
IdentityConflict,
PublicationActivationBlocked,
)
from agent_comms.coordination_errors import IdentityConflict
from agent_comms.coordinator import Coordination

from .acp_extension import (
Expand All @@ -54,6 +51,7 @@
from .comms import Comms, wire
from .coordination_cohort import next_sealed_assignment
from .coordination_database import CoordinationStore
from .cursor_owner import CursorOwner
from .cursor_publication import CursorPublication
from .field_codec import FieldCodec, MalformedRecord
from .image_inputs import prompt_images
Expand All @@ -76,7 +74,6 @@
from .turn_effects import TurnEffects
from .turn_runner import TurnRunner
from .turn_terminal import EndedWithoutResult, TurnInterruption, TurnTerminal
from .wire_log import WireLog

if TYPE_CHECKING:
from .selected_tool_broker import SelectedToolIntent
Expand Down Expand Up @@ -215,15 +212,17 @@ async def _selected_write_request(self, session_id: str, request) -> PromptRespo
from .selected_write_plan import SelectedWritePlans

owner = self.sessions.require(session_id)
root_id = self._private_nk_marker()
controller = self._runtime.controller.get()
if controller is None or (
controller is UNBOUND_CONTROLLER and self.sessions.client is None
):
raise RequestError.invalid_params(
{"reason": "Selected write requires attached ACP controller"}
)
acknowledgement = await Coordination.run_worker(partial(SelectedWritePlans(self._comms, root_id).submit,
scope = await Coordination.run_worker(partial(self.cursors.scope, owner, session_id))
plans = SelectedWritePlans(self._comms, scope.require_live().wire_root_id)
acknowledgement = await Coordination.run_worker(partial(
plans.submit,
owner_name=owner,
source_seq=request.source_seq,
source_message_id=request.source_message_id,
Expand Down Expand Up @@ -321,21 +320,6 @@ async def authenticate(self, method_id: str, **kwargs: Any) -> None:

# ─── Helpers ─────────────────────────────────────────────────────────────

@property
def configured_root_id(self) -> str:
"""The bus root ID the launch pinned; the bus reader checks it against the marker."""
return self._comms.owners.require_private_launch().wire_root_id

def _private_nk_marker(self) -> str:
"""Check that the bus belongs to the configured root before a request runs."""
configured_root_id = self.configured_root_id
with self._comms.bus.log.checked_read() as source:
if source.marker.root_id != configured_root_id:
raise PublicationActivationBlocked(
"private N/K ACP root does not match configuration"
)
return source.marker.root_id

async def _drain_private_nk(self, session_id: str, wire_root_id: str) -> int:
"""Run a selected private wake for this ACP session.

Expand All @@ -350,8 +334,6 @@ async def _drain_private_nk(self, session_id: str, wire_root_id: str) -> int:

launch = self._comms.owners.require_private_launch()
package = launch.native_package
if launch.wire_root_id != wire_root_id:
raise PublicationActivationBlocked("private N/K ACP root does not match its launch")
thread_name = await self.sessions.sync_identity(session_id)
snapshot = await Coordination.run_worker(self._comms.registry.snapshot)
owner = snapshot.require(thread_name)
Expand All @@ -363,11 +345,14 @@ async def _drain_private_nk(self, session_id: str, wire_root_id: str) -> int:
return 0
if not owner.process_identity.runs_here():
raise IdentityConflict("private N/K ACP recipient is not this process owner")
bus = MessageBus(WireLog.path_in(self._comms.root), self._comms.registry, ResponseWrites)
def read_claim():
with bus.log.checked_read() as source:
return source.marker.claimed_after_seq
claimed_after_seq = await Coordination.run_worker(read_claim)
lookup = owner.incarnation.require_recorded().lookup
bus = MessageBus(self._comms.root, self._comms.registry, ResponseWrites)
delivery = self.cursors.delivery(session_id)
async with delivery.reading() as source_reads:
state = await CursorOwner.read_async(
bus, wire_root_id=wire_root_id, owner_name=thread_name, source_reads=source_reads,
)
after_seq = state.covered_seq
store_path = CoordinationStore.path_in(self._comms.root)
# One execution owns this wake's package acquisition: acceptance of new
# originals and the selected launch share it instead of verifying twice.
Expand All @@ -376,34 +361,30 @@ def read_claim():
wire_root_id=wire_root_id,
owner_name=thread_name,
native_package=package,
cursor_delivery=self.cursors.delivery(session_id),
cursor_delivery=delivery,
write_authority=AcpSelectedWriteAuthority(
self, session_id, SelectedWritePlans(self._comms, wire_root_id)
),
**(
{"selected_tool_intent": self._private_selected_tool_intent}
if self._private_selected_tool_intent is not None
else {}
),
selected_tool_intent=self._private_selected_tool_intent,
)
with execution.cursor_delivery.measurements.operation("accept_deliveries"):
await _accept_visible_deliveries(
bus, wire_root_id, store_path, owner.incarnation.lookup, 0,
bus, wire_root_id, store_path, lookup, after_seq,
owner_name=owner.name, acquire_package=execution.validate,
)
if self.inputs.owns_execution(session_id, owner):
# A running turn takes its owner's pending messages as inputs;
# whatever it cannot take wakes this owner once the turn ends.
await DeliveredInput.deliver_pending(
self.inputs, session_id, owner, bus, wire_root_id, claimed_after_seq
self.inputs, session_id, owner, bus, wire_root_id, after_seq
)
await self.cursors.publish(session_id, thread_name)
return 0
def select(store):
with store.session.read():
participant = store.participants.get(owner.incarnation.lookup)
participant = store.participants.get(lookup)
candidate = next_sealed_assignment(
store, participant.lookup, owner.name, after_seq=claimed_after_seq,
store, participant.lookup, owner.name, after_seq=after_seq,
)
if candidate is None:
return False
Expand Down
10 changes: 0 additions & 10 deletions src/agent_comms/acp_extension.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,16 +97,6 @@ class TranscriptChangedUpdate(AgentCommsUpdate):
cursor: TranscriptCursor | None


@dataclass(frozen=True)
class UnknownDeliveryFailure(BackendDeliveryFailure):
wire_root_id: str
wire_seq: int
message_id: str

def present(self, receiver, body: str) -> None:
receiver.delivery_unknown(self, body)


class ClaimBlockedFailure(BackendDeliveryFailure):
def present(self, receiver, body: str) -> None:
receiver.delivery_blocked(self.description, body)
Expand Down
38 changes: 15 additions & 23 deletions src/agent_comms/active_route.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,15 @@
from contextlib import contextmanager
from dataclasses import dataclass
from pathlib import Path
from typing import TYPE_CHECKING, Annotated, ClassVar
from typing import Annotated, ClassVar

from .declared_family import DeclaredFamily
from .errors import RelationViolationError
from .field_codec import FieldCodec, Id128Text, MalformedRecord, PathText
from .field_codec import FieldCodec, MalformedRecord, PathText
from .launch_root import LaunchRoot
from .private_nk_entrypoint import PrivateNkLaunch, RootLaunch

if TYPE_CHECKING:
from .wire_log import WireLog
from .private_path import ObservedPath
from .recorded_bus import RecordedBusIdentity


@dataclass(frozen=True, slots=True)
Expand Down Expand Up @@ -56,7 +55,7 @@ def hold_client_route(self) -> Iterator[None]:
Independent private roots do not participate in default publication.
Refuse a publication in progress rather than park a half-open client.
"""
current_root = CommsRoute.current().root
current_root = RouteFile.read(active_route_path()).launch_root()
if self.root.resolve() == current_root.resolve():
with guard_default_route_write(self.root, blocking=False):
yield
Expand Down Expand Up @@ -99,9 +98,9 @@ def encode(cls, value: object) -> str:
class ActiveRoute(CommsRoute):
"""The default private root; each installation launches its own pinned native package."""
root: Annotated[Path, AbsoluteRoutePathText]
wire_root_id: Annotated[str, Id128Text]
bus_identity: RecordedBusIdentity
# The file format: the writer stamps it and the reader refuses any other before decoding.
version: ClassVar[int] = 2
version: ClassVar[int] = 3
# The CLI command that replaces a file this reader refuses; it registers under this name.
repair_command: ClassVar[str] = "replace-route"

Expand Down Expand Up @@ -139,27 +138,20 @@ def from_record(cls, value: object, path: Path) -> ActiveRoute:
raise MalformedRecord(f"active comms route {path} is invalid: {error}") from error
return route

def wire_log(self) -> WireLog:
from .wire_log import WireLog # the wire log's module imports this one

return WireLog(WireLog.path_in(self.root))

def selects_its_root(self) -> bool:
"""Whether the root still exists and carries the marker this route was published for."""
return self.root.is_dir() and (
self.wire_log().read_metadata_unlocked().root_id == self.wire_root_id)
"""A route selects the database observed when it was published."""
from .bus import Bus

return self.root.is_dir() and self.bus_identity.matches(
ObservedPath.at(Bus.path_in(self.root)))

def observe_root(self) -> Path:
# The writer atomically replaces this marker. Reuse its owner/mode,
# ancestry and protocol decoder, without taking the mutation/durability
# barrier or interpreting registry/history merely to observe identity.
marker = self.wire_log().private_marker_unlocked()
if marker.root_id != self.wire_root_id:
raise RelationViolationError("private route root ID changed")
if not self.selects_its_root():
raise RelationViolationError("route bus was replaced")
return super(ActiveRoute, self).observe_root()

def launch(self) -> PrivateNkLaunch:
return PrivateNkLaunch.installed(self.root, self.wire_root_id)
return RootLaunch.derive(self).require_private()


def resolve_comms_route(root: CommsRoute | Path | str | None = None) -> CommsRoute:
Expand Down
Loading
Loading