Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
7019 commits
Select commit Hold shift + click to select a range
f825cea
feat(jobs): add /jobs full to show untruncated background command lines
rickythefox Oct 1, 2026
9545aca
docs(changelog): move /jobs full entry to Unreleased with PR credit
rickythefox Oct 1, 2026
085523c
test: resolve sleep via PATH in nohup reparenting fixture
Oct 1, 2026
ff8a983
docs(robomp): document local omp-rpc install
Oct 1, 2026
6dbd6bc
fix(tui): kept non-chat models in scoped model hub
roboomp Oct 1, 2026
df6c0ee
Merge origin/main into #12385
Oct 1, 2026
edb740c
Merge pull request #13864 from alphastorm/contrib/strata-overflow-text
H4vC Oct 1, 2026
0668fc0
fix(advisor): capture cadence-skipped updates at their own boundary
Oct 1, 2026
2d3fa5d
chore: rewrite changelog
can1357 Oct 1, 2026
d3a32f6
chore: bump version to 18.4.9
can1357 Oct 1, 2026
1c81d1c
fix(advisor): keep skipped cadence updates across advisor rebuilds
Oct 1, 2026
836f8cb
fix(advisor): review cadence-held updates before headless disposal
Oct 1, 2026
25419b2
docs(advisor): document live cadence, held updates, and strict headle…
Oct 1, 2026
4aabf22
test(tui): cover cadence edits from the native advisor prefs page
Oct 1, 2026
aca487f
fix(advisor): keep subagent teardown within its cleanup deadline unde…
Oct 1, 2026
320e302
Merge #12385 and origin/main into #12387
Oct 1, 2026
2df70bb
test(advisor): stop relying on advisor wrap-up calls main no longer m…
Oct 1, 2026
0a65367
fix(ai,coding-agent): keep signed thinking valid when memory rewrites…
nick-maderight Oct 1, 2026
b92aa41
fix(advisor): only skip reviews for continuations the advisor itself …
Oct 1, 2026
5572d84
fix(advisor): keep WATCHDOG.yml edits saved while the advisor is disa…
Oct 1, 2026
8e7a1e8
fix(session): retried late ttsr interrupt continuations
roboomp Oct 1, 2026
9146bff
fix(advisor): let a late agent-end concern steer its one continuation
Oct 1, 2026
8a9660d
chore(advisor): drop unrelated churn and document the post-window del…
Oct 1, 2026
fdd0e13
docs(changelog): move the #12387 entry under [Unreleased]
Oct 1, 2026
a0246d4
docs(changelog): credit #14019
nick-maderight Oct 1, 2026
f1395f2
Merge origin/main into #12385
Oct 1, 2026
ad714b1
Merge #12385 and origin/main into #12387
Oct 1, 2026
5cbe3c4
Merge origin/main into #12358
Oct 1, 2026
20c8f3f
docs(changelog): keep only #12385 entries under [Unreleased] after th…
Oct 1, 2026
174738f
docs(changelog): keep only #12387 entries under [Unreleased] after th…
Oct 1, 2026
01892d5
docs(changelog): keep only #12358 entries under [Unreleased] after th…
Oct 1, 2026
3c697e1
test(cfg): expect strict in the advisor.syncBacklog listing
Oct 1, 2026
6d22c6a
Merge #12385 into #12387
Oct 1, 2026
e0e356f
Merge PR #12463: fix(robomp): install local rpc dependency (@olegpula…
H4vC Oct 1, 2026
f705544
Merge PR #12358: test: make fixtures portable across non-FHS hosts (@…
H4vC Oct 1, 2026
4312908
Merge origin/main into #12385
Oct 1, 2026
43b5a22
docs(changelog): separate #12385 entries from Fixed
Oct 1, 2026
aed6bd6
Merge #12385 and origin/main into #12387
Oct 1, 2026
ccfc3b5
docs(changelog): separate #12387 entry from Fixed
Oct 1, 2026
6047474
Merge PR #12385: feat(advisor): add review cadence and per-advisor ca…
H4vC Oct 1, 2026
cc78283
Merge PR #12387: feat(advisor): merge final review notes without recu…
H4vC Oct 1, 2026
672ccbc
Merge remote-tracking branch 'origin/main' into pr-13868
Oct 1, 2026
d622e96
fix(agent): refuse cut-off tool-call arguments in streamProxy
Oct 1, 2026
732b76b
Merge PR #13868: fix(ai): refuse tool calls with incomplete argument …
H4vC Oct 1, 2026
82ebbee
Merge branch 'main' into fix/openai-models-list-input-output-limits
github-nicolas-stadler Oct 1, 2026
024ef5e
fix(jobs): indent wrapped /jobs full commands; share markdown fence h…
Oct 1, 2026
5a3277c
Merge remote-tracking branch 'origin/main' into pr-13980
Oct 1, 2026
0e3da9f
docs(changelog): keep only the /jobs full entry after merging main
Oct 1, 2026
05c7b55
Merge PR #13980: feat(jobs): add /jobs full to show untruncated backg…
H4vC Oct 1, 2026
0b7270c
fix(brush-core): report pipeline stages that stop before the wait starts
sjawhar Oct 1, 2026
fb50764
test(pi-shell,pi-natives): wait on conditions instead of timers
sjawhar Oct 1, 2026
bbe84b1
docs(natives): credit #14023 in the changelog
sjawhar Oct 1, 2026
801463c
perf(brush-core): build the pipeline stop scope only for multi-proces…
sjawhar Oct 1, 2026
5fade9d
Merge main into ask transcript gap fix
Dante-dan Oct 1, 2026
db6c2fb
test(rpc): cover a later prompt waiting for an idle image skill's vis…
andrebrait Oct 1, 2026
6931154
fix(coding-agent): renamed ratchet prelude module to resolve from nod…
roboomp Oct 1, 2026
1479726
Merge branch 'main' into fix/minimax-token-plan-pricing
eggpeat Oct 1, 2026
9fe9c1e
Merge branch 'main' into fix/cursor-idle-window-after-local-work
eggpeat Oct 1, 2026
0804264
Merge upstream main into perf/marked-linear-inline-scan
sjawhar Oct 1, 2026
389ef43
fix(coding-agent): trace skill-description compression requests
xaviergmail Oct 1, 2026
905c899
fix(ai): rejected unusable Factory Droid logins
roboomp Oct 1, 2026
715332d
fix(task): drop a SpawnRun's owner-signal listener once the run settles
theolundqvist Oct 1, 2026
045dbee
fix(task): park subagents without pinning their run state
theolundqvist Oct 1, 2026
41ceda5
fix(tui): skipped win32-input-mode for windows consoles over ssh
roboomp Oct 1, 2026
ce18949
fix(session): release an agent session's persistent shells on dispose
theolundqvist Oct 1, 2026
55e9472
fix(cli): stop startup timing before print, RPC and ACP runs
theolundqvist Oct 1, 2026
0d4a60d
docs(changelog): credit #14038
theolundqvist Oct 1, 2026
07fb0d5
docs(changelog): credit #14039
theolundqvist Oct 1, 2026
086cde9
docs(changelog): credit #14040
theolundqvist Oct 1, 2026
08409fd
docs(changelog): credit #14042
theolundqvist Oct 1, 2026
95acb04
fix(tui): emit nothing for finished thinking when thinking is hidden
can1357 Oct 1, 2026
ecd5359
fix(nix): repoint darwin addon libiconv install name to system library
krzysztofkusmierczyk Sep 30, 2026
75e1a11
fix(nix): make darwin addon store-path guard fail closed
krzysztofkusmierczyk Oct 1, 2026
c8c67af
fix(coding-agent): released gc sqlite handles for windows teardown
roboomp Oct 1, 2026
d85f703
test(rpc): model session disposer in cancellation mock
theolundqvist Oct 1, 2026
05f6164
Merge remote-tracking branch 'origin/main' into fix/12398-ask-transcr…
Dante-dan Oct 1, 2026
f2e63a8
fix(ai,catalog): pin the Bedrock prefix-mismatch opt-out and state th…
nick-maderight Oct 1, 2026
b86e489
fix(ai): rotated cursor credentials on prepaid balance exhaustion
roboomp Oct 1, 2026
47775c7
feat(tui/native): added support for native change events with flexibl…
can1357 Oct 1, 2026
5a49364
feat(tui): added copy buttons to the native session info sheet
can1357 Oct 2, 2026
f43fec3
Merge PR #13961: perf(markdown): make inline scans linear (@sjawhar)
can1357 Oct 2, 2026
e9c0e83
Merge PR #13964: fix(catalog): resolve namespaced LiteLLM Sol display…
can1357 Oct 2, 2026
129d11b
fix(catalog): drop hand-bundled Codex GPT-6.1 Sol seed row
can1357 Oct 1, 2026
854d6e9
Merge PR #13966: fix: rebuild intrinsic prompt-cache policy during ge…
can1357 Oct 2, 2026
6aab1c1
test(catalog): cover generator dropping stale prompt-cache lifetimes …
can1357 Oct 1, 2026
00fe8ea
Merge PR #13984: fix(edit): carry read provenance past line-neutral e…
can1357 Oct 2, 2026
b9ba136
Merge PR #13985: fix(ai): drop invocation-text tool names from replay…
can1357 Oct 2, 2026
eada9e9
Merge PR #13988: fix(coding-agent): read nested OpenAI model-list tok…
can1357 Oct 2, 2026
dde5e22
docs(changelog): drop stale #13987 entry reintroduced by main merge
can1357 Oct 1, 2026
4e98a99
Merge PR #13992: fix(nix): repoint darwin addon libiconv install name…
can1357 Oct 2, 2026
6245fc6
docs(changelog): move #13992 entry to [Unreleased]; drop duplicated r…
can1357 Oct 1, 2026
4464f73
Merge PR #13993: fix(tui): preserve response scrollback while ask pan…
can1357 Oct 2, 2026
1aa8bf0
fix(tui): bottom-anchor only after an ask panel actually retires rows
can1357 Oct 1, 2026
b086697
Merge PR #13996: fix(catalog): dropped per-message effort for vertex …
can1357 Oct 2, 2026
6ab2db1
Merge PR #14000: fix(coding-agent): resolve agent:// reads for runnin…
can1357 Oct 2, 2026
1986801
test(coding-agent): cover agent:// progress for a parked agent's reta…
can1357 Oct 1, 2026
0aea8a8
docs(coding-agent): credit @radkawar on agent:// running-agent change…
can1357 Oct 1, 2026
4e12047
Merge PR #14017: fix(tui): kept non-chat models in scoped model hub (…
can1357 Oct 2, 2026
5282f82
Merge PR #14019: fix(ai,coding-agent): keep signed thinking valid whe…
can1357 Oct 2, 2026
cb059d2
Merge PR #14020: fix(session): retried late ttsr interrupt continuati…
can1357 Oct 2, 2026
46abc95
Merge PR #14023: fix(brush-core): don't hang on pipeline stages that …
can1357 Oct 2, 2026
3c6033a
test(pi-shell): make the stop-scope and pidwait tests build and pass …
can1357 Oct 2, 2026
fdb1f15
Merge PR #14029: fix(coding-agent): renamed ratchet prelude module to…
can1357 Oct 2, 2026
3638f0d
Merge PR #14035: fix(ai): rejected unusable Factory Droid logins (@ro…
can1357 Oct 2, 2026
0de853b
Merge PR #14036: fix(tui): skipped win32-input-mode for windows conso…
can1357 Oct 2, 2026
1ad16dd
Merge PR #14038: fix(task): drop a SpawnRun's owner-signal listener o…
can1357 Oct 2, 2026
3f318fa
Merge PR #14039: fix(cli): stop startup timing before print, RPC and …
can1357 Oct 2, 2026
e0f5fd6
test(cli): isolate PI_TIMING and reset timing state in headless timin…
can1357 Oct 1, 2026
1b1ba7e
Merge PR #14040: fix(task): park subagents without pinning their run …
can1357 Oct 2, 2026
9dbd204
Merge PR #14042: fix(session): release an agent session's persistent …
can1357 Oct 2, 2026
78a54a9
Merge PR #14050: fix(coding-agent): released gc sqlite handles for wi…
can1357 Oct 2, 2026
18236c1
test(coding-agent): accepted persisted empty WAL on macOS in gc check…
can1357 Oct 1, 2026
b51c3ea
Merge PR #14056: fix(coding-agent): trace skill-description compressi…
can1357 Oct 2, 2026
1f4a18f
docs(coding-agent): fix changelog attribution link for #14056
can1357 Oct 1, 2026
35212f1
Merge PR #14057: fix(ai): rotate cursor credentials on prepaid balanc…
can1357 Oct 2, 2026
18ab8b9
docs(changelog): normalized unreleased entries for merged fixes
can1357 Oct 2, 2026
bd2ff3e
fix: fixed duplicate Context Usage cards and added refresh capability
can1357 Oct 2, 2026
b70455b
feat: refactored task isolation and implement atomic worktree cherry-…
can1357 Oct 2, 2026
b2bbda3
fix(coding-agent): kept working elapsed across session focus switches
can1357 Oct 2, 2026
7e8eadc
fix(coding-agent/task): fixed isolated task behavior and added tests …
can1357 Oct 2, 2026
a16d77a
Merge origin/main into #13027
H4vC Oct 2, 2026
f7429eb
test(rpc): release held vision request via file, share skill-image vi…
H4vC Oct 2, 2026
af7ed8f
Merge PR #13027: fix(rpc): admit native input in order without an ear…
H4vC Oct 2, 2026
f8073f4
fix(coding-agent): kept run context when awaiting python eval handles
can1357 Oct 2, 2026
dae7116
Merge PR #13698: fix(coding-agent): retarget jevify notice at the jud…
can1357 Oct 2, 2026
1643d1f
docs(changelog): credited #13698 on the jevify notice entry
can1357 Oct 2, 2026
22957ac
docs(changelog): moved jevify notice entry to unreleased
can1357 Oct 2, 2026
2a6af42
fix(tui): kept finished wait snapshots beside their turn usage
can1357 Oct 2, 2026
9311adf
docs(catalog): fixed changelog spacing, dropped stray blank-line chur…
H4vC Oct 2, 2026
55552cf
Merge PR #13682: fix(ai): restarted the idle window when local tool w…
H4vC Oct 2, 2026
2a7db74
Merge remote-tracking branch 'origin/main'
can1357 Oct 2, 2026
843ed30
Merge remote-tracking branch 'origin/main' into fix/minimax-token-pla…
H4vC Oct 2, 2026
9a132ce
Merge PR #13695: fix(catalog): priced MiniMax Token Plan models at pa…
H4vC Oct 2, 2026
de12edf
fix(models): stopped header resolvers nesting on every refresh
can1357 Oct 2, 2026
2b7f6fa
style(edit): rustfmt carried_seen_lines doc comment
can1357 Oct 2, 2026
ea6651b
fix(coding-agent/ida): added timeout for IDA database opening and err…
can1357 Oct 2, 2026
bd6eca4
refactor: removed manual CI-green preflight checks
can1357 Oct 2, 2026
cb0d529
chore: bump version to 18.4.10
can1357 Oct 2, 2026
5d6e839
chore: regen models
can1357 Oct 2, 2026
cefe4ff
feat(tui/tools): added SVG preview handling to write tool
can1357 Oct 2, 2026
5f2a49f
feat: added periodic subagent completion estimates and UI display
can1357 Oct 2, 2026
6465140
fix(tui): decoded win32-input-mode records inside bracketed paste
roboomp Oct 2, 2026
a4740c2
fix(catalog): default fireworks to kimi-k3
alphastorm Oct 2, 2026
99a6e15
docs(catalog): note the fireworks default model in the changelog
alphastorm Oct 2, 2026
e65d0cb
feat(coding-agent/task): added completion probe including in-flight t…
can1357 Oct 2, 2026
3b003d8
Merge remote-tracking branch 'origin/farm/bef25c03/fix-windows-paste-…
can1357 Oct 2, 2026
2ac9873
feat(coding-agent): start goal mode at interactive launch
shawnkoh Sep 30, 2026
5d14367
fix(coding-agent): keep startup goals fresh and out of plan mode
shawnkoh Sep 30, 2026
80727b3
fix(coding-agent): take a flag-looking --goal value as the (rejected)…
shawnkoh Oct 2, 2026
a82a688
feat(coding-agent): add RPC goal command and opt-in continuation
shawnkoh Oct 2, 2026
0bd2b8d
fix(coding-agent): keep a host abort's continuation stop until the ho…
shawnkoh Oct 2, 2026
931d97e
fix(coding-agent): fix skill-descriptions.db xdg pos
Parsifa1 Sep 28, 2026
8a7151f
fix(utils): route the global daemon runtime root through XDG state, p…
Parsifa1 Sep 28, 2026
17d73e6
fix(discovery): never treat ~/.omp as a project config dir
NaC-L Oct 2, 2026
cdbdfb0
docs(changelog): link PR
NaC-L Oct 2, 2026
93203ea
fix(discovery): skip home in the native skills walk-up too
NaC-L Oct 2, 2026
45abec7
fix(coding-agent): reject invalid --goal launches before session reso…
Oct 2, 2026
830b928
fix(utils,coding-agent): share global daemon root across agent dirs a…
Oct 2, 2026
7bb8666
fix(coding-agent): keep RPC goals active across in-process session ch…
Oct 2, 2026
8370b23
fix(coding-agent): adopt legacy skill cache on filesystems without ha…
Oct 2, 2026
4051b8c
Merge PR #13879: feat(coding-agent): start goal mode at interactive l…
H4vC Oct 2, 2026
e7e5530
Merge remote-tracking branch 'origin/main' into fix-13952
Oct 2, 2026
1cdb975
Merge PR #13952: feat(coding-agent): goal command, goal state and opt…
H4vC Oct 2, 2026
3455be7
fix(agent): reported malformed tool json to lenient tools
roboomp Oct 2, 2026
db7fbd4
Merge PR #13648: fix(coding-agent): route skill descriptions, predict…
H4vC Oct 2, 2026
6e03e04
Merge PR #13862: fix(mcp): honor configured transport deadlines in su…
Oct 2, 2026
9586bd6
Merge PR #13723: fix(ai): stop counting cached Cursor prompt tokens t…
Oct 2, 2026
3dafb40
Merge PR #13657: fix(coding-agent): fit default thinking level to the…
Oct 2, 2026
e01112c
Merge PR #13585: fix(read): refuse FIFOs and devices instead of block…
Oct 2, 2026
0e5ef39
chore(changelog): move merged PR entries under [Unreleased]
Oct 2, 2026
34bfd5f
Merge PR #13770: fix(ai): keep newer broker credentials over delayed …
Oct 2, 2026
d256f2b
chore(changelog): move #13770 entry under [Unreleased]
Oct 2, 2026
3003f7a
Merge PR #14068: fix(catalog): default fireworks to kimi-k3 (@alphast…
Oct 2, 2026
e77fa3b
Merge PR #14084: fix(discovery): never treat ~/.omp as a project conf…
Oct 2, 2026
c9a8ccc
Merge PR #13896: docs: qualify the browser MCP filter section in mcp-…
Oct 2, 2026
14c97b5
chore(changelog): fold #14084 entry into [Unreleased] Fixed
Oct 2, 2026
051ee36
fix(agent): preserved raw json stripping on schema fallback
roboomp Oct 2, 2026
cb94bcb
feat(coding-agent/rpc): added fork command that cuts at any transcrip…
andrebrait Oct 2, 2026
a1389b4
feat(tui/tools): displayed notebook cell gutters with arrow icons and…
can1357 Oct 2, 2026
353f8a5
Merge remote-tracking branch 'origin/farm/d88a1ce3/yield-reports-malf…
can1357 Oct 2, 2026
70ee2e1
chore: rewrite changelogs
can1357 Oct 2, 2026
855879c
chore: bump version to 18.4.11
can1357 Oct 2, 2026
6b37448
fix(coding-agent/rpc): refuse busy forks before discarding state, kee…
Oct 2, 2026
00ce818
test(cli): hashed release fixtures with Bun.SHA256 to match main
Oct 2, 2026
c944020
Merge remote-tracking branch 'origin/main' into feat/rpc-fork-at-entry
Oct 2, 2026
1c83ab7
Merge PR #12914: fix(cli): resolve binary updates against published G…
Oct 2, 2026
1d605da
Merge remote-tracking branch 'origin/main' into feat/rpc-fork-at-entry
Oct 2, 2026
e983589
Merge PR #14077: feat(coding-agent/rpc): added fork command that cuts…
H4vC Oct 2, 2026
3dbafb3
Merge PR #13045: fix(pi-edit): strip the Windows verbatim prefix when…
Oct 2, 2026
c69d5f2
Merge remote-tracking branch 'origin/main' into fx-13363
Oct 2, 2026
9f1e3c8
Merge remote-tracking branch 'origin/main' into fx-13044
Oct 2, 2026
9df5dc4
Merge remote-tracking branch 'origin/main' into fx-12838
Oct 2, 2026
1f370bb
Merge remote-tracking branch 'origin/main' into fx-13244
Oct 2, 2026
99c8de8
Merge remote-tracking branch 'origin/main' into fx-12720
Oct 2, 2026
e305c27
Merge remote-tracking branch 'origin/main' into fx-12843
Oct 2, 2026
dd10585
Merge remote-tracking branch 'origin/main' into fx-13156
Oct 2, 2026
bb6f2cb
fix(web-search): reworded Perplexity no-sources error and added chang…
Oct 2, 2026
77e0515
fix(coding-agent): encoded Claude project dirs with Claude Code's non…
Oct 2, 2026
070feba
fix(coding-agent): restored message_update handler gate and moved cha…
Oct 2, 2026
9a1826d
fix(eval): forwarded all wait() args from un-awaited JS handles
Oct 2, 2026
6f2e2e6
test(eval): moved JS wait() timeout cases into the vm-sandboxed prelu…
Oct 2, 2026
0161797
docs(changelog): noted JS wait() positional timeout fix
Oct 2, 2026
d4cbe09
docs(utils): moved temp removal GC changelog entry to Unreleased
Oct 2, 2026
fa7ef12
test(utils): replaced sync GC wiring test with a leaked SQLite statem…
Oct 2, 2026
8395f7a
fix(omp-rpc): settled the group after SIGKILL and kept every unreaped…
Oct 2, 2026
73b8693
fix(collab): refused extension-initiated turns while joined as a guest
Oct 2, 2026
877bdc4
fix(collab): addressed lifecycle mirror review nits and added changel…
Oct 2, 2026
5470299
fix(catalog): excluded every grok-imagine-video sku from supergrok
can1357 Oct 2, 2026
9af1629
docs(changelog): moved unreleased entries into 18.4.11
can1357 Oct 2, 2026
c0b3937
test(pi-edit): gated the verbatim-prefix strip test to windows
can1357 Oct 2, 2026
27003a3
Merge PR #12838: fix(web-search): classify Perplexity anonymous signu…
Oct 2, 2026
005e270
Merge PR #13044: fix(utils): force a GC before retrying temp dir remo…
Oct 2, 2026
8faf869
Merge PR #13363: fix(coding-agent): encode Windows drive colons in Cl…
Oct 2, 2026
a38f7ee
Merge PR #13244: perf(coding-agent): reduce streaming event queue ove…
Oct 2, 2026
3d366f3
Merge PR #12720: fix(eval): accept positional timeout in JS wait() vi…
Oct 2, 2026
6a5ccf1
Merge PR #13156: fix(collab): mirror guest lifecycle events to the ex…
Oct 2, 2026
1f12e49
Merge PR #12843: fix(omp-rpc): verify teardown and retain a survivor …
Oct 2, 2026
36c35b4
docs(changelog): dropped entries re-added by merges that already ship…
Oct 2, 2026
3e4432c
fix(coding-agent): read version from packument when registry answers …
Oct 2, 2026
11464e0
fix(coding-agent): only fall back on malformed dist-tag body; cover i…
Oct 2, 2026
283d0ec
docs(coding-agent): drop changelog line already released in 18.4.11
Oct 2, 2026
8bd8bcc
Merge PR #14115: fix(coding-agent): read version from packument when …
H4vC Oct 2, 2026
c7b8407
fix(coding-agent): keep wait and proc:// working when the daemon brok…
Oct 2, 2026
e71701b
docs(coding-agent): credit #14120 in changelog
Oct 2, 2026
554183d
fix(coding-agent): route superseded agent:// reads through the banner…
Oct 2, 2026
a2f8e1b
Merge pull request #14120 from H4vC/fix/subagent-wait-proc
H4vC Oct 2, 2026
21b46bd
feat(coding-agent): handed subagent verification off to main agent
can1357 Oct 2, 2026
d3d9ea0
feat(tui): applied tsp undo events from tern's native composer
can1357 Oct 2, 2026
9564980
feat(coding-agent): added auth-gateway stdio inference server
can1357 Oct 2, 2026
235a0f3
chore: rewrite changelog
can1357 Oct 2, 2026
7318a70
chore: bump version to 18.4.12
can1357 Oct 2, 2026
9f51115
feat(coding-agent): /dump also dumps children subagents recursively
Sep 30, 2026
6496b35
docs(coding-agent): credit /dump subagents changelog entry
Sep 30, 2026
e3295b7
fix(coding-agent): skip advisor transcripts in /dump subagents, keep …
Sep 30, 2026
15e44f6
feat(coding-agent): move subagent dumps to /dump all zip archive
Oct 2, 2026
ce490c9
fix(coding-agent): keep sub-session discovery off the registry import…
Oct 2, 2026
c041e68
docs(coding-agent): keep /dump all changelog entries under Unreleased
Oct 2, 2026
0e2411c
Merge PR #13908: feat(coding-agent): /dump all writes a zip with each…
H4vC Oct 2, 2026
a8accc1
fix(session): key the ownership lease by session id
andrebrait Oct 2, 2026
2f55c0c
Merge pull request #13747 from abilliontokens/same-model-retry
H4vC Oct 2, 2026
313a64a
feat(coding-agent): show command reports outside the transcript
Oct 2, 2026
633d51f
docs(coding-agent): credit #14136 in changelog
Oct 2, 2026
079c685
fix(coding-agent): address report panel review nits
Oct 2, 2026
58859b4
Merge PR #14136: feat(coding-agent): show command reports outside the…
H4vC Oct 2, 2026
21ad677
feat(coding-agent): show /jobs, /mcp and /ssh reports outside the tra…
Oct 2, 2026
4f058cf
docs(coding-agent): credit #14138 in changelog
Oct 2, 2026
c4f539e
Merge PR #14095: fix(session): key the ownership lease by session id …
H4vC Oct 2, 2026
11b8025
test(coding-agent): exercise native /jobs end to end; restore the nat…
Oct 2, 2026
cf2d9c1
Merge PR #14138: feat(coding-agent): show /jobs, /mcp and /ssh report…
H4vC Oct 2, 2026
8110c00
merge: sync with upstream can1357/oh-my-pi (main, cf2d9c1a97)
todie Oct 2, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
18 changes: 17 additions & 1 deletion .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
common --enable_platform_specific_config

