Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
296 commits
Select commit Hold shift + click to select a range
1688d07
Merge remote-tracking branch 'origin/main' into codex/c1-replan-integ…
loopx-agent Nov 7, 2026
a6a331a
Reuse outcome ID addresses in progressive first reads
loopx-agent Nov 7, 2026
c45893c
Integrate main bounded context openings with C1 settlement
loopx-agent Nov 7, 2026
1697da2
Integrate stateless progressive reads with the signed C1 owner
loopx-agent Nov 7, 2026
a516479
Keep explicit windows on attached context reads
loopx-agent Nov 7, 2026
61181c4
Integrate verified native claims with one automatic attempt
loopx-agent Nov 7, 2026
83b59e5
Merge commit 'e2371c476805f67903dd3c338a7e2712f577c9cc' into codex/c1…
loopx-agent Nov 7, 2026
e2efaf2
Integrate current main into the C1 work contract
loopx-agent Nov 7, 2026
1469c0a
Bound the C1 replan inspection with same-source readback
loopx-agent Nov 7, 2026
db8917d
Integrate current main for C1 inspection validation
loopx-agent Nov 7, 2026
f352142
Bound host-ready Turn inspection using the shared decision capture
loopx-agent Nov 7, 2026
e36e2f1
Reuse observed Goal narrative in progressive first reads
loopx-agent Nov 7, 2026
54e00ad
Shorten the illustrative Stride authoring example
loopx-agent Nov 7, 2026
363e703
Load frozen CLI probe helpers before the fixture
loopx-agent Nov 7, 2026
f73bf1c
Exercise progressive delivery in signed Todo recovery smoke
loopx-agent Nov 7, 2026
6503dad
Integrate current main for C1 progressive summary validation
loopx-agent Nov 7, 2026
ebecab7
Reuse repeated claim-scope Todo rows in progressive context
loopx-agent Nov 7, 2026
a287ac7
fix(context): bound projection edit transport overhead
loopx-agent Nov 7, 2026
91786ed
Merge current main and preserve complete-contract staged numeric fide…
loopx-agent Nov 7, 2026
6ef40e1
Merge commit 'caf3da0b065693427ee8e04ac86f260314244567' into codex/c1…
loopx-agent Nov 7, 2026
43d9515
Merge current main for explicit caller qualification
loopx-agent Nov 8, 2026
1a798d1
Align complete-contract CLI help and Markdown carrier
loopx-agent Nov 8, 2026
76936fc
Qualify versioned inline CLI contracts and their complete cost
loopx-agent Nov 8, 2026
a8ae9f4
Merge current main before projection owner repair
loopx-agent Nov 8, 2026
d37e041
Remove stale reverse imports from the projection owner
loopx-agent Nov 8, 2026
b998c31
Protect canonical work source fields from optional context
loopx-agent Nov 8, 2026
22c268c
Qualify optional-context isolation and identify live signature readers
loopx-agent Nov 8, 2026
1799f95
Merge latest main and preserve complete-context activation
loopx-agent Nov 8, 2026
69b727f
Migrate differential probe consumers to the complete source contract
loopx-agent Nov 8, 2026
458951e
Fix complete-source failed Session retry callback
loopx-agent Nov 8, 2026
bd87f47
Merge remote-tracking branch 'origin/main' into codex/c1-explicit-cal…
loopx-agent Nov 8, 2026
59fecd5
Merge latest main into C1 and migrate native task preparation
loopx-agent Nov 8, 2026
071a609
Migrate the scheduler route smoke to the complete quota source
loopx-agent Nov 8, 2026
94cd16b
Merge main chat persistence recovery into C1
loopx-agent Nov 8, 2026
32d1ce2
fix(c1): qualify complete quota carriers and section recovery
loopx-agent Nov 8, 2026
7fe1cc1
Merge commit '1075c4cba8' into codex/c1-main-convergence-20261108-1025
loopx-agent Nov 8, 2026
610e2b5
refactor(canary): keep quota observation inventory with its fixture
loopx-agent Nov 8, 2026
8839c46
Merge remote-tracking branch 'origin/main' into codex/c1-main-converg…
loopx-agent Nov 8, 2026
c8b973e
Bind optional Host context to the complete Turn source
loopx-agent Nov 8, 2026
5f23c42
Restore C1 digest inventory and static checks
loopx-agent Nov 8, 2026
87b9325
Preserve saved quota selection through native recovery
loopx-agent Nov 8, 2026
3c181d7
Integrate main UTF-8 fixture and recovery prerequisites into C1
loopx-agent Nov 8, 2026
8179b99
Sync the main chat status owner
loopx-agent Nov 8, 2026
e50355b
Merge remote-tracking branch 'origin/main' into codex/c1-main-after-c…
loopx-agent Nov 8, 2026
0544783
Merge remote-tracking branch 'origin/main' into codex/c1-main-after-c…
loopx-agent Nov 8, 2026
32fbc81
Merge remote-tracking branch 'origin/main' into codex/c1-main-after-c…
loopx-agent Nov 8, 2026
7410b05
Read Reward Memory capability gates once per Turn context
loopx-agent Nov 8, 2026
9ebc353
Merge remote-tracking branch 'origin/main' into codex/c1-main-after-c…
loopx-agent Nov 8, 2026
fedf8fc
Integrate the LoopX 2.3.0 mainline into C1
loopx-agent Nov 8, 2026
7812629
Use the existing composed settlement for ready native heartbeat Turns
loopx-agent Nov 8, 2026
8857c70
Keep composed settlement on live native sessions
loopx-agent Nov 8, 2026
4cdb214
Merge remote-tracking branch 'origin/main' into codex/native-cli-sett…
loopx-agent Nov 8, 2026
0cdc8e1
Merge commit '71190b6b4ef4e146f3bf4a10d31ce61ac42fd021' into codex/c1…
loopx-agent Nov 9, 2026
25052d9
Verify Vision closeout through the C1 capture reader
loopx-agent Nov 9, 2026
09a89cd
Follow emitted progressive recovery in worker tests
loopx-agent Nov 9, 2026
462d96c
Offer a pinned review for bound replan successors
loopx-agent Nov 9, 2026
b55af52
Reuse ordinary addresses in native replan review
loopx-agent Nov 9, 2026
02bd71f
Defer native selection digests until coverage can finish
loopx-agent Nov 9, 2026
4a8077a
Reuse observed Vision authoring instructions in native reads
loopx-agent Nov 9, 2026
b10bec7
Reuse observed Vision authoring after same-Turn Todo selection
loopx-agent Nov 9, 2026
d20e759
Reuse an observed note for the same selected Todo
loopx-agent Nov 9, 2026
4fb2b60
Integrate complete ready openings and observed scopes into C1
loopx-agent Nov 9, 2026
5b0f72c
Merge remote-tracking branch 'origin/main' into codex/native-cli-sett…
loopx-agent Nov 9, 2026
9c91a93
Use combined native settlement after a same-Turn claim
loopx-agent Nov 9, 2026
8ef5867
Share native settlement eligibility with complete quota
loopx-agent Nov 9, 2026
8075729
Reject extra bytes after the packed Turn source
loopx-agent Nov 9, 2026
e18a392
Keep the bounded Turn envelope for explicit raw readers
loopx-agent Nov 9, 2026
9d99aff
Integrate budgeted native ready openings into C1
loopx-agent Nov 9, 2026
3cb7446
Integrate verified native reads from tool workdirs
loopx-agent Nov 9, 2026
56d5a96
Integrate current main into C1
loopx-agent Nov 9, 2026
a24f4db
Exercise legacy settlement through the explicit raw Turn view
loopx-agent Nov 9, 2026
94ad938
Integrate bounded external scheduler observation into C1
loopx-agent Nov 9, 2026
1f11d78
Check bounded and complete Turn outputs separately on C1
loopx-agent Nov 9, 2026
609c749
Retire unbound native execution preparation
loopx-agent Nov 9, 2026
9c67d1b
Integrate bound native preparation into C1
loopx-agent Nov 9, 2026
dbd2930
Integrate latest main workspace validation into C1
loopx-agent Nov 9, 2026
0d6f37d
perf: skip impossible lexical field matches
loopx-agent Nov 9, 2026
5948d55
Merge semantic lexical scan optimization into C1
loopx-agent Nov 9, 2026
684e024
Merge main into C1 before bounded Markdown repair
loopx-agent Nov 9, 2026
f42dfd5
fix: preserve bounded ordinary Turn Markdown
loopx-agent Nov 9, 2026
075999c
test: qualify historical native capture recovery
loopx-agent Nov 9, 2026
21f69f8
Merge commit '4f3158bc6bf6dcf3ed7ddc1844ece08ce1c87bab' into codex/c1…
loopx-agent Nov 9, 2026
de3d2d8
Merge main before the C1 context projection batch
loopx-agent Nov 9, 2026
6319a47
refactor: batch optional Host context projection in TypeScript
loopx-agent Nov 9, 2026
4094918
docs: reconcile C1 Host projection ownership and cost boundary
loopx-agent Nov 9, 2026
0d751fa
Merge latest main into C1 source validation
loopx-agent Nov 9, 2026
f128276
fix: keep optional status independent of executable Host source
loopx-agent Nov 9, 2026
1b201c6
docs: record status-only Host source boundary in C1
loopx-agent Nov 9, 2026
0386491
Merge latest main without restoring the retired controller builder
loopx-agent Nov 9, 2026
546382f
Merge main and share its observed Todo note reuse policy
loopx-agent Nov 9, 2026
f7c9c68
test(context): cover metadata-only note revisions and partial observa…
loopx-agent Nov 9, 2026
57e91c6
docs(controller): record shared main note reuse adoption
loopx-agent Nov 9, 2026
f3246f3
Merge main into C1 and reuse shared native observation paths
loopx-agent Nov 9, 2026
f4451c8
fix(controller): keep settlement ownership independent of context del…
loopx-agent Nov 9, 2026
23a988e
Merge remote-tracking branch 'origin/main' into codex/c1-architecture…
loopx-agent Nov 9, 2026
940419a
Merge commit '4995f606b74d9512a43a8008ae81ec7cad4339f2' into codex/c1…
loopx-agent Nov 9, 2026
85fbaa7
Merge commit '417e9fd41609eb553111d677f9635d3ee3160735' into codex/c1…
loopx-agent Nov 9, 2026
24ad579
fix(context): preserve versioned control lookup through thin prompts
loopx-agent Nov 9, 2026
983d89a
Merge remote-tracking branch 'origin/main' into codex/c1-architecture…
loopx-agent Nov 9, 2026
fd948e8
fix(context): validate complete native capability sources
loopx-agent Nov 9, 2026
b66705e
test(context): qualify complete and bounded native caller sources
loopx-agent Nov 9, 2026
79dd61c
Merge verified main 5988be01 into C1 integration
loopx-agent Nov 10, 2026
20cc22e
test(heartbeat): keep shared settlement dispatch and expose integrati…
loopx-agent Nov 10, 2026
a1e780d
Merge verified main e7ae4b07 before C1 caller qualification
loopx-agent Nov 10, 2026
0f4f241
fix(heartbeat): delegate thin bootstrap reads to the captured contract
loopx-agent Nov 10, 2026
853eb8f
fix(heartbeat): narrow generator budget from its checked value
loopx-agent Nov 10, 2026
536e1d3
Merge verified main d6b633e1 before MCP consumer cutover
loopx-agent Nov 10, 2026
9cbaaf2
Preserve complete decisions at the MCP delivery boundary
loopx-agent Nov 10, 2026
96d4296
Merge verified main 9201d844 into C1 consumer migration
loopx-agent Nov 10, 2026
e81c279
Clarify guidance locations for legacy MCP consumers
loopx-agent Nov 10, 2026
be0ea26
Run EdgeBench through C1 governed Turns and recover the original wake
huangruiteng Nov 10, 2026
c027ce4
Verify exited native process groups on denied cleanup signals
huangruiteng Nov 10, 2026
4e68d25
Merge pull request #8480 from loopx-project/codex/c1-edgebench-govern…
huangruiteng Nov 10, 2026
5bcd00c
Preserve historical Python MCP aliases alongside native delivery
loopx-agent Nov 10, 2026
a9af5c7
Integrate governed Turn benchmark changes already adopted by C1
loopx-agent Nov 10, 2026
630eeaa
Merge main into C1 and preserve native settlement before source binding
loopx-agent Nov 10, 2026
30cc2ba
fix(corpus): preserve historical controls alongside complete-source q…
loopx-agent Nov 10, 2026
cbc78ab
Merge main and converge scheduler observation on its shipped owner
loopx-agent Nov 10, 2026
9d28386
fix(c1): use the observer with the shared renderer contract
loopx-agent Nov 10, 2026
54b90eb
Add explicit complete Turn context for external heartbeat hosts
loopx-agent Nov 10, 2026
f288aa8
Merge main into C1 consumer cutover
loopx-agent Nov 10, 2026
552b7c4
refactor(c1): converge ordinary Markdown on the complete reader
loopx-agent Nov 10, 2026
1cf8ee8
fix(benchmark): retain explicit complete context in checkpoint preflight
loopx-agent Nov 10, 2026
9f2d87a
Merge main before C1 progressive Markdown convergence
loopx-agent Nov 10, 2026
085d530
refactor(context): share progressive delivery with ordinary Markdown
loopx-agent Nov 10, 2026
234f613
Merge main blocked-wait and SQLite lineage qualification
loopx-agent Nov 10, 2026
6c0525e
Preserve original validator on C1 recovery and qualify adapter phase …
loopx-agent Nov 10, 2026
85d7b39
Merge commit '080fe8253bf1566886b3fd972db717f13ced2bf1' into codex/c1…
loopx-agent Nov 10, 2026
33a0152
Preserve original guided settlement ownership and record the independ…
loopx-agent Nov 10, 2026
bffc5be
Merge C1 complete-source work onto verified main
loopx-agent Nov 10, 2026
d51ee57
test: align complete-source consumers with their declared contracts
loopx-agent Nov 10, 2026
c097fe5
Merge current main while preserving C1 source and recovery owners
loopx-agent Nov 10, 2026
0a65d8d
Merge commit '33a0152376a02884979afbb47773246fe706a372' into codex/c1…
loopx-agent Nov 10, 2026
5a9f6a5
Merge main conversation recovery into C1 integration
loopx-agent Nov 10, 2026
2293ef1
Merge receipt recovery while preserving C1 selection and replan closeout
loopx-agent Nov 10, 2026
a5ccc41
test(c1): restore raw-off parity and remove shadowed duplicate coverage
loopx-agent Nov 10, 2026
566b350
test(context): use complete inline writer in reentry consumer
loopx-agent Nov 10, 2026
269ce07
Merge explicit complete Host entry through the existing C1 source owner
loopx-agent Nov 10, 2026
ee521f8
test(delegation): exercise Stop through the current lifecycle owner
loopx-agent Nov 10, 2026
b938fb3
Merge remote-tracking branch 'origin/codex/c1-work-contract-review-20…
loopx-agent Nov 10, 2026
abb28cf
Merge remote-tracking branch 'origin/main' into codex/c1-architecture…
loopx-agent Nov 10, 2026
e5e2413
Preserve explicit off parity after current C1 and main integration
loopx-agent Nov 10, 2026
64936f2
test(quota): inject composition failure at the cached CLI call boundary
loopx-agent Nov 10, 2026
8e792f6
Bind native capability advice to the complete Turn capture
loopx-agent Nov 10, 2026
5e93ea8
Merge remote-tracking branch 'origin/main' into codex/c1-architecture…
loopx-agent Nov 10, 2026
ba93f58
Integrate main's canonical delegation lifecycle fixture
loopx-agent Nov 10, 2026
abdb790
Align the quota smoke with scoped normal admission
loopx-agent Nov 10, 2026
688fced
Integrate current main into the C1 Turn contract
loopx-agent Nov 10, 2026
bf7c08c
Reuse the journaled Turn identity when resuming a failed Session
loopx-agent Nov 10, 2026
c633923
Bring C1 up to the current main baseline
loopx-agent Nov 10, 2026
2714ee5
Integrate current main and its shared benchmark Turn runtime into C1
loopx-agent Nov 10, 2026
11657a9
Validate saved complete Turn context before native recovery
loopx-agent Nov 10, 2026
41205dc
Sync current main before delivering saved context recovery
loopx-agent Nov 10, 2026
e87755d
Merge remote-tracking branch 'origin/main' into codex/c1-architecture…
loopx-agent Nov 10, 2026
34171ce
test(quota): cover legacy and unified agenda readers separately
loopx-agent Nov 10, 2026
e9186b8
Merge remote-tracking branch 'origin/main' into codex/c1-architecture…
loopx-agent Nov 11, 2026
d883e12
fix(hosts): keep scheduler observations readable with progressive con…
loopx-agent Nov 11, 2026
58cced6
Keep uncomposed C1 Turn captures diagnostic
loopx-agent Nov 11, 2026
cc25b05
Exercise large native captures before signing
loopx-agent Nov 11, 2026
06697fe
Expose MCP settlement guidance in structured Turn results
loopx-agent Nov 11, 2026
e463fe1
Read the current Vision audit from its published reference
loopx-agent Nov 11, 2026
14fcae8
Integrate main and restore C1 Host validation
loopx-agent Nov 11, 2026
23346fb
Integrate main heartbeat rendering and verify modified capture refusal
loopx-agent Nov 11, 2026
66041df
Use main’s saved Turn validation in C1
loopx-agent Nov 11, 2026
568bea3
Exercise the checked reader after native claim recovery
loopx-agent Nov 11, 2026
3457bd0
Merge main and preserve appended Todo text in C1 reads
loopx-agent Nov 11, 2026
9c9a524
Integrate DSH original-capture reads and interrupted usage from main
loopx-agent Nov 11, 2026
9acc18f
Integrate shared recovery and check the native replay artifacts separ…
loopx-agent Nov 11, 2026
b9cf3d5
Pin progressive Inbox reads to the producing CLI
loopx-agent Nov 11, 2026
8d41208
Merge commit '43b4699ccf2a2a11456f46b82da7102173e65e86' into codex/c1…
loopx-agent Nov 11, 2026
fe80cb7
Report quota composition failures against the original receipt
loopx-agent Nov 11, 2026
c6c8075
Merge commit 'be0e0df02248aaf958164b9c9c7097253ac780f7' into codex/c1…
loopx-agent Nov 11, 2026
41d9e41
fix(quota): preserve the written refusal capture digest
loopx-agent Nov 11, 2026
cf08dc6
Merge commit '04958a89abbbf6b7d3f79327437e2d6deae97453' into codex/c1…
loopx-agent Nov 11, 2026
5662d69
Share progressive Stride authoring with the Vision writer
loopx-agent Nov 11, 2026
b7546e6
Merge commit '538e43ca00d1b70025173ba7f2a2d1fe9b69fdde' into codex/c1…
loopx-agent Nov 11, 2026
b260d6f
Stage C1 native replan reads from the verified capture
loopx-agent Nov 11, 2026
d47379c
Merge latest main into C1 native replan integration
loopx-agent Nov 11, 2026
c744200
Exercise staged replan from the Benchmark preflight opening
loopx-agent Nov 11, 2026
c8e611b
Honor the requested TurnEnvelope in Benchmark checkpoint preflight
loopx-agent Nov 12, 2026
a894c2b
Merge latest main into C1 Benchmark preflight integration
loopx-agent Nov 12, 2026
d93e8be
Verify complete Turn sources at Benchmark checkpoint boundaries
loopx-agent Nov 12, 2026
f14c2c5
Merge main into C1 and preserve the bound replan cue
loopx-agent Nov 12, 2026
aa2cfe3
fix(c1): require bound decisions on live checkpoint intake
loopx-agent Nov 12, 2026
71f6771
fix(c1): keep captured composition refusals within the output cap
loopx-agent Nov 12, 2026
a42358a
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 12, 2026
11b726b
test(benchmark): reject a downgraded live Turn source at the Host socket
loopx-agent Nov 12, 2026
2677427
refactor(c1): project settlement from the original scope and receipt
loopx-agent Nov 12, 2026
dc7179a
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 12, 2026
57af903
test(lark): mark the imported transcript fixture for Ruff
loopx-agent Nov 12, 2026
d1a6c5b
Reference the existing planning prompt in guided start
loopx-agent Nov 12, 2026
b784321
Merge commit 'd1a6c5b906803f3f0a2601882c717bf0a6af4fe1' into codex/c1…
loopx-agent Nov 12, 2026
6d18cbf
Remove padding from complete Turn Markdown
loopx-agent Nov 12, 2026
8814466
Verify Explore attachments against the original settlement plan
loopx-agent Nov 12, 2026
6493d87
fix(c1): honor bounded refusal output during Host preparation
loopx-agent Nov 12, 2026
3f1c240
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 12, 2026
88f7d49
Scope C1 source composition to explicit consumers
loopx-agent Nov 12, 2026
a56597b
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 13, 2026
39001c6
Restore exact-source review and checkpoint routing under explicit C1
loopx-agent Nov 13, 2026
8721882
Exercise staged acceptance through the explicit complete source
loopx-agent Nov 13, 2026
8c580f1
Verify released Host capture without duplicate recovery file
loopx-agent Nov 13, 2026
e320573
Preserve explicit C1 when binding the visible work Turn
loopx-agent Nov 13, 2026
f683193
Exercise ordinary and explicit C1 callers with their actual delivery …
loopx-agent Nov 13, 2026
0c66d89
Use current Goal activation in Steward discovery fixture
loopx-agent Nov 13, 2026
2277dc6
Use the complete Turn source for new benchmark heartbeats
loopx-agent Nov 13, 2026
795490c
Use the complete Turn source for Codex SSH and managed retry
loopx-agent Nov 13, 2026
79f54d4
Use the complete Turn source for live MCP reads
loopx-agent Nov 13, 2026
29d9038
Document the qualified C1 read boundaries
loopx-agent Nov 13, 2026
e7b49f9
Require the current wake contract in the external scheduler
loopx-agent Nov 13, 2026
46f3ab8
Share exact Todo rows in staged complete Turn views
loopx-agent Nov 13, 2026
33dcf07
Merge commit '441c6077e7c5c8e896ea79562761fd483baf157e' into codex/c1…
loopx-agent Nov 13, 2026
1f65cfe
State heartbeat authorization and repository safeguards clearly
loopx-agent Nov 13, 2026
fae1025
Preserve inline v0 replan authoring without a capture
loopx-agent Nov 13, 2026
b7f4de2
Verify signed C1 captures independently of checkpoint presentation
loopx-agent Nov 13, 2026
746819a
Verify C1 before completing an MCP Todo
loopx-agent Nov 13, 2026
f38a102
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 13, 2026
794a823
Keep C1 selection transport within the shared contract owner
loopx-agent Nov 13, 2026
becb618
Share identical peer claim lists in complete Turn decisions
loopx-agent Nov 13, 2026
56b3952
Merge main and retain the shared C1 settlement path
loopx-agent Nov 13, 2026
378188d
Exercise the same-package CLI in MCP stdio tests
loopx-agent Nov 13, 2026
a348cae
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 13, 2026
feb535f
Keep long-path quota refusal recovery within its output budget
loopx-agent Nov 13, 2026
9c26ef3
Qualify compact context bodies and thin heartbeat budgets
loopx-agent Nov 13, 2026
86bbd89
Reuse observed preference prose through its capability owner
loopx-agent Nov 13, 2026
a0cc4e0
Keep deep quota refusal recovery within its output budget
loopx-agent Nov 13, 2026
eb256c7
Merge current main before C1 recovery qualification
loopx-agent Nov 13, 2026
df00bce
Retain verified paged selections across native resume
loopx-agent Nov 13, 2026
674398c
Merge main workspace smoke updates into the C1 candidate
loopx-agent Nov 13, 2026
3752cb8
Return an executable reader for deep C1 refusal paths
loopx-agent Nov 13, 2026
a1dfd22
Account for shared C1 recovery metadata when reusing Todo rows
loopx-agent Nov 13, 2026
61574da
Preserve saved selection argument order when rebinding capture transport
loopx-agent Nov 13, 2026
59e273e
Limit the progressive capture regression to its supported host
loopx-agent Nov 13, 2026
ace5156
Reuse bound soft-claim settlement guidance in progressive reads
loopx-agent Nov 13, 2026
d1f8c9b
Merge remote-tracking branch 'origin/main' into codex/c1-mainline-clo…
loopx-agent Nov 13, 2026
7275599
Document exact settlement reuse in the progressive opening
loopx-agent Nov 13, 2026
751b07c
Share repeated diagnostics in the complete inline quota response
loopx-agent Nov 13, 2026
2739230
Reconstruct source freshness at its original observation time
loopx-agent Nov 13, 2026
4a9be03
Exercise the migrated SSH quota settlement through its returned command
loopx-agent Nov 13, 2026
02dcce1
Keep earlier C1 inline projection responses readable
loopx-agent Nov 13, 2026
a6a99c9
Keep verified selections after a repeated native page read
loopx-agent Nov 13, 2026
3048288
Keep thin heartbeat within the reviewed Markdown budget
loopx-agent Nov 13, 2026
92b5402
Exercise quiet host results in the heartbeat prompt smoke
loopx-agent Nov 13, 2026
df6f010
Route progressive settlement facts through the Turn source owner
loopx-agent Nov 13, 2026
1ef08e5
Verify quota refusal readers can advance within the output cap
loopx-agent Nov 13, 2026
0ad16bb
Merge remote-tracking branch 'refs/remotes/origin/main' into codex/c1…
loopx-agent Nov 13, 2026
171c76e
Verify context recovery on the current native Codex writer
loopx-agent Nov 13, 2026
202d36e
Execute installed Core SSH continuation commands as returned
loopx-agent Nov 13, 2026
e06a294
Preserve the installed CLI route through composed quota settlement
loopx-agent Nov 13, 2026
5be4438
Bind selected context replay to native tool calls
loopx-agent Nov 13, 2026
aa27669
Merge commit '5890cecd436e7d76b0bb5a033aca175c3a2650d9' into codex/c1…
loopx-agent Nov 13, 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
43 changes: 19 additions & 24 deletions benchmark/edgebench/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -994,30 +994,25 @@ budget or submissions. Freeze it with exact sources under a new run ID; do not
change live workers. Receipts qualify requested configuration, while actual
review, proposal adoption and task gains require trajectory evidence.

