Stale-screen note after reattach (D309) #248
Closed
opened 2026-10-19 15:41:55 +00:00 by kayg
·
16 comments
No Branch/Tag specified
main
j470b-server-mesh-rejoin
mesh-compat-382
j444b-d381-key-wins-flood
j461b-macos-utun-reader-thread
j475b-remove-host-motion
fix-reconnect-new-link
j481-d380
dev
j479-mesh-soak
fix/j476-host-facts
j475-motion-pill-split
j470-mac-node-join
root-upgrade-d376
j474-review-merge
latency-targets-120hz
nightly-suite-shards
gotatun-pin-j469
macos-utun-reader-thread
fix-flood-echo-stall
wip/j416
motion-fast-ease-out
mesh-addhost-j259
takeover-close-terminals-d368
kbd-instant-followups
fix-trust-key-double-click
nightly-suite-partial-report
appwin-icons-j207
rusqlite-slice1
swipe-content-first-d374
mesh-mtu-381
addhost-instant-open
glass-contrast-d365-mock
glass-contrast-d365
signout-followups-442
fix-startup-toast-red
research-gotatun-matrix-j317
themes-sync-j304
fix-load-flakes
fix-nix-zig-patch
fix-compute01-browser-baseline
ratchet-size-baseline-419
predict-auto-d130
revoke-coverage-d367
nightly-suite-queue-timeout
nightly-browser-suite
fix-rustsec-2026-0459
fonts-ioskeley-obel
log-retention-d375
fix-kbd-no-anim-427
fix-dev-red-specs-2
takeover-proof-305-j205
wip/j410-server-pump
ui-consistency-d372
fix-osc52-clipboard
libghostty-vt-1.0
forget-retired-host-d369
j404-merge-426
fix-setup-lock-race
fix-touch-select-426
revoke-access-report-ui
fix-predictive-echo-specs
fix-selinux-agent-exec
wip/j395-checkpoint2
wip/j395
j391-review-scratch
ui-consistency-j195-deferred-rebased
fix-rustc-paths-421
decisions-wording-341
fix-install-suite-red
fix-dev-rtt-specs
fix-pending-removal-align
fix-privileged-skip
fix-install-suite-404
review-j368
mesh-dns-j254
revoke-access-report-d356b
revoke-privilege-round5
fix-removal-confirm
review-j360
gotatun-rotation-367
deps-refresh-340
review-j354
review-J351
review-j350
addhost-takeover-d359
revoke-report-items-347
revoke-end-sessions-d362
review-j348
size-mesh-ssh-346
size-trim-337
revoke-access-diff-d356
j259-pre-rebase-b06c5a6
j305-ended-at-start-spec
addhost-sudo-consent
fix-layout-real-specs-411
fix-shell-open-411
fix-console-hosts-373
fix-shell-exit
fuzz-host-name-353
fix-host-details-410
macos-filter-j197
research-gotatun-tricks
revoke-p3-j216l
stale-state-pill
revoke-followups-j216k
revoke-progress-j216e
backup/macos01-20261106/lume/j197
backup/macos01-20261106/lume/appwin-icons-j207-stash0
backup/macos01-20261106/claude/stash-0
backup/macos01-20261106/claude/stash-1
backup/macos01-20261106/claude/J80-macos-s1
backup/macos01-20261106/claude/J80
backup/macos01-20261106/claude/J80-slice1-20261102
backup/macos01-20261106/claude/J16b-appwin-on-dev
backup/macos01-20261106/claude/appwin-launch-idle-146
backup/macos01-20261106/claude/J80-s1-run
wip/j259
trust-285-p3c
runtime-lock-j216f
mesh-ssh-p3-j175
tun-proof-p3b
trust-285-p3
terminal-polish-j271
tun-proof-p3
ssh-install-flakes-j216i
fuzz-fixes-j264
trust-285-a
trust-285-b
restart-oversized-fixture-j198
backup/macos01-20261106/lume/appwin-icons-j207
restart-bound-j216h
up-preflight-p3-j198
backup/macos01-20261106/lume/j251
up-preflight-j198
wip/up-preflight-j198-j245-p2
wip/up-preflight-j198-j245-p1
agent-fsync-offloop-j196
wip/up-preflight-j198-j245
settings-offscreen-j231
wip/up-preflight-j198-j226-inspection
wip/j103f
themes-j206
wip/up-preflight-j198-j226
flakes-j216c
backup/macos01-20261106/claude/j197
flakes-j216b
backup/macos01-20261106/claude/j197-red
wip/up-preflight-j198-review
flakes-j216
backup/macos01-20261106/claude/appwin-icons-j207
engineering-j208b
appwin-mock-j209
toast-stack-j165
engineering-j208
decisions-d351
decisions-d350
decisions-d349
appearance-presets-mock-j129
decisions-d348
docs-audit-spec
doc-coverage-baseline-raise
decisions-d347
decisions-d346b
decisions-d346
j88h-profile
ui-consistency-j195-deferred
ui-consistency-j195
engineering-practices-j194
preferred-login-ui-j166
signin-pools-263-j174
macos-node-265-s1
decisions-d345
decisions-d344
proxy-cgroup-j164
verify-quick-fuzz-329
proxy-start-io-j168
timing-flakes-j163
up-263-s1
mcp-events-j147
verify-quick-fuzz-j158
proxy-p3-j159
agent-resource-j157-detect
wip/j103d-final
remote-cancel-hang-j155
proxy-traefik-281-j62d
j149-verify-quick
proxy-traefik-281-j62b
j150-drop-unnamed
wip/j79d-red-r4
wip/j103d-d332
rootless-toast-j142
wip/j103d-head
wip/j103d
j125c-mcp
macos-build-j136
backup/macos01-20261106/claude/j136
wip/j79d-red-cli
wip/j79d-red-server
j121-link-liveness
j118c-tracer-failures
wip/j79c-head
release-desktop-j131
j124c-signed-macos
wip/j79c-red-p3
wip/j79c-red-p23
wip/j79c-red-p22
merge-j128-check
perf-deferred-j128
sidebar-toggle-260
j127-shortcut-changed-dot
j125-mcp
j118-tracer-failures
j126-account-summary
settings-sections-mock-j92
j120-pinch-lock
sidebar-292
backup/macos01-20261106/claude/j120
taste-2026-11-03
row-actions-242-215
backup/macos01-20261106/claude/stash-0-untracked
backup/macos01-20261106/claude/J80-265-s1-run
backup/macos01-20261106/claude/J80-macos-s1-20261102
j112-canvas-commands
ui-no-overshoot-scroll
fix-recovery-restart
backup/macos01-20261106/claude/stash-1-untracked
taste-2026-11-02
size-baseline-ratchet
machine-cards-structure-j108
j109-boot-copy-mockups
fix-dev-red
wip/up-263-s1
j95b-settings-rows
proxy-traefik-281
j95-option-rows
docs-human-j91
docs-keys-palette
fix-flood-1013-270-j38d
mesh-ssh-s1
mesh-ssh-s0
addhost-d291-tunnel
test-stability-load
mesh-relay-220
repro-296
shim-thp-off-24
mesh-pins-258-v2
mesh-dns
signin-d311-merged
docs-pages
ui-size-283
fix-ui-batch-specs
wip/j12b-edge-update
gate-on-arm
fix-rename-sync-293
trust-285-j60b
fix-focus-ring-clip
integ-ui-1101
edge-update-v2
signin-d311
taste-2026-11-01
layout-per-tab-250
ui-approved-splitopt-224
ui-approved-splitopt-224-on-dev
icon-text-centre-282
ui-approved-189-212-216
research-reverse-proxy
transfer-budget-320
review-mesh-pins-258-r2
sidebar-pill-259
review-mesh-relay-220
wip/j12-edge-update-v2
nix-package
status-crash-loop-237
fix-dev-test-failures
fix-fixture-socket-path
wip/mesh-relay-220-pre-dev-advance-rebase
fix-canvas-side-clip
research-head-to-head
frosted-real-256
review-mesh-pins-258
wip/mesh-relay-220-pre-final-rebase
review-layout-per-tab-250-r2
broad-suite-triage
nix-devshell
review-status-crash-loop-237-r3
wip/nix-devshell-pre-p3
taste-frosted-real
wip/code-serve-demo-2026-10-30
wip/code-serve-glass-2026-10-30
wip/code-serve-clusters-2026-10-30
wip/code-merge-release94-dev-2026-10-30
wip/rproxy-delta-scratch-2026-10-30
wip/stale-note-257-staged-2026-10-30
wip/d241-size-staged-2026-10-30
review-broad-suite-207
wip/mesh-pins-258-pre-split
wip/mesh-relay-220-pre-rebase
mesh-measure-220
plan-211-update
review-edge-autoupdate-r3
perf24-reconnect
review-stale-note-r2
release-prod-live
d241-shell-marker
review-mesh-pins-server-258
review-revocation-r3
review-setup-token-r2
review-sync-journal-r3
wip/review-mesh-pins-258-prune-review-1995fee46
frosted-scroll-256
sync-journal-r3
revocation-per-account-wip
review-tokio-asyncfd-0386
review-sync-p3s
wip/stash-8by64-stash0-2026-10-30
mesh-drag-r2
setup-token-data-wip
release-9-4
auth-busy-1013
mesh-view-overlap
sync-p3s
review-auth-busy-wake
review-readd-r8-wip
mesh-drag-bounds
audit-auth-93
app-windows-stream-start
review-authority-cap-r3
app-windows-r7-measure
readd-minimal-r6
readd-minimal-r5
app-windows-r7-soak
readd-minimal-r4
app-windows-r7
app-windows-r6
readd-minimal-r3
readd-minimal-r2
readd-minimal
merge-release8-dev
review-busy-page-liveness-r2
review-busy-page-liveness
mesh-view-trim
review-authority-read-retry-r2
review-remove-uninstall-r2
release-retry-reattach
release-retry
review-remove-uninstall
review-authority-read-retry
app-windows-ship
mesh-autoswitch-p2
mesh-ssh
mesh-relay
mesh-macos-node
screen-and-control
session-labels
review-real-logins-r5
review-real-logins-r4
review-real-logins-r3
shim-memory-r2
review-real-logins-r2
shim-memory
shadow-addhost-instant
shadow-real-logins
shadow-same-session-flood
shadow-prod-perf-fix
hosts-from-server
app-windows-real
app-windows-transport
release-prod-6w
mesh-policy-verify
quiet-close-toast
dev-merge-r4
review-mesh-agent-transport
review-app-windows-transport
settings-roundtrip
review-release-pipeline-r4
mesh-agent-transport
ended-strip-fix
review-audit-ca-update-d244
settings-rows
phone-width
signout-clear
fix-restart-tests
dev-merge-rp
signer-hardening
review-audit-ca-update
terminal-fidelity
review-audit-ca-update-wip
mesh-integrate
review-mesh-agent-transport-515d3712
review-mesh-dataplane-feec1988
mesh-dataplane
signout
research-canvas-node
wip/review-renderer-cost
wip/review-terminal-fidelity
padlock-glyph
review-release-pipeline-2e95b689
phone-polish
sidebar-polish
inbox-generic
review-mesh-dataplane-378d4055
prod-batch
ui-inbox
ui-ca-unlock
ui-machine-sections
review-mesh-dataplane-a5f744fb
tls-session-prod
session-bounds-prod
fix-dead-session
session-bounds
tls-session
palette-polish
shortcuts-d222
research-appmeta
phone-gutter
ui-centre-button
wip/ui-centre-button
wip/tls-session
review-addhost-breakit
ui-platform
renderer-cost
remote-agents
mesh-api
ssh-bootstrap
prod-hotfix2
prod-fixes
review-remote-agents
review-mesh-dataplane
session-life
research-browser
review-mesh-api
research-capture
review-mesh-api-round3
review-mesh-api-round1
gate-stability
review-gate-stability
review-relay-direct
review-mesh-api-findings
proto-sessions
font-picker
proto-addhost
proto-windows
mesh-core
latency-gate
research-bsd
research-discovery
keytray-mods
mock-core
ui-tweaks
fix-motion-sel
fix-motion
integrate2
fix-robust
t-web
t-server
vt-ghostty
fix-snap-echo
t-web-auth
review-vt2
t-agent
lane-protocol
lane-shim
lane-auth
s1-base
s1-contracts
s1-workspace
No results found.
No labels
launch-qa
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
kayg/infraternal#248
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
D309 (owner-approved): after a terminal reattaches, a shell that cannot redraw shows a small "screen may be out of date" note until new output arrives. Branch stale-screen-note, base dev
a615c0366. Started by the designer subagent. Note: scripts/fj does not exist in dev; using the fj binary on PATH.Done. Branch stale-screen-note, head
94933af836(base deva615c0366). Detection: replay fence painted, then no output past it within 400 ms + 2 round trips (cap 1.5 s) -> note; any later output clears it. No protocol change. Tracer: bun run check clean; bun test 319 + 94 pass (incl. 6 new stale-screen tests); transfer-budget passes; playwright test/stale-screen.spec.ts 6/6 (1440x900 and 390x844, ink and paper), run twice. JS size: +2819 B identity, +935 B gzip (444938 -> 445873). scripts/verify fast: Rust gate FAIL (101) in 'test' and 'SSH inode reuse fixture' (release latest_tests.rs:41/155 unwrap on None; ssh install.rs:3460 upload exit 127), code this change does not touch; fmt, VT fmt, compile-out, clippy, deny, static builds PASS. Screenshots: ~/.cache/codex-scratch/stale-screen-note/Starting D309 stale-screen-note break-it review on branch
review-phone-col-stale-note, based onorigin/devatae40858df8732c67bfa2553f5e4d40b5b2a01dcf. I read the #248 history and the related #243/#167 context. I will review isolated copies oforigin/stale-screen-noteandorigin/phone-min-col; product branches remain untouched.D309 stale-note unit check: existing and review state-machine suites pass (9 passed, 0 failed, 23 assertions;
bun test src/stale-screen.test.ts src/stale-screen-review.test.ts). At the exact 400 ms deadline, timer-first ordering calls show then clear ([true,false]); output-first ordering cancels the timer with no show. Browser visibility/accessibility effect is still under review. Review-only test:apps/tracer/src/stale-screen-review.test.tsin the isolated stale-screen-note worktree; no product code changed.Committed real-engine review check
9fd1bc40e. After a real server restart with a silentsleep 30PTY, desktop and phone viewers both showed the note; Ctrl-C output cleared both. Playwright: 1 passed. Unit checks: 9 passed, 23 expectations, including output-before/at-deadline ordering and reconnect storms. Build-host wall times are not performance evidence.Evidence: browser log, desktop, phone, unit log. Hidden-tab and cursor/pointer review cases are still running.
Supplemental stale-note cases pass against the feature branch: reconnect storm, replay Snapshot without newer output, hidden-tab retry parking/resume, and note pointer pass-through plus top/bottom cursor-row clearance: 4/4. The real PTY check also showed and cleared the note in both viewers. No stale-note defect reproduced so far; final MERGE/HOLD follows the branch-head gate.
Evidence: four-case browser log, hidden-tab note.
Review complete. Reviewed
origin/stale-screen-noteat94933af83; the committed real-engine review check is9fd1bc40e. Review branchreview-phone-col-stale-noteis pushed at1c6c8a342f08191a8c07980c3113ebcaa3acdcca.Verdict: MERGE. I did not reproduce a stale-note defect. State-machine checks passed for output before and exactly at the deadline and for reconnect storms. The supplemental browser cases passed for several viewers, replay Snapshot without newer output, a hidden tab, note visibility below and above the cursor row, and pointer input passing through. In the real PTY replay, desktop and phone viewers both showed the note for a silent resumed session; Ctrl-C produced fresh output and cleared both notes.
Evidence: real browser run, desktop screenshot, phone screenshot, deadline and reconnect checks, four browser cases, hidden-tab screenshot.
Final
scripts/verify fastexit status: 0. Gate summary, verbatim:The full final-head transcript is attached. The release deployment functional check reported
Build deferred: host capacity limit reached; its 15 tests passed and the gate completed with exit status 0.Release 8 started on release-8, production base
173a9ba14f. Worktree clean. Applying the reviewed D307 production-line merge, then only each requested dev branch’s own non-merge commits with -x. No deploy; monitor01 untouched. Final gates, size table, artifact hashes and perf-VM copied-database staging evidence will follow.Release-8 step pushed:
faa7af66e00ff39191f4276fecb9d52c31521515, source5108da2db607373c7ca364e186f278fe5ca35497with -x provenance; 3 changed files. Passed: staged whitespace, tracer typecheck, connection/reply unit suites, available synchronized-output/stale unit suites, shell syntax. No deploy. Full fast gate and browser qualification follow on the final combined head.Release-8 step pushed:
8e4f480f6c137a9dbc69def72d354da1108935d2, source4210d220219b7342937e8f97ccc43e40a8a0d629with -x provenance; 2 changed files. Passed: staged whitespace, tracer typecheck, connection/reply unit suites, available synchronized-output/stale unit suites. No deploy. Full fast gate and browser qualification follow on the final combined head.Release-8 step pushed:
c8aa3672722ad5525184342e50205d5bccc6b20a, source94933af83686b6e2ddeda1b70f02477a2f6f926awith -x provenance; 3 changed files. Passed: staged whitespace, tracer typecheck, connection/reply unit suites, available synchronized-output/stale unit suites. No deploy. Full fast gate and browser qualification follow on the final combined head.Release-8 step pushed:
3f8373bd9d71d688ae67db4c754007f53fa60d11, source9fd1bc40eb1929a306a754b4da473c3579cdae92with -x provenance; 1 changed files. Passed: staged whitespace, tracer typecheck, connection/reply unit suites, available synchronized-output/stale unit suites. No deploy. Full fast gate and browser qualification follow on the final combined head.Stale-note source
5108da2db,4210d2202,94933af83and real review check9fd1bc40eare committed/pushed on release-8; step head3f8373bd9d. The output/snapshot integration retains synchronized holds and D307 reply marking; newer output also clears the note. All focused type/unit gates passed.Both native artifacts remain byte-identical to #206: 21,387,184 / 19,559,112 B; SHA256 bc3e7b2fa2bde97d06b548981954a96d68f4a8524fed2b41a7c80d99348de58b / 46812c6bfeffb01e536112d422d1db8809bb136f2504efde1bac8df7ca8ce26f. Step gate and unchanged-binary receipt. Final fast/repro and real-browser staging still pending; no deploy.
Perf-VM staging passed at
85b0285b73: 11/11 reviewed real-server specs and 5/5 additional real-PTY acceptance checks. Production web and full-server image bc3e7b2fa2bde97d06b548981954a96d68f4a8524fed2b41a7c80d99348de58b.Machine: infraternal-perf-test, 4 vCPU, kernel 6.12.111+deb13-amd64; final acceptance load 1.35/0.84/0.40 before, 2.42/1.20/0.54 after; separate lock holds; CPUWeight=10000. No deployment. Bundle and final gates remain in progress.
staging-final-driver.log