# Hermetic-ish action env: no host env leaks into action keys. Build scripts
# that need host tools (cmake for audiopus_sys' bundled opus) get an explicit
# that need host tools (cmake for opusic-sys' bundled Opus) get an explicit
# PATH through crate annotations in MODULE.bazel.
build --incompatible_strict_action_env

Expand All @@ -32,6 +32,22 @@ build --@rules_rust//rust/settings:error_format=human
# Generated toolchains carry target_settings requiring the nightly channel.
build --@rules_rust//rust/toolchain/channel=nightly

# Pin the macOS deployment target for target and exec links. Unset, the
# autodetected cc toolchain uses the selected SDK version: 10.11 under Command
# Line Tools but 27.0 under full Xcode 27 (xcode-27 runners), which would lock
# the addon to macOS 27+. 12.0 matches the Foundation Models bridge's Swift
# target.
build:macos --macos_minimum_os=12.0
build:macos --host_macos_minimum_os=12.0
# rustc strips Apple binaries with its bundled rust-objcopy, which leaves
# minos >= 12.0 dylibs with a LINKEDIT string pool dyld rejects ("mis-aligned
# LINKEDIT string pool"); rustc reports that for every proc-macro as E0463
# "can't find crate". Strip at link time instead (-S drops debug info, the
# opt-mode `strip=debuginfo` equivalent). Exec links (proc-macros, build
# scripts) are covered here; the shipped addon in bazel/defs.bzl.
build:macos --@rules_rust//rust/settings:extra_exec_rustc_flag=-Cstrip=none
build:macos --@rules_rust//rust/settings:extra_exec_rustc_flag=-Clink-arg=-Wl,-S


