Repository navigation
Conversation
Suspend background transcript clocks and projections without losing mounted reading state. Cache immutable turn timing and keep Stop scoped to actual backend settlement before recovering drafts or history.
Keep the performance wiring guards aligned with the combined pane/scope visibility boundary and the reveal catch-up latch. Behavioral coverage still runs through the isolated production React fixture.
Keep the published repair on the latest official integration base without rewriting existing task history. Preserve upstream CI fixture and voice teardown corrections before validating the updated candidate.
Keep existing permission, smart-Stop and reading-position contracts attached to their current owners. Assert hidden-work gates and reveal catch-up without changing already-covered production behavior.
Validate the public repair with the current turn header, usage capsule and project title without rewriting published history.
Refresh the public repair with upstream release metadata without creating or publishing a release.
vastsa
left a comment
There was a problem hiding this comment.
Thanks for the detailed investigation and the focused regression evidence. I can't land this as one fix PR because the diff combines independent behavior changes with different root causes and acceptance paths: hidden retained transcript rendering, Stop/turn settlement and draft recovery, and local/remote Grep/Glob cancellation plus process ownership. These can be reviewed, validated, and reverted independently; the shared long-session theme does not make them one smallest coherent fix. Please split the work into focused fix PRs and keep the relevant tests with each part. Also refresh each candidate against current main, which has advanced through #1840 and #1841 since the base recorded here. Thanks for the substantial work.
Summary
Repair long-session transcript work and make Stop actually cancel and settle
Grep/Glob searches before releasing the turn for follow-up work.
turn for each process chunk; avoid argument-spread limits on large activity.
observers/frames in hidden retained panes without unmounting them. Preserve
output, nested reading positions and manual disclosures; catch up on reveal.
recovery, and prevent late recovery from overwriting a newer turn. Avoid
leaving a duplicate-abort marker with no turn to clear it.
tagging; terminate and reap owned
rgprocesses, including quiet children.Keep remote search completion routable until the worker settles or the existing
transport deadline fails explicitly. Cancellation is never a fallback search.
This preserves upstream Stop/side-effect protections. Read keeps its existing
local-abandon policy; Bash/GenerateImages keep their abort grace; mutations, MCP
and plugin calls retain settlement ownership. No abort timeout was enlarged. No
persisted format, public wire shape or default changes. Runtime/UX specs, the
existing Stop ADR, E2E scenarios and unreleased notes are updated together.
Published history and integration candidate
7a87807e9701e07e3fe78a551504bca2bc20049d.1ddfd7203fe58cd970fc6f929218253369706de7(beta.7).b97c944bffb28a952d24554481f2847f8ba4e227.c2c5ddf75b9c87392b2c0b0e107d3c55c319aa89.The fetched merge ref has the stated base/head as parents; the tree comparison
and
git diff --exit-codeboth pass. The task worktree is clean.Later main updates were merged into this already-public branch without rewriting
published history. Upstream turn headers, usage capsules, project breadcrumb/title
changes, and beta.7 metadata/catalog are preserved. Initial PR CI exposed six
stale source-shape assertions in five task-related files. Their local red was
64/70, followed by 70/70 after assertions were updated to verify current
visibility gates, reveal catch-up and
createSessionStopwiring. Productionbehavior was not changed to satisfy regexes.
Current-head CI: all six checks successful
browser capture/resize, transcript rendering/disclosure, and extension steps.
Runs: CI,
Docs,
PR base.
These runs identify the current head above, not the initial PR revision.
Previously observed client-certificate CI failures are not current blockers; no
unrelated certificate/transport fix is claimed.
Local current-candidate verification
src/runtime.test.tspnpm build:js; desktop typecheck; lint; architecture guardcargo fmt --check; all-target Clippytranscripts.rsCounts overlap. Local validation uses frozen pnpm 12.8.1 dependencies, Pi 1.3.0,
Electron 42.0.1 and a scratch GNU Rust/LLVM toolchain on Windows. Rust tests use the
explicit task manifest and dedicated
rust-target-pr-head, not the olderbaseline target. Electron fixtures use production React/hooks with synthetic
data and isolated profiles, not product main or a real conversation profile.
The hidden-pane fixture reports 7 visible clocks -> 0 hidden clocks, 0 hidden
frames, retained mounted output/answer/delegation, nested reading positions and
manual disclosures, plus reveal catch-up and resumption. These are synthetic
work-count measurements, not live CPU/temperature claims.
Regression tests first exposed repeated full-turn timestamp reads, recurring
hidden clocks, reveal rewinds, early/mid-search abort failures and remote
completion returning
NOT_FOUNDafter Stop. Search tests cover both signalcancellation and direct
runtime.abort()when the tool signal does not fire.Process fixtures use local socket handshakes, not arbitrary sleeps.
Local failed/incomplete checks and historical evidence
73384e343and an untouched official-main archive atd281f4031both faileach disclosure header owns its content hit target. The archive uses main'sactual React/hook sources and a built stylesheet with identical source. The
final beta.7 local run covers hidden panes only. In contrast, the current-head
CI transcript rendering/disclosure step succeeds; these environments/results
are not conflated.
72915f00eplus the assertion corrections:4168 passed / 96 failed / 11 skipped. Failures include POSIX executable,
symlink/permission, path and catalog assumptions. Not every failure was
independently baselined; this local suite is not reported green. No unrelated
production or test expectations were weakened.
a51b6d763; a later aggregate wrapper reachedthe RPC batch but timed out without a complete result. The final selected
search/relay/tools/state suites pass as listed above; a worktree lifecycle
aggregate also remains incomplete. No product deadline changed.
main
9f313c8f87 passed / the same 2 failed. Existing testsremote_read_dispatch_is_local_approval_then_relay_never_local_runneranddenied_remote_write_and_cancelled_read_never_run_locallyreceivepermissions.requestwheretools.remoteExecuteis expected. Both new relaysettlement tests pass. These are historical local results, not current CI
failures.
expected-version-list omissions in unchanged shared files. It is distinct from
the successful CI Docs checks. A broader local native-session suite previously
hit two Windows symlink
EPERMfailures.was inactive. Critical paths were inspected directly; no external approval is
claimed.
No running Desktop instance, real conversation database/profile, or paid provider
was used. No application install, release, PR merge, force-push, or global network,
Git or toolchain configuration changes were performed.