## Optional short-context treatment

Add `--turn-envelope` to an otherwise identical `heartbeat-resume` or
`heartbeat-explore` command to use the product's short normal packet and local
same-invocation full detail. Other workers reject the option before creating a
trial. The default remains off; the runtime and worker-profile receipts record
it explicitly. Use a new run ID and freeze this as a separate context treatment,
keeping objective guidance, task/scorer version, model and budgets matched.
Omit the flag on the next run to disable it. No active experiment is changed by
installing this code. Inspect wake receipts and the saved decisions before
claiming adoption; score countability still requires the usual integrity review.

For an explicitly complete v1 Host contract, choose `--complete-turn` instead
on either heartbeat profile. The shared worker forwards that choice through
the real heartbeat renderer and guard; it retains the original ready claim,
receipt and single-command settlement. It cannot be combined with the legacy
short-envelope option. Context delivery remains independent, and unselected
runs keep their existing behavior. See the [Host protocol](../../docs/reference/protocols/turn-envelope-v0.md#explicit-complete-v1-host-entry--显式完整-v1-host-入口)
for source readback, failure recovery and rollback. User task time requirements
remain readable; private Host deadlines stay outside model context.

中文:heartbeat profile 可显式选择 `--complete-turn` 以消费完整 v1,不能与旧短包
选项同时启用;共用原 ready claim、回执和单条结算 owner,不改变未选择的运行。
按原 source reader 核实采用与恢复;该开关不新增模型、子 worker、时钟或权限。
## Complete Turn contract

New `heartbeat-resume` and `heartbeat-explore` runs use the complete v1
decision (C1) with the original ready claim, receipt and single-command
settlement. `--complete-turn` records an explicit selection in the worker
and runtime receipts. `--context-delivery off` disables native context
delivery while keeping the same decision contract.

Use `--turn-envelope` only to reproduce the v0 presentation of a signed
decision. Give that comparison a new run ID and keep task/scorer version,
model and budgets matched. To compare against the original quota source, pin
the reference runner and LoopX revision recorded by the experiment. Inspect
wake receipts and saved decisions to verify adoption. See the
[Host protocol](../../docs/reference/protocols/turn-envelope-v0.md#explicit-complete-v1-host-entry--显式完整-v1-host-入口)
for source readback and recovery.

中文:新 heartbeat 运行默认用 C1 决策,关闭上下文交付后仍用同一份决策契约。
运行回执记录默认或显式选择。旧短包选项仅用于复现展示,原 quota 对照需要固定
对照组的 runner 与 LoopX 版本。

## Close a managed native attempt

Expand Down
6 changes: 3 additions & 3 deletions benchmark/edgebench/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,9 @@ def main(argv=None):
help="Opt-in private binding for native terminal proof, consumed by the controller")
turn_view = parser.add_mutually_exclusive_group()
turn_view.add_argument("--turn-envelope", action="store_true",
help="Opt-in short heartbeat context with same-invocation full captures")
help="Compatibility capture option; quota uses the shared complete v1 contract, with context delivery configured separately")
turn_view.add_argument("--complete-turn", action="store_true",
help="Explicit complete v1 Turn contract with shared exact-Turn settlement; heartbeat workers only")
help="Explicitly select the complete v1 Turn contract, already the default for heartbeat workers")
parser.add_argument("--context-delivery", choices=("off", "on"),
help="Native Codex context delivery: on by default for heartbeat workers; pass off to disable")
parser.add_argument("--execution-observation", choices=("local_probe",),
Expand Down Expand Up @@ -548,7 +548,7 @@ def main(argv=None):
"loopx_commit": pins[0], "runner_commit": pins[1],
"sforge_source": sforge_source if native_result_scope is not None else active_source_receipt(),
"local_docker_images": local_docker_images,
**turn_envelope_receipt(explicit=args.turn_envelope, complete=args.complete_turn),
**turn_envelope_receipt(execution),
**({"context_delivery": "on"} if args.context_delivery != "off" else {}),
**({"execution_observation": args.execution_observation}
if args.execution_observation is not None else {}),
Expand Down
18 changes: 15 additions & 3 deletions benchmark/runtime/RUNTIME.md
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,14 @@ a complete-mode binding cannot verify a pending command that uses
`--complete-turn`. Historical ordinary and envelope guards remain readable.
The existing Darwin native-checkpoint refusal remains in force.

New heartbeat work uses the complete C1 guard by default, with context delivery
on or off. The explicit v0 display still reads a signed C1 source. An omitted
display flag does not by itself add a checkpoint or capture directory. The
worker and trial receipts record whether C1 was selected explicitly or by default.
Preflight and live handoff require the signed source before selecting a replan
point. Native checkpoint recovery can still read previously recorded unversioned
originals with their receipt and scope checks.

The host-side checkpoint preflight captures the complete original decision.
With context delivery enabled, its prompt supplies `quota context-project`
with that original path and hash. The shared presentation owner prepares the
Expand All @@ -193,9 +201,13 @@ original full-read reference and receipt; use that explicit reference without
rerunning admission. An optional cache write after recovery is established can
still fall back to the same full input. A bad source hash/scope is refused before
publication. This does not renew decision
freshness or establish autonomous solver benefit. Default-off preloading is
unchanged. Include the projection command, descriptor, recovery and page reads
in subsequent total-cost comparisons.
freshness or establish autonomous solver benefit. With context delivery off,
preflight forwards an explicit short-envelope request and pins that choice in
same-Turn Todo selection. The short view links to the original complete
capture used by the checkpoint selector. The wake receipt records the
requested treatment, so check the delivered view when qualifying a comparison.
Include the projection command, descriptor, recovery and page reads in
subsequent total-cost comparisons.
Across distinct worker wakes, settle the prior Turn before selecting new work;
reading an old prompt from resumed history cannot supply the next wake's guard.
Do not modify an active/frozen trial. Set `context_delivery: "off"` for a new trial
Expand Down
42 changes: 22 additions & 20 deletions benchmark/runtime/checkpoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from loopx.control_plane.quota.settlement import read_heartbeat_settlement
from loopx.hosts.research_checkpoint import (
_participant_id, native_binding_participant, verify_native_binding_participant,
research_participants, verify_research_participants,
research_participants, select_checkpoint_replan, verify_research_participants,
)
from .checkpoint_handoff import CHECKPOINT_CAPTURE_SECONDS
from .codex import explicit_turn_display
Expand Down Expand Up @@ -122,10 +122,8 @@ def _prior_replan_guard_seen(env: dict[str, str], current: Path, obligation_id:
if path.resolve(strict=True) != path:
raise ValueError("prior checkpoint guard must be a physical Host file")
guard = json.loads(path.read_text())
prior = effect_runtime_result("runtime.checkpoint_artifacts", {
"action": "select_replan", "quota": guard, "goal_id": env["LOOPX_GOAL_ID"],
"agent_id": env["LOOPX_AGENT_ID"], "turn_instance_id": path.parent.name,
}, large_local_snapshot=True)
prior = select_checkpoint_replan(guard, goal_id=env["LOOPX_GOAL_ID"],
agent_id=env["LOOPX_AGENT_ID"], turn_instance_id=path.parent.name, allow_legacy_source=True)
if prior["capture"] and prior["obligation_id"] == obligation_id:
return True
return False
Expand Down Expand Up @@ -222,19 +220,21 @@ def capture_before_replan(env: dict[str, str], receipt: dict[str, Any], body: st
raise ValueError("fresh_replan checkpoint trigger requires a heartbeat execute wake")
started = time.monotonic()
guard_path = Path(env["LOOPX_WAKE_LOG_DIR"]) / receipt["turn_id"] / "checkpoint-start-guard.json"
# Use the CLI's original-decision capture, including with TurnEnvelope off.
# The checkpoint selector needs the full source; the model consumes the
# ordinary CLI projection of those same bytes, never a second guard.
# The selector and the model both use the original CLI guard. The explicit
# compatibility display can still render v0 from that signed source.
capture_root = Path(tempfile.mkdtemp(prefix="checkpoint-start-", dir=guard_path.parent))
command = [env["LOOPX_CLI"], "--cli-bin", env["LOOPX_CLI"], "--format", "json", "--registry", env["LOOPX_REGISTRY"],
"--runtime-root", env["LOOPX_RUNTIME_ROOT"], "quota", "should-run",
"--goal-id", env["LOOPX_GOAL_ID"], "--agent-id", env["LOOPX_AGENT_ID"],
"--runtime-profile", "generic_cli", "--turn-instance-id", receipt["turn_id"],
"--available-capability", "shell", "--available-capability", "filesystem_write"]
display = explicit_turn_display(env)
if display.complete_turn:
command.append("--complete-turn")
native_context = env.get("LOOPX_CONTEXT_DELIVERY") == "on" and bool(env.get("LOOPX_CODEX_CONTEXT_DIR"))
if display.uses_complete_heartbeat_guard:
command.append("--complete-turn")
elif display.turn_envelope:
command.append("--turn-envelope")
legacy_display = display.turn_envelope and env.get("LOOPX_CONTEXT_DELIVERY", "off") == "off"
if native_context:
# The native reader selects full/delta after SessionStart. Ask the
# existing preparation route for the committed capture reference now.
Expand All @@ -244,6 +244,10 @@ def capture_before_replan(env: dict[str, str], receipt: dict[str, Any], body: st
"--defer-context-presentation"]
else:
command += ["--decision-output-root", str(capture_root)]
if legacy_display:
# Forward the explicit raw display to the same CLI that renders
# ordinary wakes. The checkpoint selector still reads the source.
command += ["--context-delivery", "off"]
guard_run = subprocess.run(command, cwd=env["LOOPX_PROJECT"], env=env, capture_output=True,
text=True, timeout=120, check=True)
projected = json.loads(guard_run.stdout)
Expand All @@ -259,6 +263,9 @@ def capture_before_replan(env: dict[str, str], receipt: dict[str, Any], body: st
raise ValueError("checkpoint requires a successful original quota guard")
if native_context and projected.get("capture_sha256") != guard_digest:
raise ValueError("checkpoint prepared capture differs from the original guard; do not replay the guard")
# A fresh guard always captures signed C1, including for the v0 display.
intent = select_checkpoint_replan(guard, goal_id=env["LOOPX_GOAL_ID"],
agent_id=env["LOOPX_AGENT_ID"], turn_instance_id=receipt["turn_id"])
# A previous preflight on this wake may already have allowed model work,
# even if its optional attempt marker (or final receipt) could not be saved.
# Such reentry can verify an existing point, but cannot capture a later one.
Expand All @@ -275,17 +282,14 @@ def capture_before_replan(env: dict[str, str], receipt: dict[str, Any], body: st
view_path = guard_path.with_name("checkpoint-start-view.json")
view_path.write_text(guard_run.stdout, encoding="utf-8")
view_path.chmod(0o600)
reading = (f"Read the complete CLI view at {view_path} before work, then follow its interaction_contract "
action = "action, required reads and settlement instructions" if legacy_display else "interaction_contract"
reading = (f"Read the complete CLI view at {view_path} before work, then follow its {action} "
"and replan review/writeback reads when present. ")
preloaded_body = ("Host checkpoint preflight has already executed this wake's original quota guard once. "
+ reading +
"Do not repeat the initial guard below; use its selection or recovery command when required.\n\n" + body)
receipt["checkpoint"] = {"captured": False, "research_point_qualified": False, "phase": "before_replan"}
try:
intent = effect_runtime_result("runtime.checkpoint_artifacts", {
"action": "select_replan", "quota": guard, "goal_id": env["LOOPX_GOAL_ID"],
"agent_id": env["LOOPX_AGENT_ID"], "turn_instance_id": receipt["turn_id"],
}, large_local_snapshot=True)
from .checkpoint_continuation import restored_capture_gate
restore_gate = restored_capture_gate(env, intent.get("obligation_id"),
full_history=not request.get("native_session", False))
Expand Down Expand Up @@ -676,11 +680,9 @@ def remaining():
if failed_readback:
intent = {"capture": False, "reason": "quota_readback_failed", "execution_authority_granted": False}
else:
intent = effect_runtime_result("runtime.checkpoint_artifacts", {
"action": "select_replan", "quota": quota, "goal_id": goal_id,
"agent_id": agent_id, "turn_instance_id": (turn_instance_id if turn_instance_id is not None
else (quota.get("heartbeat_receipt") or {}).get("turn_instance_id")),
}, timeout=remaining(), large_local_snapshot=True)
intent = select_checkpoint_replan(quota, goal_id=goal_id, agent_id=agent_id,
turn_instance_id=(turn_instance_id if turn_instance_id is not None
else (quota.get("heartbeat_receipt") or {}).get("turn_instance_id")), timeout=remaining())
if not failed_readback and native_process is not None and interrupt_when is not None and interrupt_when(intent):
from .worker import interrupt_checkpoint_process

Expand Down
9 changes: 4 additions & 5 deletions benchmark/runtime/checkpoint_continuation.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from loopx.control_plane.effect_runtime import effect_runtime_result
from loopx.control_plane.quota.settlement import read_heartbeat_settlement
from loopx.control_plane.turn_driver.codex_sessions import load_codex_cli_session
from loopx.hosts.research_checkpoint import select_checkpoint_replan


def retained_native_history(binding, metadata):
Expand Down Expand Up @@ -82,11 +83,9 @@ def _restored_context(env, current_obligation_id=None, *, verify_native, include
if hashlib.sha256(raw).hexdigest() != metadata.get("decision_sha256"):
raise ValueError("restored pending replan packet digest differs")
packet = json.loads(raw)
intent = effect_runtime_result("runtime.checkpoint_artifacts", {
"action": "select_replan", "quota": packet,
"goal_id": metadata["loopx_state"]["goal_id"], "agent_id": metadata["loopx_state"]["agent_id"],
"turn_instance_id": packet["heartbeat_receipt"]["turn_instance_id"],
}, large_local_snapshot=True)
intent = select_checkpoint_replan(packet, goal_id=metadata["loopx_state"]["goal_id"],
agent_id=metadata["loopx_state"]["agent_id"], turn_instance_id=packet["heartbeat_receipt"]["turn_instance_id"],
allow_legacy_source=True)
if intent != pending or intent.get("capture") is not True:
raise ValueError("restored original replan binding differs")
result = effect_runtime_result("runtime.checkpoint_artifacts", {
Expand Down
9 changes: 4 additions & 5 deletions benchmark/runtime/checkpoint_session_refresh.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def _prepare_fresh_replan(env, session, wake, declaration):
is manufactured or fed to the fresh decision maker.
"""
from loopx.control_plane.effect_runtime import effect_runtime_result
from loopx.hosts.research_checkpoint import select_checkpoint_replan
from benchmark.runtime.sforge_warm_start import admit_warm_session

unit = Path(declaration["root"])
Expand All @@ -61,11 +62,9 @@ def _prepare_fresh_replan(env, session, wake, declaration):
if hashlib.sha256(raw).hexdigest() != metadata.get("decision_sha256"):
raise ValueError("fresh replan pending packet digest differs")
packet = json.loads(raw)
selected = effect_runtime_result("runtime.checkpoint_artifacts", {
"action": "select_replan", "quota": packet,
"goal_id": metadata["loopx_state"]["goal_id"],
"agent_id": metadata["loopx_state"]["agent_id"],
"turn_instance_id": packet["heartbeat_receipt"]["turn_instance_id"]}, large_local_snapshot=True)
selected = select_checkpoint_replan(packet, goal_id=metadata["loopx_state"]["goal_id"],
agent_id=metadata["loopx_state"]["agent_id"], turn_instance_id=packet["heartbeat_receipt"]["turn_instance_id"],
allow_legacy_source=True)
if selected.get("capture") is not True or selected != (
metadata.get("replan") or metadata.get("operator_metadata", {}).get("replan")):
raise ValueError("fresh replan requires the original pending decision boundary")
Expand Down
15 changes: 11 additions & 4 deletions benchmark/runtime/codex.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,18 @@ def uses_loopx(self) -> bool:
def native_goal(self) -> bool:
return self.mode in {"native-goal", "loopx-goal"}

@property
def uses_complete_heartbeat_guard(self) -> bool:
return self.mode == "heartbeat" and not self.turn_envelope


def turn_envelope_receipt(*, explicit: bool, complete: bool = False) -> dict:
"""Record only the explicit display opt-in; checkpoint capture is independent."""
return {**({"turn_envelope": True, "turn_envelope_source": "explicit"} if explicit else {}),
**({"complete_turn": True, "complete_turn_source": "explicit"} if complete else {})}
def turn_envelope_receipt(execution: Execution) -> dict:
"""Record the actual heartbeat source choice independently of capture."""
if execution.turn_envelope:
return {"turn_envelope": True, "turn_envelope_source": "explicit"}
if execution.uses_complete_heartbeat_guard:
return {"complete_turn": True, "complete_turn_source": "explicit" if execution.complete_turn else "default"}
return {}


def explicit_turn_display(env: dict[str, str]) -> Execution:
Expand Down
2 changes: 1 addition & 1 deletion benchmark/runtime/harbor.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ def __init__(
raise ValueError("provider_request_admission requires the Responses wire API")

def _turn_envelope_receipt(self) -> dict:
return {**turn_envelope_receipt(explicit=self.execution.turn_envelope, complete=self.execution.complete_turn),
return {**turn_envelope_receipt(self.execution),
**({"native_child_limit": self.execution.native_child_limit}
if self.execution.native_child_limit is not None else {}),
**({"context_delivery": "on"} if self.execution.context_delivery != "off" else {})}
Expand Down
Loading
Loading