mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-10-10 09:19:42 +02:00
fix(web): pin the Claude response viewer to the pane's own conversation
The viewer re-derived a pane's live conversation from the newest ~/.claude/history.jsonl entry for the pane's cwd. A cwd is shared with every other Codeman tab on it, with tabs long since closed, and with any plain `claude` the user runs in their own terminal, so the eye followed whichever of those was typed into last — and since the match was written back through adoptClaudeSessionId(), the mispin stuck. Credit a history entry to a pane only when it lands within 10s of that pane's own Enter and no other pane on the same cwd submitted closer, reusing the last-submit correlation the Codex locator already relies on. Submit tracking moves from _codexLastSubmitAt to a mode-agnostic Session.lastSubmitAt. With no correlated entry the pane keeps the id it has: a viewer one turn behind beats a viewer showing someone else's conversation. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7e357691af
commit
73315bc351
@@ -104,7 +104,7 @@ describe('GET /api/sessions/:id/last-response (codex)', () => {
|
||||
let codexHome: string;
|
||||
let prevCodexHome: string | undefined;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
let session: any; // MockSession, loosened for codex-only fields (codexConfig, codexLastSubmitAt)
|
||||
let session: any; // MockSession, loosened for codex-only fields (codexConfig, lastSubmitAt)
|
||||
let workdir: string;
|
||||
|
||||
/** Write a rollout under CODEX_HOME/sessions/<date>/ with a controlled mtime. */
|
||||
@@ -230,7 +230,7 @@ describe('GET /api/sessions/:id/last-response (codex)', () => {
|
||||
|
||||
it('history.jsonl pin (pane last-submit correlation) outranks the originator match', async () => {
|
||||
const submitAtSec = BASE_MTIME + 500;
|
||||
session.codexLastSubmitAt = submitAtSec * 1000;
|
||||
session.lastSubmitAt = submitAtSec * 1000;
|
||||
writeHistory([{ session_id: UUID_B, ts: submitAtSec }]);
|
||||
|
||||
// Originator-stamped rollout exists and is NEWER, but the pane /resume'd onto
|
||||
|
||||
Reference in New Issue
Block a user