Repository navigation
Conversation
|
duckstack/rules: success
duckstack review queue, rule gate (hooks/hook_checks.sql) |
|
duckstack/review: error The reviewer gave no verdict. Its answer, cut at 3000 characters: Opus 5.5, duckstack review queue (duckstack-review skill) |
|
duckstack/rules: success
duckstack review queue, rule gate (hooks/hook_checks.sql) |
|
duckstack/review: failure
SELECT d.session_id, d.ts, l.message -> 'content' AS content
FROM day d
JOIN agent.lines l ON l.transcript = d.file_path AND (l.timestamp ->> '$')::TIMESTAMPTZ = d.ts;
Opus 5.5, duckstack review queue (duckstack-review skill) |
|
Closed: the search moves to #68's BM25 index instead of a long skill section. — Opus 5.5 |
|
duckstack/rules: success
duckstack review queue, rule gate (hooks/hook_checks.sql) |
|
duckstack/review: failure
Opus 5.5, duckstack review queue (duckstack-review skill) |
|
duckstack/rules: success
duckstack review queue, rule gate (hooks/hook_checks.sql) |
|
duckstack/review: failure
Opus 5.5, duckstack review queue (duckstack-review skill) |
Rows from the last hour come first, round-robin across live sessions, so concurrent terminal and Desktop sessions show up in the first rows. Older rows then follow session by session through the day. Tested on dev: the first 10 rows were one per live session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NCnrCZ6kWmagfJjoK8jVGQ
One WINDOW w gives both the session's newest time (first_value) and each row's place back from it (row_number), replacing max() OVER plus a second window on the same partition. A boolean `live` replaces the `ordered` CTE's 1/2 tier. On dev the old and new queries return the same 1,985 rows over 24 hours (EXCEPT ALL both ways is empty); the first 20 rows are the 7 live sessions round-robin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…session agent.messages comes only from PR #58, so the section now reads agent.lines, which main defines, and no longer depends on #58 merging first. It returns each session's newest message with a GROUP BY (max, arg_max), so neither the round-robin row number nor the per-session newest-time window is needed. On dev the newest message per session matches agent.messages exactly: 37 sessions over 24 hours, EXCEPT ALL empty both ways. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The five hand-written text prefixes are replaced by the field Claude Code records on each user line. On 24 hours of dev data every prefix maps to a field: compaction summaries are isCompactSummary, skill loads isMeta, peer messages origin.kind = 'peer', interruptions have no origin, and typed, queued and SDK prompts are origin.kind = 'human'. Of the human blocks starting with '<', 25 are the <system-reminder> attached to a prompt (dropped) and 26 are slash commands, which the old '<' rule wrongly dropped and which now count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The section now answers what each live session is working on instead of showing its newest message: one row per Claude session active in the last hour with its titles, branch, linked PRs, minutes idle, and the other live sessions that share its branch or a PR. It reads only top-level fields of agent.lines (sessionId, timestamp, gitBranch, aiTitle/customTitle, prRepository/prNumber), no message text. Run from the file on dev: 4 live sessions, 2 of them on one inf-1656 branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One row per session active in the last hour, from agent.sessions (#68, #76) instead of unpacking agent.lines JSON: every column but prompts and block_keys, minutes idle, and shares_branch_with as a list of session ids. Codex sessions are included. Titles and linked PRs are dropped: stream.blocks does not carry those lines. About 4 s against 20 s for the old read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4d04483 to
4b96eff
Compare
Adds a first query to the agent-stream skill for "what is every session doing now" (other terminals, Claude Desktop): one row per Claude session active in the last hour, with its titles, branch, the PRs it linked, minutes idle, and the other live sessions that share its branch or one of its PRs, which is where two sessions are about to collide.
agent.lines(sessionId,timestamp,gitBranch,aiTitle/customTitle,prRepository/prNumber): no message text, and nothing from agent.messages and agent.docs: the stream and the memories as plain rows #58 or One indexed transcript table: stream.blocks, agent.messages and agent.sessions on top #68.staging, the shared checkout's branch, doesn't count as an overlap.Tested by running the block from the file on dev: 4 live sessions, 2 of them on one
inf-1656branch. An earlier run showed 14 sessions, 3 sharing that branch.🤖 Generated with Claude Code