Pi Agent
da85fc8db3
Allow iframe embedding: X-Frame-Options SAMEORIGIN, frame-ancestors 'self' + localhost
...
Co-authored-by: Orca <help@stably.ai>
2026-08-04 18:53:51 +02:00
nesquena-hermes
320789ae59
Merge pull request #6487 from starship-s/fix/interim-anchor-final-character
...
fix(streaming): complete interim anchor prose before tools
2026-07-31 11:58:21 -07:00
nesquena-hermes
d85eb85c25
Merge branch 'master' into fix/interim-anchor-final-character
2026-07-31 11:52:58 -07:00
nesquena-hermes
bf7d39c67a
Merge pull request #6642 from franksong2702/franksong2702/fix-gateway-terminal-persistence
...
fix: preserve gateway terminal error recovery after save failure
2026-07-31 11:52:48 -07:00
nesquena-hermes
07b33505fd
Merge branch 'master' into franksong2702/fix-gateway-terminal-persistence
2026-07-31 11:47:43 -07:00
nesquena-hermes
7ce03cbbdd
Merge pull request #6474 from franksong2702/franksong2702/viewport-scroll-anchor-6414
...
fix: restore desktop scroll on unpinned anchor miss
2026-07-31 11:47:33 -07:00
nesquena-hermes
d482a12345
Merge branch 'master' into franksong2702/viewport-scroll-anchor-6414
2026-07-31 11:40:47 -07:00
nesquena-hermes
620da54cde
Merge pull request #6650 from happy5318/fix/preflight-compression-false-positive
...
fix: stop false Compressing-context card on preflight-compression sessions
2026-07-31 11:14:31 -07:00
Nathan Esquenazi
94a2091435
Merge branch 'master' into fix/interim-anchor-final-character
2026-07-31 11:11:50 -07:00
Nathan Esquenazi
15e3e89c3c
Merge branch 'master' into franksong2702/fix-gateway-terminal-persistence
2026-07-31 11:09:50 -07:00
Nathan Esquenazi
eb1484bede
Merge branch 'master' into franksong2702/viewport-scroll-anchor-6414
2026-07-31 11:09:39 -07:00
Nathan Esquenazi
46623de2bd
Merge branch 'master' into fix/preflight-compression-false-positive
2026-07-31 11:09:09 -07:00
Frank Song
89023eb191
Live-to-Final: prove historical hydration and fence terminal retry ownership ( #6451 )
...
* test: add historical hydration lifecycle proof
* fix: retry anchor persistence after terminal app errors
* fix: fence deferred anchor settlement ownership
* test: cover deferred anchor retry ownership
* fix: preserve terminal anchor retry across refresh
* fix: bind terminal anchor retry to turn owner
---------
Co-authored-by: Frank Song <franksong2702@gmail.com>
2026-07-31 11:04:40 -07:00
happy5318
f52be26610
docs: update comments to reflect preflight exclusion reasoning
...
Clarify that preflight compression is intentionally excluded because
the later authoritative 'Compacting context' marker from
conversation_compression is the real signal that compression
proceeded. The preflight status can fire even when compression
exits before compaction (e.g. durable guard refresh, Codex-Hermes
mode with no active thread).
2026-08-01 01:47:51 +08:00
happy5318
9c1c1d8063
fix: stop false Compressing-context card for preflight compression
...
PR #6184 narrowed the agent-status-to-SSE bridge to real compression
start notices, but the 'preflight compression:' pattern matches the
Hermes agent's preflight check message ("Preflight compression: ~X
tokens >= Y threshold"). This fires on every new session where the
system prompt alone exceeds the threshold, showing a "Compressing
context" card before any model output — a false positive.
Remove 'preflight compression:' from the pattern. The preflight check
is a one-time pre-model-call estimate, not a mid-conversation
compression event that the user needs to see.
2026-08-01 01:07:12 +08:00
Frank Song
c69f1a73dc
test: exercise renderer scroll restore ownership
2026-07-31 22:24:25 +08:00
Frank Song
fd1879418d
fix: queue pinned live scroll ownership check
2026-07-31 22:24:25 +08:00
Frank Song
c32b10ee8b
test: update live scroll fixture contracts
2026-07-31 22:24:25 +08:00
Frank Song
cc5cf19710
test: exercise reachable live scroll restore boundary
2026-07-31 22:24:25 +08:00
Frank Song
a6a891f079
fix: keep live render harness fallback safe
2026-07-31 22:24:25 +08:00
Frank Song
713418dec0
test: cover live render scroll ownership boundary
2026-07-31 22:24:25 +08:00
Frank Song
7a320bea3c
fix: preserve live scroll ownership on snapshot mismatch
2026-07-31 22:24:25 +08:00
Frank Song
a55096b81f
fix: keep scroll ownership hooks harness-safe
2026-07-31 22:24:25 +08:00
Frank Song
5efc94f4b2
fix: preserve ownership of live scroll snapshots
2026-07-31 22:24:25 +08:00
Frank Song
5c3ead61a2
Restore unpinned desktop stream scroll
2026-07-31 22:24:25 +08:00
Frank Song
dadffe0e02
fix: bind gateway terminal recovery to run identity
2026-07-31 17:31:12 +08:00
Frank Song
ded12e48c5
fix: recover unsaved gateway terminal errors
2026-07-31 12:05:39 +08:00
Frank Song
2f17d1c74c
fix: mark failed gateway terminal saves as unpersisted
2026-07-31 09:57:51 +08:00
nesquena-hermes
dd7f6ac318
Merge pull request #6627 from nesquena/release/stage-6473
...
Release exp-v0.52.158: preserve live Worklog through final settlement (#6473 )
2026-07-30 11:08:44 -07:00
nesquena-hermes
dbe58ffff5
changelog: preserve live Worklog through final settlement — no blank frame ( #6473 )
2026-07-30 18:06:22 +00:00
nesquena-hermes
0f010db5be
Merge pull request #6473 from franksong2702/franksong2702/live-worklog-settle-no-blank
...
Preserve Live Worklog through final settlement
2026-07-30 11:04:46 -07:00
Frank Song
1c385e6935
Merge remote-tracking branch 'origin/master' into franksong2702/live-worklog-settle-no-blank
2026-07-31 01:27:57 +08:00
nesquena-hermes
0a40159759
Release exp-v0.52.157: reconnect transcript ordering ( #6457 ) ( #6609 )
...
Ships #6457 (@nankingjing) — one shared pending_user_message merge helper keeps the reconnect prompt above the live worklog (#6419 ). Supersedes #6465 .
2026-07-29 16:05:41 -07:00
nesquena-hermes
f989c4828d
changelog: reconnect transcript ordering — pending user above live worklog ( #6419 , #6457 )
2026-07-29 22:51:18 +00:00
nankingjing
95a1647557
fix( #6419 ): route every recovery path through one pending_user_message merge helper
...
The mid-stream reconnect path could render the just-sent user message below
the live streaming assistant response it triggered, because
`refreshSession()` appended `pending_user_message` at the end of
`S.messages` unconditionally while `loadSession()` correctly inserted
it before the first live assistant message. When the client went through
its reconnect/recovery path mid-turn (typical on iOS PWA screen
lock/resume) the live assistant tail rendered above the prompt.
Centralize every recovery/reconnect reinsertion through one
identity-aware helper (`_mergePendingSessionMessage`) that:
- inserts the owning user turn before its live assistant/Worklog tail,
- appends only when no live tail exists,
- deduplicates against the current tail user row,
- remains idempotent across repeated resume probes.
`refreshSession()` now calls the same helper instead of pushing at
the end. `loadSession()` continues to use the helper unchanged.
Adds `tests/test_issue6419_pending_user_reconnect_order.py` pinning:
- the helper is defined exactly once at module top level,
- it inserts before live assistant and falls back to append,
- `refreshSession()` uses the helper and does not push unconditionally,
- `loadSession()` still merges before renderMessages in the INFLIGHT
reattach branch.
Renames the inner end-marker in
`tests/test_gateway_sse_reconnect_dedupe.py` to a stable inside-loadSession
boundary (`// Phase 2a:`) since the helper is no longer nested.
2026-07-29 22:37:58 +00:00
nesquena-hermes
ab6f0855a5
Release exp-v0.52.156: hard-refresh session restore ( #6507 ) ( #6608 )
...
Ships #6507 (@ruizanthony) — preserve active chat across hard refresh + fully consume PWA launch action.
2026-07-29 15:26:26 -07:00
nesquena-hermes
86d3e6a571
changelog: hard-refresh session restore + PWA launch-action consume ( #6507 )
2026-07-29 22:22:05 +00:00
Anthony Ruiz
127a57e0c5
fix(sessions): fully consume PWA launch action
2026-07-29 21:50:54 +00:00
Anthony Ruiz
cd04f5fcc2
fix(sessions): preserve active chat across hard refresh
2026-07-29 21:50:54 +00:00
nesquena-hermes
480de19710
Merge pull request #6605 from nesquena/changelog/stamp-v0.52.106
...
docs(changelog): stamp v0.52.106
2026-07-29 13:52:04 -07:00
nesquena-hermes
16dfeeb3f0
docs(changelog): stamp v0.52.106 stable section (promotion)
2026-07-29 20:50:41 +00:00
nesquena-hermes
0fa4b5f5ac
Merge pull request #6604 from nesquena/revert/stable-v0.52.113-stamp
...
docs(changelog): revert withdrawn v0.52.113 stable stamp
2026-07-29 13:42:01 -07:00
nesquena-hermes
bff58ffb31
Revert "Merge pull request #6599 from nesquena/changelog/stamp-v0.52.113"
...
This reverts commit edb69763a7 , reversing
changes made to b8f615e4bd .
2026-07-29 20:40:42 +00:00
nesquena-hermes
edb69763a7
Merge pull request #6599 from nesquena/changelog/stamp-v0.52.113
...
docs(changelog): stamp v0.52.113
2026-07-29 13:24:02 -07:00
nesquena-hermes
15e290dff0
docs(changelog): stamp v0.52.113 stable section (promotion)
2026-07-29 20:06:57 +00:00
nesquena-hermes
b8f615e4bd
Merge pull request #6503 from rodboev/pr/6481-verification-evidence-contamination
...
fix(#6481 ): settle verification turns from exact turn ownership
2026-07-29 11:51:07 -07:00
Rod Boev
4a7b851c8c
fix( #6481 ): materialize pending turns without borrowed display indexes
2026-07-29 18:36:24 +00:00
Rod Boev
9b0506d31d
fix( #6481 ): keep display ownership out of context indexes
2026-07-29 18:36:24 +00:00
Rod Boev
525edef5f7
Fix silent-result ownership for repeated prompts
2026-07-29 18:36:24 +00:00
Rod Boev
66438f07bc
Settle verification turns from exact turn ownership
2026-07-29 18:36:24 +00:00