S1 server: fix round for the 6 server review findings #28
Closed
opened 2026-10-06 15:42:30 +00:00 by kayg
·
25 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#28
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?
Part of #19. The independent server review (review-server) returned rework with 6 findings. The fix round was held back until auth-ux finished (it has:
7948ff0).Blocked by: the review-auth-ux verdict. Both edit t-server, and there is one writing job per worktree.
Done when: each finding has a failing test, then a fix, the fast gate is green, and the result is posted here.
Starting auth/server fix round: t-server base
6e5d9563f3; t-web base7a5e5db. Read contracts, review findings and issue/parent history. Reproduce before fixing, separate commits per finding; no push or deploy. DECISIONS.md ends at 86 and docs/PROCESS.md is absent; following owner D108 approval and supplied process requirements from the issue/task.Multi-device offset proposal (additive wire clarification): input offsets belong to a durable writer (browser connection id + terminal stream id), never to all devices viewing a session. Persist each writer's acknowledged u64 independently; allocate one stable even leg-B stream id per writer and reuse it on supervision reconnect. Output offsets remain session-wide shim offsets. The infraternal agent deduplicates input by (session id, stable leg-B writer stream), and sends that writer's local Ack. Preserve the old session acknowledgement column for compatibility but stop using it to initialize unrelated devices. No frame encoding changes; shim receives raw accepted bytes. This eliminates the identified collision between stream-local delivery and session-wide persistence.
Current-head repros: three real WebSocket tests fail (revoked cookie still Pong; socket17 without Hello upgrades; clean control Close returns1011). Three Unix-actor probes fail (full queue blocks >100ms; reattach lacks Credit1024; dropped stream Close returns global failure). Logs reproduced from present source, not reviewer snapshot. Fixing each in separate commits. Real infraternal agent remains a stub at this head, so actor/WS probes are explicitly transport invariants, not real PTY integration evidence.
Revocation fix committed
ece12bc. Real idle socket ends on logout; recovery commit emits socket wake; every inbound frame and outgoing terminal event rechecks current authority, with event-driven expiry and no polling. Slice fmt/clippy and 31 tests pass. Release local control latency at per-user scale: 16 simultaneous sockets x 200 concurrent rounds = 3200 Ping/Pong samples, p50 1062us / p99 2091us; load 3.11/2.33/2.67, x86_64 8 i9-9900K KVM vCPUs. This is control/auth overhead including loopback, not PTY echo or pinned perf VM.Admission fix committed
8ea624d. Reserve 16-user and 256-process permits at upgrade, not after Hello; weak per-user entries are pruned. Hello/Resume deadline5s, incomplete wire deadline5s, underlying message/idle deadline30s, per-writer deadline1s. Socket17 denied before Hello; 16 half-open permits released after5250ms, new upgrade succeeds; incomplete frame terminates5001ms. Slice fmt/clippy and 32 suite tests plus4 socket regressions pass.Isolation fix committed
acd1b21. Full queues use try_send and retire only the slow attachment; browser gets stream termination and can reattach from delivered offset. Unix writes bounded1s. Full suite35 pass/2 scale ignored; fmt/clippy pass. Capacity test: one blocked production-capacity4 queue +511 healthy streams (512 attachment/user upper topology),102200 one-byte events, p50<1us/p99 5us, load2.57/2.06/2.37. This measures actor delivery and channel consumption, excludes PTY/network and full-sized payload memory.Restart-credit fix committed1cf6d15. Track granted minus output/snapshot bytes, replay remaining after reattach. Probe now sees AttachTerm+Credit1024 on replacement; output3+snapshot7 leaves1014 at unchanged output offset3. Slice fmt/clippy and37 suite tests pass, plus4 actor regressions. Close fix now passes40 suite tests: dropped receiver retirement stays local; clean control Close is echoed normally rather than1011.
Close handling committed
b34b3ce: local retired receiver cannot restart all embedded streams; clean control Close no longer returns1011. Slice fmt/clippy and40 tests pass. Multi-device storage repro also fails at present code: a new writer inherits first device Ack77 instead of0. Additive writer schema committed915e6b4 with schema gate40 tests passing; runtime routing will persist connection+stream Ack and stable even leg-B writer identity. Original global session Ack is retained but ceases to authorize unrelated devices.Writer follow-up: real SQLite regression failed at the previous implementation (a fresh second device inherited Ack=77 instead of 0). Schema commit
915e6b4records independent connection+client-stream identities; runtime tests now prove separate devices start at 0, reconnect retains 77 and the same leg-B identity, wrong ownership/session rebinding fail, full u64 offsets survive, 32 identities is enforced, and deleted identities are never reused. Full gate running. Integration limitation: crates/infraternal-agent/src/lib.rs remains a stub; this checkout cannot prove production daemon-to-PTY deduplication across daemon crashes. The writer guarantee tested here is within the authenticated connection resume window. Longer drops open a new writer, requiring explicit client handling of pending input; that boundary is not yet proven.Completed runtime writer step
60dbad3: durable independent Ack and stable leg-B identity, ownership/pinning/u64/capacity/non-reuse regressions pass. t-webfaa3154announces RESUME_NEXT only for an adjacent Resume; enforcing that in the browser fixture first failed (pending b never arrived; expected ab, received a), then reconnect passed. Full fast gates pass in both trees. Browser latency under concurrent builds failed separately at p99 29.8ms versus 20ms; clean rerun pending. No production PTY deduplication claim: host daemon is unimplemented (crates/infraternal/src/main.rs:181–182, crates/infraternal-agent/src/lib.rs). Longer-drop writer capability beyond 120 seconds still needs an additive contract decision.Release measurement after this job stopped building; 8 i9-9900K x86_64 KVM vCPUs. SQLite memory, local server paths only; no disk/network/phone claim. Auth includes browser binding and restricted unlock transaction. Discovery remains below 1ms and signed finish below 10ms; writer lookup below 1ms at 16×32=512 retained writers. Verbatim output:
Clean production-build browser rerun after this job stopped building: 4/4 pass in 46.0s. 500-key probe p99=16.40ms (<20ms); time to resume=77.00ms (<300ms). Native v3/v1/v2 prompt counts 1/2/2 and corrupted unwrap/logout-429 denial also pass. Production screenshots: t-web/apps/tracer/test-results/onboarding-setup-recovery--906cd--match-the-browser-contract/returning-sign-in-iphone-15.png; terminal-first-run-passkey-29742-esume-and-the-latency-probe/signin-dark.png and tracer-terminal.png. Screenshots are supplied for independent review, not self-approved. Evidence/self-review document server commit
f1b996c; full fast finish run pending. #28 remains blocked on production host-daemon/PTY deduplication and the longer-drop writer contract; #29/#30 implementation and native evidence pass.server final fast gate at
f1b996c11c; exit 0. Verbatim output part 1/2 (concatenate code blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fastserver final fast gate at
f1b996c11c; exit 0. Verbatim output part 2/2 (concatenate code blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fastclient final fast gate at
faa31544c6; exit 0. Verbatim output part 1/2 (concatenate code blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fastclient final fast gate at
faa31544c6; exit 0. Verbatim output part 2/2 (concatenate code blocks in order). Command: nix shell nixpkgs#binutils nixpkgs#file nixpkgs#gnumake nixpkgs#perl -c scripts/verify fastSTOP/blocked for #28 acceptance: production host daemon remains unimplemented; real daemon-to-PTY concurrent-writer/crash replay cannot be tested. Beyond the 120-second resume window, durable writer replay needs the additive contract choice requested from kayg. Five other requested server findings are fixed and the bounded writer fix is committed.
Both lanes final fast exit 0; server head
f1b996c11c, client headfaa31544c6. Native auth 4/4; production paired v3/v1/v2 prompt counts 1/2/2; corrupt unwrap + logout 429 denies session and reload stays signed out. Onboarding/terminal Playwright 4/4; 500-key p99 16.40ms, resume 77ms. Auth 1024-pending p99 challenge 22us/finish 800us, Login inline 136×1024=139264 bytes excluding heap/hash tables; full-user writer lookup (512) p99 504us. Evidence/self-review: docs/verification/fix-round.md. Complete unedited gate output is posted on #28 in ordered parts for each lane. Nothing pushed/deployed; issues remain open.Both gates' Rust summary, verbatim:
Both gates' protocol summary, verbatim:
Server tests, verbatim:
All three ignored release measurement tests were run separately and passed. Final live-socket release rerun (16 simultaneous × 200 = 3200) p50 1123us/p99 2190us, load 1.92/2.42/2.56; local WebSocket control + SQLite only, no PTY claim.
Cleanup verified: both worktrees are clean at server
f1b996c11cand clientfaa31544c6. Removed both temporary target symlinks and this job’s 18GB/4.7GB scratch build targets. Production screenshots remain in t-web/apps/tracer/test-results; complete gate output and release measurements are on the issues. No running auth fixture remains; no push, deployment or issue closure. #28 acceptance remains blocked on the previously recorded production-daemon/PTY and longer-drop writer contract boundaries.Focused review-auth3 confirms live-socket fix incomplete at
f1b996c: busy terminal.open wait blocks revocation select; committed logout followed by late backend Result yields successful browser Result + terminal row, socket remains open >1500ms. Revoked pre-Hello socket also still receives Welcome/resume capability. Real WS/SQLite/Unix failing tests review3_busy_revocation_must_interrupt_and_deny_late_result and review3_revoked_handshake_must_not_welcome retained in HOME/.cache/codex-scratch/review-auth3/audit_cases.rs; audit-tests.log. Idle logout, idle expiry (2003ms/2s deadline) and actual recovery commit closure (870us) pass. Existing daemon/PTY integration limitation remains.Socket parts of focused #29 audit fixed in t-server:
c56c96finterrupts busy frame/output waits, backend5s timeout, transaction authority predicates; final5265026 guards server/client Hello and Resume with an absolute5s budget and rollback metadata staged before SQL awaits. Real SQLite/WebSocket/Unix regressions: logout/recovery<1ms, edited expiry27ms; no late success/terminal row; revoked Resume315us and pre-Hello327us, no Welcome. Latest54 tests pass; final full gates/scales pending. Existing production host-daemon/PTY and longer-drop writer blockers remain outside this job.Socket F2/F3 completed for #29 at t-server
e4809d49cb. Busy awaits, backend replies and Hello/Resume watch revocation/expiry; backend waits bounded5s; SQL authority predicates deny late rows and success. Regression close below100ms; all54 server tests pass, fast all5Rust rows PASS. Final 16socket×200 p50/p99 1160/2130us (<5ms). Full verbatim gates, failed attempts and checklist/evidence recorded on #29 and docs/verification/focused-auth3.md. Broader production host-daemon/PTY and longer-drop writer blockers remain unchanged; this does not claim those complete. No deploy/push or issue closure.Integration on dev (#34): t-server merge
f5ea2c9now includes the real t-agent, with fast gate green. Reproduced actual PTY integration blocker: device1 Ack23; device2 AttachTerm closes leg B (daemon.rs rejects duplicate session attachments). Additive shim proposal on #34: negotiated writer selection by stable leg-B identity; independent surviving accepted/written cursors, bounded concurrent viewers, last-typist size [74]. Retained real-binary red oracle will require Ack0 for device2, exact output on both viewers, and full-range crash replay. No longer-drop capability claim.Remaining multi-device acceptance is now proved against the real merged daemon/shim/PTY.
04c140f: device A has a positive Ack, device B starts Ack0, both viewers receive exactly 37 bytes; replay of both full acknowledged ranges after daemon SIGKILL adds only the new fence, with independent cursors and no duplicates/loss.1d2fc98: 32 simultaneous writers/viewers x 200 inputs, all independent Acks and identical exact output; 6400 inputs / 614400 delivered bytes in 0.804s (debug x86_64, 8 cores, load 4.14/5.21/6.14).ba6a560proves decision74 geometry at the real PTY. Production native-browser acceptance also passes on dev: independent signed-in cookies/contexts, existing shared PTY, device B Ack0 after A Ack10, exact A/B inputs, reload same session and logout revocation. The pre-existing beyond-120-second unacknowledged-input writer capability gap remains explicitly documented; this work does not claim that unresolved protocol choice is fixed. Final head and gates will be recorded on #34.Merged-dev evidence checkpoint:
acf83c7a06, #34. Remaining real-daemon multi-device functional acceptance passes on static production build: independent signed-in cookies, fresh B Ack0 after A Ack10, exact shared input in both viewers, same-PTY reload, logout socket revocation. Real shim/daemon replay proves exactly 37 bytes after acknowledged-range replay across SIGKILL; 32 writers/viewers x 200 = 6400 Acks, 19200 exact bytes per viewer / 614400 delivered; last-typist dimensions 24x80 / 40x120. Both long server idle conditions: zero activations / 620.002s. Final fast PASS; full browser 12/14 with timing failures and loaded native retry failures recorded on #34. Deployment handoff blocked on quiet CPU timing validation from orchestrator. Beyond-120s unacknowledged-input durable capability remains the previously recorded owner choice; issues remain open.Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Six server findings fixed and merged (
7551ff6,acf83c7in dev and prod); the beyond-120s writer gap is a documented owner choice. Reopen if anything is still missing.kayg referenced this issue2026-10-28 17:53:54 +00:00