Repository navigation
fix(livesync): RC-1 probe stored-id contract + derivation settle cap - #272
Merged
Merged
Conversation
…e persists lazily) Learned running the ship-gate live: session.changes/session.resume take the STORED state.db id, and session.create seeds only the live registry (DB row persists on first real turn) — so a synthetic probe session has no committed rows. Probe now picks the most recent small idle cli/tui session (read-only, never deletes) or takes one via argv. t_silence derivation: settle wait capped 120s.
Kyzcreig
force-pushed
the
fix/livesync-probe-stored-id-v2
branch
from
July 10, 2026 20:16
a5dffe9 to
f41060e
Compare
…d, per-iteration status reset, a1-watch SID guard (Greptile #272)
Kyzcreig
added a commit
that referenced
this pull request
Jul 10, 2026
…t the runtime id The shipped hook polled with activeSessionId (live registry id); the RPC only resolves stored state.db ids, so every poll 4044'd quietly and no cross-surface rows ever rendered — found by the A2 eyes-on gate (screenshot proof: rows committed to state.db, open transcript never updated). Same contract gap the RC-1 probe hit server-side in #272. - hook takes storedSessionId, puts it on the wire; runtime id still keys client state; fallback to runtime id only when no stored id exists yet - desktop-controller passes selectedStoredSessionId - 2 new regression tests pin the wire-id contract both ways
Kyzcreig
added a commit
that referenced
this pull request
Jul 10, 2026
… eyes-on catch) (#279) * fix(desktop): session.changes poll must use the STORED session id, not the runtime id The shipped hook polled with activeSessionId (live registry id); the RPC only resolves stored state.db ids, so every poll 4044'd quietly and no cross-surface rows ever rendered — found by the A2 eyes-on gate (screenshot proof: rows committed to state.db, open transcript never updated). Same contract gap the RC-1 probe hit server-side in #272. - hook takes storedSessionId, puts it on the wire; runtime id still keys client state; fallback to runtime id only when no stored id exists yet - desktop-controller passes selectedStoredSessionId - 2 new regression tests pin the wire-id contract both ways * fix(desktop): drop dev-local node_modules symlink + dead wireId guard (Greptile #279) --------- Co-authored-by: Kyzcreig <9063726+Kyzcreig@users.noreply.github.com>
Kyzcreig
added a commit
that referenced
this pull request
Sep 25, 2026
) Removes the session.changes RPC, _load_session_sync_config, _SESSION_* constants, dashboard.session_sync default, /api/status capabilities + session_sync block, SessionDB.get_messages_after, and the three scripts/livesync-* probes. No caller left: 0 session.changes calls in 2026-06-02..09-25 logs; the desktop consumer is gone. Kept: idx_messages_session_id (used by get_messages_around, session_lifecycle_statuses and upstream code), the id/tool_call_id fields in _history_to_messages, and the dashboard state.db startup log (its test moves to tests/hermes_cli/test_dashboard_state_db_log.py). Verified: pytest tests/test_hermes_state_messages.py tests/test_hermes_state_search.py tests/hermes_cli/test_dashboard_state_db_log.py -> 293 passed; tests/test_tui_gateway_server.py -k history_to_messages -> pass.
Kyzcreig
added a commit
that referenced
this pull request
Sep 25, 2026
) Removes the session.changes RPC, _load_session_sync_config, _SESSION_* constants, dashboard.session_sync default, /api/status capabilities + session_sync block, SessionDB.get_messages_after, and the three scripts/livesync-* probes. No caller left: 0 session.changes calls in 2026-06-02..09-25 logs; the desktop consumer is gone. Kept: idx_messages_session_id (used by get_messages_around, session_lifecycle_statuses and upstream code), the id/tool_call_id fields in _history_to_messages, and the dashboard state.db startup log (its test moves to tests/hermes_cli/test_dashboard_state_db_log.py). Verified: pytest tests/test_hermes_state_messages.py tests/test_hermes_state_search.py tests/hermes_cli/test_dashboard_state_db_log.py -> 293 passed; tests/test_tui_gateway_server.py -k history_to_messages -> pass.
This was referenced Sep 25, 2026
Kyzcreig
added a commit
that referenced
this pull request
Sep 25, 2026
Fork-PR audit FINAL DROP (card t_46cf57ba, lead t_03e35f0e, FINAL.md row #352). #352 shipped payload.message_ids on message.complete so the desktop live-sync poll could stamp optimistic rows. The livesync seam is being reverted (#268/#272, audit/scripts_misc/revert-livesync) and the apps/ consumer is already DROP by D9; no fork consumer of message_ids remains (git grep apps/ ui-tui/ web/: 0 hits) and upstream never emitted it. Removes _completed_turn_committed_ids(), its call under history_lock, the payload field, and tests/tui_gateway/test_completed_turn_committed_ids.py. Verified: test-gate narrow run test_failed_turn_retention.py + test_desktop_runtime_footer.py + test_server_no_duplicate_defs.py: 29 passed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ship-gate probe fixes learned during the live RC-1 run (PR #268 follow-up):
session.changes/session.resumetake the STORED state.db id;session.createpersists lazily → probe now runs read-only over an existing idle sessionLive results with these fixes: RC-1 PROBE: PASS (6/6 — routing + semantic), t_silence derived from 71 live frames (longest quiet 96.05s → recommended 192, set live in config).