Repository navigation
EPIC: a kanban card opens its agent conversation -- history, mobile sheet, A2A on the same thread #5388
Description
Goal
Owner, 2026-10-01: a tap on any card of https://app.t27.ai/game/kanban opens the person's conversation with the agent about that task, with its history, so any task can be written to and carried on from the card. Mobile first. The same conversation is continued by every agent the person brings: the app's sheet, tri card, and any outside agent over A2A.
Contract of record: specs/automation/kanban-card-chat.t27 (this repo). Host: gHashTag/999-multibots-telegraf (apps/vibee-editor/render + player). Board: gHashTag/trinity Queen.tsx KanbanView.
Design in one paragraph
The thread is task:gHashTag/<repo>#<n> in the host's agent_messages, one per (person, task) -- keyed by repository AND number, never by number alone. The sheet lives in the app over the framed board (the agent, the session and the thread are the app's); it opens at half with the composer pinned, GitHub is a small secondary link. A card asks to open through the same-origin open-card postMessage, a tap on its GitHub anchor inside the frame (until the board posts), or ?card=<n> in the address. A2A: metadata.task or contextId = the thread key continues the same conversation, recorded on both sides.
Work packages
- S0 measure the live board (866 cards, repo gHashTag/t27, 245 titled only
#<n>) - S1 competitor research: Linear, GitHub Copilot, Codex, Devin, Cursor, Jules
- S2 skill
kanban-card-chat(host repo) - S3 spec
kanban-card-chat.t27-- this repo, test-report 10/10 (spec(automation): kanban-card-chat -- a card opens its agent conversation #5389) - S4 vendor the spec into render and player (
check-t27-specs.mjs) -- gHashTag/999-multibots-telegraf#3208 - S5 render:
taskgate on chat/history/append, the task note for the model -- 999#3208 - S6 render: A2A
metadata.task/contextIdcontinues the thread -- 999#3208 - S7 player: the card sheet over /game/kanban,
?card=, anchor catch -- 999#3208 - S8 trinity: card tap posts
open-card-- feat(queen): a card tap opens its agent chat in the app framing the board trinity#1203 (QUEEN_REF bump -- owner) - S9
tri card <n> [text]-- 999#3208 - S11 gates green, host PR open: gHashTag/999-multibots-telegraf#3208 (merge and deploy by the owner)
- S12 phone:
tri shot card-chat/card-chat-emptyat 390/320, ru/en -- 999#3208 - S13 the card's work in the sheet: linked PRs, check states, agent cards that run only on a tap; spec v2 (spec(automation): kanban-card-chat -- a card opens its agent conversation #5389, b8daa6b) -- 999#3208
- S13b spec v3 after a live GitHub check: the timeline is read at both ends (it runs oldest first; v2 hid the newest PRs), the middle is said as "at least", checks take one read, and an open costs <= 4 of 60 public reads/hour (spec(automation): kanban-card-chat -- a card opens its agent conversation #5389, 4557402) -- 999#3208 ca39747dc
- S14 red CI baseline cleaned -- gHashTag/999-multibots-telegraf#3214
- S16 the server reads a card's status for everyone (spec v4,
/api/card-status, one GraphQL read, shared cache), inert untilGITHUB_READ_TOKENis set -- 999#3208 e2f053948 - S16b
tri card-check: one command, GETs only, ok / wait / fail for thread, door, merges - S15 (contract done, door missing) a column move from the sheet: the contract is in spec v4 (
MOVE_*: one card, says the column seen, backlog/dropped only, a reason in the answer); no button until the Queen has a one-card door (/queen/move404 today;PUT /queen/registryreplaces every task) -- owner's call
Priority
Owner asked for this epic to lead the Queen's and the hive's work.
Activity
spec(automation): kanban-card-chat v2 -- the task's work in the sheet…
spec(automation): kanban-card-chat v3 -- a long timeline read at both…
spec(automation): kanban-card-chat v4 -- the server reads for everyon…
gHashTag commentedon Oct 1, 2026
Loop 4 (7b36a766e)
tri card-check: the 4th verdict, parity.render/scripts/card-status-parity.tssends the server'sCARD_STATUS_QUERYto live GitHub (reads only) and compares the result with the client's v3 read of the same card. For 999#999 and t27#5388 the server and the client agree. A broken query exits 1, which is the negative control.POST /queen/move, basefeat/queen-supervisor, not merged).QUEEN_REFis bumped.AgentChatView(task:)ontask:<owner>/<repo>#<n>. Writing is locked until the server answers with that exact thread.VibeeTests/CardChatTaskTestsis built, but its run is still pending. At load average ~420 the simulator stopped answering, and two runs hung at launch.Owner actions: merge #3208, BrowserOS#519 (then bump
QUEEN_REF), and setGITHUB_READ_TOKENon vibee-render.🤖 Generated with Claude Code
spec(automation): kanban-card-chat v5 -- the keeper's way to the move…
gHashTag commentedon Oct 1, 2026
Loop 5: spec v5 is bound in 999#3208 (
229f4e0d9). That covers the live thread (SSE), the keeper move proxy (dark until BrowserOS#519 andMOVE_DOOR_EXISTS), and nightly drift viatri card-drift(one issue, open/comment/close). iOS 22/22.Owner steps still open:
🤖 Generated with Claude Code
spec(automation): kanban-card-chat v6 -- the agent at work in the ope…
gHashTag commentedon Oct 1, 2026
Loop 6:
tri hive-nightlyis live as the scheduled task. Issues it may open here: "card-check drift", "card-check live", "phone-shot regression". It skips flakes.🤖 Generated with Claude Code
spec(automation): kanban-card-chat -- a card opens its agent conversa…
gHashTag commentedon Oct 3, 2026
Delegated to the Queen (children, both pass
tri spec checkas full specs, priority/critical):specs/automation/review-jam.t27-- the review-jam cases and the Queen's action for each (bound later bytri jamin 999).specs/automation/card-chat-night-watch.t27-- when the nightlytri hive-nightlyopens, comments, closes or leaves the regression issue.The 999-side code (card sheet,
tri jam, SSRF fix, deps) is carried by coder bees as PRs in gHashTag/999-multibots-telegraf and merged by reviewer bees; checks run on Railway (tri remote-check).