# --- Rust validation (replaces cargo clippy/nextest in CI) --------------------
# Mirrors cargo semantics: crates with `[lints] workspace = true` (pi-ast,
Expand Down
26 changes: 5 additions & 21 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,30 +1,14 @@
# Cargo environment for the workspace.
#
# audiopus_sys 0.2.2 builds its vendored Opus via the `cmake` crate, and the
# bundled opus CMakeLists still declares `cmake_minimum_required(VERSION 3.1)`.
# CMake 4.0 removed compatibility with < 3.5, so any dev host with a modern
# cmake fails `cargo check`/`cargo clippy` on pi-voice with
# "Compatibility with CMake < 3.5 has been removed from CMake." The bazel build
# already sets this override for the same crate (see the audiopus_sys
# annotation in MODULE.bazel); mirror it here so the cargo path works too.
# Native CMake builds use Ninja: Xcode's GNU make 3.81 can block while reading
# cargo's forwarded jobserver pipe. CI images and the Nix dev shell include
# Ninja; macOS dev hosts need `brew install ninja`.
[env]
CMAKE_POLICY_VERSION_MINIMUM = "3.5"
# The Makefile generator can wedge cargo forever on macOS: the `cmake` crate
# forwards cargo's jobserver via MAKEFLAGS, and Xcode's GNU make 3.81 blocks
# reading a jobserver pipe whose write end doesn't survive `cmake -E env`
# (observed in omp with whisper-rs-sys; audiopus_sys uses the same crate).
# Ninja schedules itself and ignores make's jobserver protocol entirely.
# CI needs no setup: the only cargo invocations there (cargo-deny/fetch) never
# build cmake crates, workspace Rust compiles via Bazel (which ignores this
# file, opus pinned in MODULE.bazel), and nix builds already carry ninja in
# nativeBuildInputs. Dev hosts need ninja (nix dev-shell provides it; macOS:
# `brew install ninja`).
CMAKE_GENERATOR = "Ninja"
# Store each crate's metadata only in its .rmeta instead of duplicating it into
# every rlib. Measured on a reqwest-sized graph: 196 MB -> 130 MB target dir at
# identical build times. Requires the pinned nightly (rust-toolchain.toml).
# The accepted spelling is toolchain-coupled: cargo took `"DoNotEmbed"` before
# ~2026-08 and a bare boolean after. This matches nightly-2026-08-08; if you
# bump rust-toolchain.toml backwards, switch to `"DoNotEmbed"`.
# The accepted spelling is toolchain-coupled: this nightly accepts a bare
# boolean, while older nightlies took `"DoNotEmbed"`.
[unstable]
embed-metadata = false
8 changes: 4 additions & 4 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
#
# Doctests are NOT run by nextest (upstream limitation: they have no stable
# libtest-json interface). `scripts/run-rs-task.ts` pairs the nextest run with
# `cargo test --doc`. That pass executes nothing today — pi-natives is a
# `cdylib` (rustdoc collects no doctests from it) and pi-builtins' examples are
# `ignore`d vendored uutils docs — and is kept so the first runnable doctest
# added to a lib crate actually runs.
# `cargo test --doc`, which runs every runnable doctest in the workspace's lib
# crates. Today that is tree-sitter-go's one example: pi-natives is a `cdylib`
# (rustdoc collects no doctests from it) and pi-builtins' examples are
# `ignore`d vendored uutils docs.

