Repository navigation
Conversation
… by whose move it is A third board on /game/kanban beside TASKS and CLIENTS: every open thing the signed-in person is part of, grouped into OUR MOVE / DUE / THEIR MOVE / NOBODY'S, read from the render's ball_board tool (spec of record: t27 specs/automation/ball-board.t27, gHashTag/t27#5375). - Every card names the .t27 spec it stands on and opens it in the specs view; a card with none says so ("no .t27 spec") and the head counts them. - The caller's own AI-browser session is a card. "Open the AI browser" goes to the app's own /game/browser view, so the person can watch the agent and step in at any moment. Privacy and safety, held by a new gate (check:ball-board, 66 checks): - lib/ballBoard.ts holds no credential; it names a PlayerTool and triIdentity makes the call with no arguments, so identity is the token's, not the page's. - A link is drawn only as https to github.com / t27.ai or exactly /game/browser. Anything else is dropped, not rewritten. - A browser card cannot carry a stream URL, a view token or an endpoint, whatever the host sends; a spec path cannot climb out of specs/. - Nothing is fetched directly, stored in the browser or logged. - The board is private: never the default, drawn only behind the clients guard (hive-board and clients-filter contracts made component-aware). triIdentity's PLAYER_TOOLS comment now says the plain truth: being on the list is necessary, not sufficient -- the render's GAME_TOKEN_TOOLS refuses both private boards to a bare game token, so they answer on app.t27.ai only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Reviewer bee Y: not merged. (1) CONFLICTING with main. (2) Required status 'T27 work report' = FAILURE. (3) It edits .github/workflows/website-checks.yml, so it needs the owner's |
|
bee review: left open -- CONFLICTING with main (head 0781b36). Conflicts in |
|
Bee review: #1199, not merged (head This PR was already CONFLICTING/DIRTY against main. #1202 has now merged ( If the ALL board (CRM, code and browser cards, spec links) is still wanted, it needs a rebase on top of #1202's |
What
A third board on
/game/kanban-- ALL -- beside TASKS and CLIENTS. It shows every open thing the signed-in person is part of: their CRM matters, mail threads, GitHub work and their own AI-browser session, grouped by whose move it is (OUR MOVE / DUE / THEIR MOVE / NOBODY'S).specs/automation/ball-board.t27(feat(automation): ball-board v2 -- refuse shared-domain links, title links, card specs t27#5375). Host: renderball_board(gHashTag/999-multibots-telegraf, branchfeat/ball-board-v2)..t27spec and opens it in the specs view; unspecced cards are labelled and counted, never given one./game/browser, so the person can watch the agent and step in at any time.Privacy and safety
New gate
check:ball-board(66 checks, wired intowebsite-checks.yml) feeds the reader a hostile answer:BALL_BOARD_TOOL: PlayerTool,loadBallBoard/game/browsersafeLink-- dropped, never rewrittenreadCardkeeps 8 named fields onlyspecs/specPathhive-board/clients-filtercontracts, now component-awareKnown limit, stated not hidden
The render's
GAME_TOKEN_TOOLSrefuseshive_board/ball_boardto a bare game token, so ont27.aiboth private lanes answer "refused" and draw nothing. They work onapp.t27.ai, where the token is the app session's. Fail-closed and intended; thePLAYER_TOOLSdoc comment now says so.Checks run locally
check:hive-board65,check:clients-filter56,check:ball-board66,check:queen-direction92 -- all PASS.tsc -b: no errors in changed files (179 pre-existing errors elsewhere, unchanged).queen-viewportskipped locally (no Chrome on this machine); CI runs it.Do not merge before the render side (
ball_boardv3) is deployed, or the lane answers "refused".🤖 Generated with Claude Code