real-reviewed.log
staging-capture-driver.log
release8-phone-widths.json
release8-real-sync-echo.json
Release 8 qualification finished. Head
85b0285b733bac4c94d7540c58d4521d1a3410c4is pushed only torelease-8; production base173a9ba14f458a8451d31c6e72e86cd73b8911f3. No deployment; monitor01 untouched. Issues remain open.Applied history: D307 merge
ed725f9db40aa69031c524950a02c276c340a43dhas source parent3e95f8262c993cd1cc38a81ff585e535dafc1e0a(41 D307 commits). Then 23 own source/review commits were cherry-picked oldest first with-x, followed by the release size documentation. No other dev lineage or dependency was imported. Full D307 history and commit bodies: ledger.Final delta against release 7: +1,920 x86_64 / −11,144 aarch64 bytes. The measured x86 increase differs from the expected approximate reduction; it is 18,080 bytes below the +20,000 stopline. Both ceilings equal the measured sizes. Stale-note and phone stages retain byte-identical native images. Same pinned static recipe and compiler as release 7; no Cargo.lock or migration changes.
Artifacts:
/home/kayg/.cache/codex-scratch/release-8/artifactsin the release-7 layout, including both full images, bundle (both host and session architectures), production web, web-dist.tar, MANIFEST.txt and checksums. The bundle already carries the ARM host image; a later authorized deploy uses--bin,--bundle,--web. Seven executable images passed production trust and static-link checks. Staged server compared byte-identical to the completed bundle server.Host gates used private fixture state and the short socket-path alias required by the Unix-socket tests; the GNU runner forwards every test and skips no checks. Exact commands and environment are attached.
The existing query/refusal/retained-typing/synchronized-output/stale-screen browser specs depend on
/__mockcontrols. They ran against a separate sealed preview-enabled test build; shipping web stayed preview-disabled. Real-server counterparts additionally covered real 1008 refusal + Discard/Send again, full-screen mode 2026 input/paint, stale replay, cursor queries and persisted phone geometry. Native binary and shipping assets came from this head.Perf-VM staging (infraternal-perf-test, 4 vCPU, kernel 6.12.111+deb13-amd64, CPUWeight=10000, separate short lock holds):
[349,349,349,349]; the copied-database capture also met the >=349 minimum, with revision 8 unchanged by phone use. Direct persisted-layout review covered rotation, pinch, reload, pointer changes and desktop edits.Author checklist: review receipt. All owned VM scopes are inactive, ports are closed, private VM job removed, and temporary host Cargo/upload/comparison roots removed. Artifacts and evidence are retained outside the checkout.
Verbatim final Rust gate table (full unmodified gate transcript attached below):
Verbatim final protocol gate output:
Verbatim reproducibility output:
final-verify-fast.log
final-static-reproducibility.log
vm-cleanup-check.log
host-cleanup-check.txt
qualification-commands.txt
perf-driver.log
held-input-20-summary.json
vm-cleanup-check.log
MANIFEST.txt
artifact-SHA256SUMS.txt
artifact-seal.json
applied-first-parent.txt
staging-final-driver.log



real-reviewed.log
staging-capture-driver.log
release8-phone-widths.json
release8-real-sync-echo.json
Deployed to production: release 8,
85b0285b7at 09:32 IST (2026-10-20).deploy-prod.sh 85b0285b7 --bin infraternal-x86_64-musl --bundle bundle --web web(no--arm).DEPLOYED 85b0285b733bac4c94d7540c58d4521d1a3410c4 (backup /var/backups/infraternal/20261020-060227-85b0285b733bac4c94d7540c58d4521d1a3410c4)/healthz200, new MainPID 140788, active since 04:02:31 UTC.bc3e7b2f…, aarch642e94b4ce…, aarch64-session75801bc7…, x86-muslf87c2b23…, x86-session7094e3f5…).release-prod-live→85b0285b7. Merging back into dev runs as jobmerge-release8-dev(inputs.rs needs a semantic merge of D307 reply isolation with the per-user pool).The server restart re-locked the CA: the owner must unlock it.
Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Stale-screen note merged (
c8aa36727in dev) and deployed in release 8 (85b0285b7, ancestor of dev and prod). Reopen if anything is still missing.kayg referenced this issue2026-10-28 17:53:55 +00:00