[profile.default]
# Print each failure when it happens and again in the final summary — a run
Expand Down
7 changes: 7 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,10 @@ poetry.lock -text
# Changelogs are append-mostly; auto-merge by unioning both sides.
packages/*/CHANGELOG.md merge=union

# Generated, minified catalog artifacts: regenerate instead of diffing/merging.
packages/catalog/src/models.json binary
packages/catalog/src/compat/rules.json binary

# Generated tree-sitter parser: regenerate from grammar.js (see its README.md).
crates/vendor/tree-sitter-go/src/parser.c linguist-generated

4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## What

<!-- Brief description of the change -->
<!-- Brief description of the change. Include at least one sentence in your own words explaining what changed and why, as required by CONTRIBUTING.md. -->

## Why

Expand All @@ -14,4 +14,4 @@

- [ ] `bun check` passes
- [ ] Tested locally
- [ ] CHANGELOG updated (if user-facing)
- [ ] CHANGELOG updated with the required attribution (if user-facing; internal issue fixes use issue links, external contributions add the PR link and contributor credit after creation)
25 changes: 23 additions & 2 deletions .github/actions/bazel-cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,24 @@ description: >
entries untouched for 14 days are pruned before the build so
ever-seeding archives don't grow without bound.

Only main saves. actions/cache entries are scoped to the ref that saved
them: a tag or branch run can read main's archives, but whatever it saves
is readable only by that same ref, while still counting against the
shared 10 GB repo quota. A tag-dispatched release saved a ~5 GB darwin
archive under refs/tags/v18.2.10 and GitHub's LRU eviction then dropped
main's darwin archives, so the next release built cold.

inputs:
scope:
description: Disk-cache key discriminator shared by compatible consumers
required: true
fallback-scope:
description: >
Optional scope whose newest archive is the last restore fallback
(e.g. the sibling darwin target on the same runner image, which
shares every exec-config action). Empty disables it.
required: false
default: ""

outputs:
rc:
Expand All @@ -37,7 +51,7 @@ outputs:
description: Exact GitHub cache key for a later explicit save
value: ${{ steps.backend.outputs.cache-key }}
save-needed:
description: Whether a disk-cache build can save a new exact-key archive
description: Whether this run should save a new exact-key disk-cache archive (hosted, inexact restore, on main)
value: ${{ steps.compose.outputs.save-needed }}
remote:
description: Whether the shell probe selected the cluster remote cache
Expand Down Expand Up @@ -65,11 +79,16 @@ runs:
key="bazel-disk-v3-${{ inputs.scope }}-${{ runner.os }}-${{ runner.arch }}-$CONFIG_HASH-$SOURCE_HASH"
prefix="bazel-disk-v3-${{ inputs.scope }}-${{ runner.os }}-${{ runner.arch }}-$CONFIG_HASH-"
bare_prefix="bazel-disk-v3-${{ inputs.scope }}-${{ runner.os }}-${{ runner.arch }}-"
fallback_prefix=""
if [ -n "${{ inputs.fallback-scope }}" ]; then
fallback_prefix="bazel-disk-v3-${{ inputs.fallback-scope }}-${{ runner.os }}-${{ runner.arch }}-"
fi
{
echo "remote=$remote"
echo "cache-key=$key"
echo "cache-prefix=$prefix"
echo "cache-bare-prefix=$bare_prefix"
echo "cache-fallback-prefix=$fallback_prefix"
} >> "$GITHUB_OUTPUT"

- name: Restore bazel disk cache
Expand All @@ -94,17 +113,19 @@ runs:
restore-keys: |
${{ steps.backend.outputs.cache-prefix }}
${{ steps.backend.outputs.cache-bare-prefix }}
${{ steps.backend.outputs.cache-fallback-prefix }}

- name: Compose cache config
id: compose
shell: bash
env:
REMOTE: ${{ steps.backend.outputs.remote }}
RESTORE_HIT: ${{ steps.restore.outputs.cache-hit }}
ON_MAIN: ${{ github.ref == 'refs/heads/main' }}
run: |
set -euo pipefail
save_needed=false
if [ "$REMOTE" != "true" ] && [ "$RESTORE_HIT" != "true" ]; then
if [ "$REMOTE" != "true" ] && [ "$RESTORE_HIT" != "true" ] && [ "$ON_MAIN" = "true" ]; then
save_needed=true
fi

Expand Down
11 changes: 10 additions & 1 deletion .github/actions/bazel-natives/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@ inputs:
description: Disk-cache key discriminator (see bazel-cache action)
required: false
default: natives
fallback-scope:
description: Optional second scope whose newest archive seeds this one when it has none (same runner image only)
required: false
default: ""
save:
description: Save the refreshed disk-cache archive when the bazel-cache action says one is needed
required: false
default: "true"

runs:
using: composite
Expand All @@ -25,6 +33,7 @@ runs:
uses: ./.github/actions/bazel-cache
with:
scope: ${{ inputs.cache-scope }}
fallback-scope: ${{ inputs.fallback-scope }}

- name: Build native addons
shell: bash
Expand All @@ -40,7 +49,7 @@ runs:
read -r -a targets <<< "$NATIVE_TARGETS"
bun scripts/bazel-natives.ts "${targets[@]}" --dest "$NATIVE_DEST"
- name: Save bazel disk cache
if: steps.cache.outputs.save-needed == 'true'
if: steps.cache.outputs.save-needed == 'true' && inputs.save == 'true'
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
# Must mirror the restore path list in the bazel-cache action.
Expand Down
44 changes: 31 additions & 13 deletions .github/actions/bun-install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,25 +14,41 @@ runs:
shell: bash
run: |
# bun is baked into the omp-kata runner image — reuse it only when it
# matches the repo pin (package.json "packageManager"). A lagging
# preloaded bun skews version-sensitive codegen (gen:tool-views) and
# test-runner behavior, so a mismatch fetches the pinned build instead.
# satisfies the repo pin (package.json "packageManager"). The pin is
# either exact ("bun@1.4.2") or a floor ("bun@>=1.4"): an exact pin
# installs that build on mismatch, a floor installs latest when the
# preloaded bun is older than the floor. A lagging preloaded bun skews
# version-sensitive codegen (gen:tool-views) and test-runner behavior.
want="$(sed -n 's/.*"packageManager": *"bun@\([^"]*\)".*/\1/p' package.json)"
if [ -z "$want" ]; then
echo "::error::could not read pinned bun version from package.json packageManager"
exit 1
fi
echo "bun_version=$want" >> "$GITHUB_OUTPUT"
case "$want" in
'>='*) floor="${want#>=}"; install="latest" ;;
*) floor="$want"; install="bun-v$want" ;;
esac
# bun.sh/install takes a release tag argument; "latest" is spelled as no argument.
echo "bun_install=$([ "$install" = latest ] || echo "$install")" >> "$GITHUB_OUTPUT"
have=""
if command -v bun >/dev/null 2>&1; then
have="$(bun --version)"
fi
if [ "$have" = "$want" ]; then
ok=false
if [ -n "$have" ]; then
if [ "$install" = latest ]; then
# floor satisfied when the floor sorts first (or equal) under sort -V
[ "$(printf '%s\n%s\n' "$floor" "$have" | sort -V | head -n1)" = "$floor" ] && ok=true
elif [ "$have" = "$want" ]; then
ok=true
fi
fi
if [ "$ok" = true ]; then
echo "setup_bun=false" >> "$GITHUB_OUTPUT"
echo "bun present: $have (matches pin)"
echo "bun present: $have (satisfies $want)"
else
echo "setup_bun=true" >> "$GITHUB_OUTPUT"
echo "bun on runner: ${have:-none}; installing pinned $want"
echo "bun on runner: ${have:-none}; does not satisfy $want, installing $install"
fi
# The repo keys "are we on can.internal infra?" off $BAZEL_REMOTE_USER
# (the bazel-remote-ci secret is envFrom-injected into every omp-kata
Expand All @@ -51,16 +67,18 @@ runs:
shell: bash
run: |
export BUN_INSTALL="${HOME}/.bun"
curl -fsSL https://bun.sh/install | bash -s "bun-v${{ steps.env.outputs.bun_version }}"
# Unquoted on purpose: an empty tag (floor pin) must pass no argument, which the
# script reads as "latest".
curl -fsSL https://bun.sh/install | bash -s -- ${{ steps.env.outputs.bun_install }}
echo "${BUN_INSTALL}/bin" >> "$GITHUB_PATH"

