fix(relay): stale Relay workers no longer flood a reopened thread - #852
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
|
Deployment failed for project pylon-marketing with the following error: Learn More: https://vercel.com/pylon-code?upgradeToPro=build-rate-limit |
|
Added the projection cleanup for installs that already booted the earlier build. Migration Dry-run against the affected projection: 286 of 286 outage rows in the database match the predicate, i.e. every one of them is an orphan and none are legitimate.
|
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
Blocking review findings at head 69729d0:
The historical never-projected binding case is valuable and should stay quiet. I have not merged this PR or run its migration against live data. |
The startup receipt scan adopts every Relay MCP tool call ever recorded, so the first boot after the worker bridge shipped bound 284 long-finished jobs across 207 old turns. None could be observed, and each one published an idle "Relay observer unavailable" row into its original turn, dated now -- a wall of stale subagent cards on reopening the thread. An outage row now only explains a worker the thread already started, and an announced outage pushes its recheck back out instead of spawning the Relay CLI on every sweep for the life of the process.
The bridge no longer announces a worker it never started, but every projection that booted the earlier build still holds the idle rows it wrote. Drop the outage rows whose task has no start in the same thread, leaving the ones that explain a worker the thread really ran.
An outage that had already been announced returned before pushing its recheck back out, so every binding kept a Relay CLI spawn on each sweep. Adopted history made that 284 spawns a sweep on one projection. Push the recheck out for a worker that may still return, and retire a binding outright once Relay itself reports the job gone and nothing about it ever reached the thread. Absent Relay says nothing about the job, so that case keeps the binding and only slows the recheck. The four copies of the teardown are now one helper.
69729d0 to
477e60a
Compare
|
Rebased onto the latest An outage that had already been announced returned early without pushing its recheck back out, so every such binding kept a Relay CLI spawn on each sweep — 284 spawns a sweep, indefinitely, on the affected projection. Now a worker that may still return has its recheck pushed out, and a binding is retired outright once Relay itself reports the job gone and nothing about it ever reached the thread. Relay being absent says nothing about the job, so that case keeps the binding and only slows the recheck. The four copies of the teardown are now one helper. Steady-state Relay CLI spawns for adopted history go from continuous to zero; boot still re-checks each adopted binding once.
Companion fix for the second, unrelated defect in the same screenshots (background shell tasks stamped as agents on their terminal row): #853. |
A task's agent-vs-background identity was judged one row at a time. The next provider process settles a watcher it never launched and reports only the task id and status, so ingestion stamped that bare row "agent" even though the task had started as local_bash. The timeline then minted a subagent card per orphan, and the Agents panel — which still read the task as background — could never resolve it, so each card sat on "Ran 1 subagent · Status unavailable" forever. Resolve the classification across the thread instead: a task that names a background type anywhere keeps that identity, so a later bare row cannot promote it. Only a named background type makes the claim sticky, because Relay workers and native subagents legitimately carry no type at all and must keep deciding by their stamp.
* docs(upstream): correct deferred thought preview disposition * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * Start provider event worker before service exposure (#828) * fix(server): bind retained usage to verified accounts (#833) * fix: bind retained provider usage to verified accounts * fix(server): tag Codex reset identity failures * Sync linked PR changes and settle configured threads on events (#834) * fix(devices): identify legacy Android SDK command-line tools (#780) * feat(server): configure worktree submodule initialization (#800) * feat(server): configure worktree submodule initialization Adapt upstream 1262d2f3, 742173a1, and 0141bc2b for Pylon project settings and worktree entry points. * test(server): assert default submodule resolution in worktree recovery * perf(server): scope worktree fetch and parallel checkout (#820) * fix(desktop): bound WSL runtime cache retries and scratch cleanup (#741) * fix(desktop): bound WSL runtime cache retries and scratch cleanup * test(desktop): release WSL fixture lock with its holder * test(desktop): clean up WSL lock fixture on failure * test(desktop): trace WSL scratch lock shell regression * test(desktop): synchronize WSL prune lock fixture * fix(desktop): bound backend shutdown during quit (#763) * fix(desktop): bound backend shutdown wait during quit (#7599) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 8ddd9f7efcdfb6e32b614595242b5986942d37b0) * fix(desktop): bound whole backend stop during quit --------- Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * docs(claude): clarify OpenRouter model selection (#816) * fix(web): label message copy action accurately (#779) * fix(web): keep PR checkout command during detail loading (#785) * fix(web): expose selected menu choices to assistive tech (#806) * fix(web): keep provider account emails readable (#810) * fix(web): expose switch state to screen readers (#755) * fix(mobile): show Move down icon on Android (#776) * fix(web): allow selecting text while renaming a thread (#807) * fix(server): preserve sibling checkpoint refs during rollback (#847) * fix(server): keep checkpoint failures out of public output (#851) * fix(server): reject stale Prime rollback responses after reconnect (#848) * feat(web): improve command and settings discovery (#801) * fix(web): keep settled threads closed when adding projects (#792) * fix(web): keep selection actions dismissed after button presses (#808) * fix(usage): distinguish unavailable limits from empty limits (#781) * fix(mobile): send terminal delete from software keyboard (#770) * feat(mobile): copy thread IDs from list actions (#795) * fix(mobile): retain archive list during iOS search (#797) * fix(web): sort equally relevant thread search results by activity (#809) * feat(web): improve command and settings discovery * fix(web): sort equally relevant thread matches by activity * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * Start provider event worker before service exposure (#828) * fix(server): bind retained usage to verified accounts (#833) * fix: bind retained provider usage to verified accounts * fix(server): tag Codex reset identity failures * Sync linked PR changes and settle configured threads on events (#834) * fix(devices): identify legacy Android SDK command-line tools (#780) * feat(server): configure worktree submodule initialization (#800) * feat(server): configure worktree submodule initialization Adapt upstream 1262d2f3, 742173a1, and 0141bc2b for Pylon project settings and worktree entry points. * test(server): assert default submodule resolution in worktree recovery * perf(server): scope worktree fetch and parallel checkout (#820) * fix(desktop): bound WSL runtime cache retries and scratch cleanup (#741) * fix(desktop): bound WSL runtime cache retries and scratch cleanup * test(desktop): release WSL fixture lock with its holder * test(desktop): clean up WSL lock fixture on failure * test(desktop): trace WSL scratch lock shell regression * test(desktop): synchronize WSL prune lock fixture * fix(desktop): bound backend shutdown during quit (#763) * fix(desktop): bound backend shutdown wait during quit (#7599) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 8ddd9f7efcdfb6e32b614595242b5986942d37b0) * fix(desktop): bound whole backend stop during quit --------- Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * docs(claude): clarify OpenRouter model selection (#816) * fix(web): label message copy action accurately (#779) * fix(web): keep PR checkout command during detail loading (#785) * fix(web): expose selected menu choices to assistive tech (#806) * fix(web): keep provider account emails readable (#810) * fix(web): expose switch state to screen readers (#755) * fix(mobile): show Move down icon on Android (#776) * fix(web): allow selecting text while renaming a thread (#807) * fix(server): preserve sibling checkpoint refs during rollback (#847) * fix(server): keep checkpoint failures out of public output (#851) * fix(server): reject stale Prime rollback responses after reconnect (#848) * feat(web): improve command and settings discovery (#801) * fix(web): keep settled threads closed when adding projects (#792) * fix(web): keep selection actions dismissed after button presses (#808) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> * fix(usage): refresh limits when the tab opens (#789) * fix(web): keep sidebar shelf rows moving together (#793) * fix(web): dismiss host menus on browser guest focus (#775) * fix(web): restore composer focus after option menus close (#782) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com>
|
Follow-up to the blocking review at 69729d0: pushed 245db4d on the PR branch after merging current |
Retirement only lived in memory, so every job the environment had ever run was adopted and re-probed on each start -- a cost that grows with history and never settles. Record the retirement on the binding row itself. The activity upserts on its id, so this writes no new row and stays out of the transcript, and boot skips the binding unless an activation was recorded after the watermark. A resume outranks the retirement and wakes the worker, then answers to the ordinary rules again.
* fix(web): leave browser Mod-digit tabs to the browser * fix(server): distinguish persisted shortcut defaults from custom sets * fix(server): migrate only the complete legacy shortcut family
|
Closed the last open item rather than leaving it as a known cost, and picked up the Retirement is now durable. It only lived in memory, so every job the environment had ever run was re-adopted and re-probed at each start — a cost that grows with history and never settles. I had called that "bounded, one-time per restart"; it wasn't. It is now recorded on the binding row itself. The watermark is a row id, not a timestamp — this file already orders recovery that way, and same-millisecond writes are common (the test clock exposed exactly that). For an environment with 284 adopted historical jobs: 852 Relay CLI spawns at every start → 852 once, then zero.
|
…efusal (#854) Codex allows one writer per conversation across every app on the machine. When another Codex host holds that lock, `thread/resume` fails with `thread <id> already has an active writer`, which Pylon passed straight through to the thread as a provider adapter error. Nothing told the user which app held the conversation or that closing it there was the fix. Detect that refusal at the resume site and replace it with a message naming the conversation and the action that releases it. The error stays a failure on purpose: falling back to `thread/start` here would strand the conversation's history behind a fresh one, so the recoverable-resume path must keep ignoring it. Adds a triage entry for the same symptom.
* fix(web): keep PR panel handoffs in the current thread * Complete shortcut context fixture for web * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * Start provider event worker before service exposure (#828) * fix(server): bind retained usage to verified accounts (#833) * fix: bind retained provider usage to verified accounts * fix(server): tag Codex reset identity failures * Sync linked PR changes and settle configured threads on events (#834) * fix(devices): identify legacy Android SDK command-line tools (#780) * feat(server): configure worktree submodule initialization (#800) * feat(server): configure worktree submodule initialization Adapt upstream 1262d2f3, 742173a1, and 0141bc2b for Pylon project settings and worktree entry points. * test(server): assert default submodule resolution in worktree recovery * perf(server): scope worktree fetch and parallel checkout (#820) * fix(desktop): bound WSL runtime cache retries and scratch cleanup (#741) * fix(desktop): bound WSL runtime cache retries and scratch cleanup * test(desktop): release WSL fixture lock with its holder * test(desktop): clean up WSL lock fixture on failure * test(desktop): trace WSL scratch lock shell regression * test(desktop): synchronize WSL prune lock fixture * fix(desktop): bound backend shutdown during quit (#763) * fix(desktop): bound backend shutdown wait during quit (#7599) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 8ddd9f7efcdfb6e32b614595242b5986942d37b0) * fix(desktop): bound whole backend stop during quit --------- Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * docs(claude): clarify OpenRouter model selection (#816) * fix(web): label message copy action accurately (#779) * fix(web): keep PR checkout command during detail loading (#785) * fix(web): expose selected menu choices to assistive tech (#806) * fix(web): keep provider account emails readable (#810) * fix(web): expose switch state to screen readers (#755) * fix(mobile): show Move down icon on Android (#776) * fix(web): allow selecting text while renaming a thread (#807) * fix(server): preserve sibling checkpoint refs during rollback (#847) * fix(server): keep checkpoint failures out of public output (#851) * fix(server): reject stale Prime rollback responses after reconnect (#848) * feat(web): improve command and settings discovery (#801) * fix(web): keep settled threads closed when adding projects (#792) * fix(web): keep selection actions dismissed after button presses (#808) * fix(usage): distinguish unavailable limits from empty limits (#781) * fix(mobile): send terminal delete from software keyboard (#770) * feat(mobile): copy thread IDs from list actions (#795) * fix(mobile): retain archive list during iOS search (#797) * fix(web): sort equally relevant thread search results by activity (#809) * feat(web): improve command and settings discovery * fix(web): sort equally relevant thread matches by activity * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * Start provider event worker before service exposure (#828) * fix(server): bind retained usage to verified accounts (#833) * fix: bind retained provider usage to verified accounts * fix(server): tag Codex reset identity failures * Sync linked PR changes and settle configured threads on events (#834) * fix(devices): identify legacy Android SDK command-line tools (#780) * feat(server): configure worktree submodule initialization (#800) * feat(server): configure worktree submodule initialization Adapt upstream 1262d2f3, 742173a1, and 0141bc2b for Pylon project settings and worktree entry points. * test(server): assert default submodule resolution in worktree recovery * perf(server): scope worktree fetch and parallel checkout (#820) * fix(desktop): bound WSL runtime cache retries and scratch cleanup (#741) * fix(desktop): bound WSL runtime cache retries and scratch cleanup * test(desktop): release WSL fixture lock with its holder * test(desktop): clean up WSL lock fixture on failure * test(desktop): trace WSL scratch lock shell regression * test(desktop): synchronize WSL prune lock fixture * fix(desktop): bound backend shutdown during quit (#763) * fix(desktop): bound backend shutdown wait during quit (#7599) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 8ddd9f7efcdfb6e32b614595242b5986942d37b0) * fix(desktop): bound whole backend stop during quit --------- Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * docs(claude): clarify OpenRouter model selection (#816) * fix(web): label message copy action accurately (#779) * fix(web): keep PR checkout command during detail loading (#785) * fix(web): expose selected menu choices to assistive tech (#806) * fix(web): keep provider account emails readable (#810) * fix(web): expose switch state to screen readers (#755) * fix(mobile): show Move down icon on Android (#776) * fix(web): allow selecting text while renaming a thread (#807) * fix(server): preserve sibling checkpoint refs during rollback (#847) * fix(server): keep checkpoint failures out of public output (#851) * fix(server): reject stale Prime rollback responses after reconnect (#848) * feat(web): improve command and settings discovery (#801) * fix(web): keep settled threads closed when adding projects (#792) * fix(web): keep selection actions dismissed after button presses (#808) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> * fix(usage): refresh limits when the tab opens (#789) * fix(web): keep sidebar shelf rows moving together (#793) * fix(web): dismiss host menus on browser guest focus (#775) * fix(web): restore composer focus after option menus close (#782) * Use PR summary for hover previews (#831) * fix(web): match notification icons to thread events (#813) * fix(web): reveal composer context labels in tooltips (#829) * fix(agents): keep orphaned shell tasks out of the subagent cards (#853) A task's agent-vs-background identity was judged one row at a time. The next provider process settles a watcher it never launched and reports only the task id and status, so ingestion stamped that bare row "agent" even though the task had started as local_bash. The timeline then minted a subagent card per orphan, and the Agents panel — which still read the task as background — could never resolve it, so each card sat on "Ran 1 subagent · Status unavailable" forever. Resolve the classification across the thread instead: a task that names a background type anywhere keeps that identity, so a later bare row cannot promote it. Only a named background type makes the claim sticky, because Relay workers and native subagents legitimately carry no type at all and must keep deciding by their stamp. * fix(mobile): expose connection trace copy actions accessibly (#827) * feat(web): show timestamps on timeline work rows (#825) * fix(mobile): ignore bare wake links without navigation routes (#772) * fix(web): show pull request edit actions on touch (#802) * docs(upstream): correct deferred thought preview disposition (#773) * docs(upstream): correct deferred thought preview disposition * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record p…
|
The exact-head code CI failure in Test Server 2 is an unrelated Prime daemon test that uses a 5 ms timeout for both private-socket cleanup and the later post-kill receipt assertion. I isolated the test reliability fix in #855; its focused suite and server typecheck pass. Once #855 is green and merged, I will sync this Relay branch to that base and require a fresh green run here before merging. |
* feat(web): add bounded route history shortcuts * fix(web): provide browser shortcut context for history navigation * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * Start provider event worker before service exposure (#828) * fix(server): bind retained usage to verified accounts (#833) * fix: bind retained provider usage to verified accounts * fix(server): tag Codex reset identity failures * Sync linked PR changes and settle configured threads on events (#834) * fix(devices): identify legacy Android SDK command-line tools (#780) * feat(server): configure worktree submodule initialization (#800) * feat(server): configure worktree submodule initialization Adapt upstream 1262d2f3, 742173a1, and 0141bc2b for Pylon project settings and worktree entry points. * test(server): assert default submodule resolution in worktree recovery * perf(server): scope worktree fetch and parallel checkout (#820) * fix(desktop): bound WSL runtime cache retries and scratch cleanup (#741) * fix(desktop): bound WSL runtime cache retries and scratch cleanup * test(desktop): release WSL fixture lock with its holder * test(desktop): clean up WSL lock fixture on failure * test(desktop): trace WSL scratch lock shell regression * test(desktop): synchronize WSL prune lock fixture * fix(desktop): bound backend shutdown during quit (#763) * fix(desktop): bound backend shutdown wait during quit (#7599) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 8ddd9f7efcdfb6e32b614595242b5986942d37b0) * fix(desktop): bound whole backend stop during quit --------- Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * docs(claude): clarify OpenRouter model selection (#816) * fix(web): label message copy action accurately (#779) * fix(web): keep PR checkout command during detail loading (#785) * fix(web): expose selected menu choices to assistive tech (#806) * fix(web): keep provider account emails readable (#810) * fix(web): expose switch state to screen readers (#755) * fix(mobile): show Move down icon on Android (#776) * fix(web): allow selecting text while renaming a thread (#807) * fix(server): preserve sibling checkpoint refs during rollback (#847) * fix(server): keep checkpoint failures out of public output (#851) * fix(server): reject stale Prime rollback responses after reconnect (#848) * feat(web): improve command and settings discovery (#801) * fix(web): keep settled threads closed when adding projects (#792) * fix(web): keep selection actions dismissed after button presses (#808) * fix(usage): distinguish unavailable limits from empty limits (#781) * fix(mobile): send terminal delete from software keyboard (#770) * feat(mobile): copy thread IDs from list actions (#795) * fix(mobile): retain archive list during iOS search (#797) * fix(web): sort equally relevant thread search results by activity (#809) * feat(web): improve command and settings discovery * fix(web): sort equally relevant thread matches by activity * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * Start provider event worker before service exposure (#828) * fix(server): bind retained usage to verified accounts (#833) * fix: bind retained provider usage to verified accounts * fix(server): tag Codex reset identity failures * Sync linked PR changes and settle configured threads on events (#834) * fix(devices): identify legacy Android SDK command-line tools (#780) * feat(server): configure worktree submodule initialization (#800) * feat(server): configure worktree submodule initialization Adapt upstream 1262d2f3, 742173a1, and 0141bc2b for Pylon project settings and worktree entry points. * test(server): assert default submodule resolution in worktree recovery * perf(server): scope worktree fetch and parallel checkout (#820) * fix(desktop): bound WSL runtime cache retries and scratch cleanup (#741) * fix(desktop): bound WSL runtime cache retries and scratch cleanup * test(desktop): release WSL fixture lock with its holder * test(desktop): clean up WSL lock fixture on failure * test(desktop): trace WSL scratch lock shell regression * test(desktop): synchronize WSL prune lock fixture * fix(desktop): bound backend shutdown during quit (#763) * fix(desktop): bound backend shutdown wait during quit (#7599) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 8ddd9f7efcdfb6e32b614595242b5986942d37b0) * fix(desktop): bound whole backend stop during quit --------- Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> * docs(claude): clarify OpenRouter model selection (#816) * fix(web): label message copy action accurately (#779) * fix(web): keep PR checkout command during detail loading (#785) * fix(web): expose selected menu choices to assistive tech (#806) * fix(web): keep provider account emails readable (#810) * fix(web): expose switch state to screen readers (#755) * fix(mobile): show Move down icon on Android (#776) * fix(web): allow selecting text while renaming a thread (#807) * fix(server): preserve sibling checkpoint refs during rollback (#847) * fix(server): keep checkpoint failures out of public output (#851) * fix(server): reject stale Prime rollback responses after reconnect (#848) * feat(web): improve command and settings discovery (#801) * fix(web): keep settled threads closed when adding projects (#792) * fix(web): keep selection actions dismissed after button presses (#808) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> Co-authored-by: Ishaan Kothari <ishaanko.mail@gmail.com> * fix(usage): refresh limits when the tab opens (#789) * fix(web): keep sidebar shelf rows moving together (#793) * fix(web): dismiss host menus on browser guest focus (#775) * fix(web): restore composer focus after option menus close (#782) * Use PR summary for hover previews (#831) * fix(web): match notification icons to thread events (#813) * fix(web): reveal composer context labels in tooltips (#829) * fix(agents): keep orphaned shell tasks out of the subagent cards (#853) A task's agent-vs-background identity was judged one row at a time. The next provider process settles a watcher it never launched and reports only the task id and status, so ingestion stamped that bare row "agent" even though the task had started as local_bash. The timeline then minted a subagent card per orphan, and the Agents panel — which still read the task as background — could never resolve it, so each card sat on "Ran 1 subagent · Status unavailable" forever. Resolve the classification across the thread instead: a task that names a background type anywhere keeps that identity, so a later bare row cannot promote it. Only a named background type makes the claim sticky, because Relay workers and native subagents legitimately carry no type at all and must keep deciding by their stamp. * fix(mobile): expose connection trace copy actions accessibly (#827) * feat(web): show timestamps on timeline work rows (#825) * fix(mobile): ignore bare wake links without navigation routes (#772) * fix(web): show pull request edit actions on touch (#802) * docs(upstream): correct deferred thought preview disposition (#773) * docs(upstream): correct deferred thought preview disposition * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> Co-authored-by: Yash Singh <saiansh2525@gmail.com> * fix(grok): show monitor and background shell lifecycle (#753) * fix(agents): suppress stale awareness alerts after restart (#758) * fix(server): stop replaying old agent alerts on restart (#13340) (cherry picked from commit e4eb9977f0b02b29cb2ee361b0c433c685e87615) * fix(relay): suppress stale agent awareness terminal alerts * fix(relay): accept live lifecycle events in startup millisecond --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> * fix(usage): attribute shared homes by transcript source (#784) * fix(usage): attribute shared homes by transcript source * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) --------- Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> * fix(cursor): preserve internal agent errors (#754) * fix(ci): compare transfer ceilings only within a scenario (#759) * fix(usage): retain saved totals after transcript cleanup (#762) * fix(shared): keep the newest shared usage scan (#10315) Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> (cherry picked from commit d4d5d12e8ba086cfbf79ca3adeb4156b46ead665) * fix(usage): preserve saved totals after transcript cleanup (#12304) Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> (cherry picked from commit 675869d2b0f9e059d5950b80390c0cad1cb1590e) * fix(usage): preserve Pylon native scan limits during retention * fix(usage): retain standalone Antigravity history after cleanup * fix(usage): prune retired source identities --------- Co-authored-by: Aditya Garud <153842990+yashranaway@users.noreply.github.com> Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com> Co-authored-by: maria <maria@kuuro.net> Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com> * fix(ssh): find Linuxbrew Node on WSL hosts (#769) * fix(server): generate PR diffs from branch changes (#13170) (#742) (cherry picked from commit f22331240ed1a97fae560e314bffb75fe39db8ca) Co-authored-by: Yash Singh <saiansh2525@gmail.com> * feat(observability): honor OpenTelemetry export kill switch (#746) * feat(observability): honor OpenTelemetry export kill switch * docs(upstream): record OTLP kill switch disposition * fix(server): release orphaned input after provider session stops (#739) * fix(server): release orphaned input after provider session stops * fix(server): repair cached orphaned request counts on upgrade * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(upstream): record provider refresh disposition * style(upstream): format provider refresh decision row * fix(git): prevent stale ref checkout from restoring files (#751) * fix(shared): preserve final quoted empty CSV records (#761) * fix(server): reduce background GitHub PR quota use (#749) * fix(server): background PR checks spend less GitHub quota (#13189) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 5975ec78b7eaff654e6183b99f8de7a05591e99d) * fix(server): background PR sync reads summaries in batches (#13198) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 18de6bb328059703b5d1b0661610076e3c0fa2d4) * fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit eafb4a9340bd2c2271b7c8fac7eddd55beea3972) * fix(server): adapt quota tests to Pylon APIs * test(server): cover skipped terminal PR recheck * docs(upstream): link GitHub quota adoption * fix(server): avoid PR summary fallback on GraphQL quota failures * fix(server): preserve pending turn admission during provider bind (#752) A reused provider can still report its previous turn as running when a new exact turn is reserved. Bind that reservation as starting so matching turn.started can be accepted, reject malformed and terminal binds, and retain strict incarnation fences. * feat(chat): deliver buffered prose at natural boundaries (#757) * fix(server): show Claude subagent tool progress (#745) * fix(server): show Relay workers from installed CLI results (#744) * fix(relay): accept delegated thread IDs in activity routes (#756) * feat(prime): show child progress notes in Agents view (#748) * fix(server): bypass provider caches on explicit refresh (#743) * fix(server): bypass provider caches on explicit refresh * docs(…
* test(server): allow realistic socket cleanup before post-kill assertion * test(server): disable background Git GC in PR template fixture
Reopening a thread after a Pylon restart filled the end of the timeline with dozens of "Ran 1 subagent · 1 idle" cards for subagent runs that had finished hours earlier.
The Relay worker bridge's startup receipt scan walks the whole activity history and adopts every Relay MCP tool call it finds. On the first boot after the bridge shipped, that bound 284 long-finished jobs spanning 207 old turns in a four-second burst. Their Relay files were long gone, so every one of them failed observation and published a
task.progressrow —status: "idle", "Relay observer unavailable" — attributed to its original turn but stamped with the current time. Clients render each as a subagent card.Confirmed against a live projection: all 286
relay.bindingrows in the database and all 284relay-observer-unavailable:*rows shared a single one-minute window at server startup.An outage row now only explains a worker the thread already started, so a job that never projected anything stays quiet. An outage that has already been announced also pushes its recheck back out instead of spawning the Relay CLI on every sweep for the life of the process.
The existing assertion that a never-projected binding opens an idle row is inverted deliberately: nothing was ever shown for that worker, so there is nothing to downgrade.
Verification:
vp test run apps/server/src/orchestration/RelayWorkerBridge.test.ts apps/server/src/orchestration/ThreadBackgroundLiveness.test.ts apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.test.ts— 52 passed. New regression test fails without the source change.vp run -F t3 typecheckand lint on the changed files are clean. No UI code changed.Model: Claude Opus 5 (1M context), harness: Claude Code in Pylon.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.