# Off-infra (GitHub-hosted): actions/cache for the bun store, split into
# restore + save. actions/cache entries are scoped per ref but count
# against the shared 10 GB repo quota — letting every PR branch save its
# own copy of the ~500 MB store duplicated it 19x, evicting the far more
# valuable bazel disk-cache archives (which is why release darwin builds
# kept going cold). PRs only restore; non-PR runs (main pushes, releases,
# dispatches) produce the shared entry every PR can see.
# kept going cold). Only main saves: a tag or branch copy is readable by
# that ref alone, so it wastes quota; every other ref restores main's.
- name: Restore bun store (GitHub cache)
id: bun-cache
if: steps.env.outputs.cache == 'gha'
Expand Down Expand Up @@ -100,10 +118,10 @@ runs:
retry_cache="$(mktemp -d "${RUNNER_TEMP:-/tmp}/bun-cache-retry.XXXXXX")"
bun install --frozen-lockfile --cache-dir="$retry_cache"

# Producer half of the split cache: only non-PR runs save, so the store
# exists once per lockfile generation instead of once per PR ref.
# Producer half of the split cache: only main saves, so the store exists
# once per lockfile generation instead of once per ref.
- name: Save bun store (GitHub cache)
if: steps.env.outputs.cache == 'gha' && github.event_name != 'pull_request' && steps.bun-cache.outputs.cache-hit != 'true'
if: steps.env.outputs.cache == 'gha' && github.ref == 'refs/heads/main' && steps.bun-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ~/.bun/install/cache
Expand Down
Loading
Loading