Repository navigation
Tags
Tags
T-01: wire bring-back into the People rows Completes the feature: until now the menu and the ladder existed but nothing in the UI reached them. - Agent rows take the shared right-click / long-press binding. Browser rows and read-only viewers do not: neither has a process to revive. - The row's one recovery button now BRINGS THE AGENT BACK instead of copying a prompt for the host to paste. Copy-a-message survives only for adopted and invite-code agents, where the summoner has no launch spec and genuinely cannot act. - The level passed to the relaunch is read off the agent's own record, so a revive never changes what the agent is allowed to do. - Summoner records refresh after a revive, so the process badge on the row stops showing the pre-revive state. Merge note: Room.tsx also has uncommitted work on codex/presence-scroll-integrity (the wake-ready presence chip, ~9 hunks around the header summary). This branch touches the People row, the imports, and the sheet render site, so the two should merge, but that branch must land first and be checked rather than assumed. apps/web: typecheck clean, production build clean, 683 passing. The 5 failures are pre-existing at a382bb1 and in files this branch does not touch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
fix(server): bound legacy local attachment uploads
fix(rooms): dedupe duplicate "falling back to open" on concurrent sweeps Two long-poll listeners observing the same expired moderator/lead both ran sweepTimeouts and each returned the skip + fallback, so the room posted the "falling back to open mode" notice (and the moderator skip) twice. The state writes were already idempotent; only the message emission double-fired. Gate the fallback emission on a SET NX claim keyed on the absent role + the deadline that lapsed (identical for both racers), so only the winning sweep returns the fallback; the loser suppresses it and state still converges via the winner's room CAS + turn clear. Adds a concurrent-dedupe regression test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
docs: sync README from commercial repo Brings the public README up to date with the rewritten version (real-world scenarios, multi-session framing, flow diagram). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docs: add room-web.png asset referenced by README The README references docs/assets/room-web.png but the file was never committed, so it rendered as a broken image. This is a faithful still of the agent-room.com room view: a four-agent code-review conversation with role chips and [DECISION] / [TODO] / [RESULT] structured artifacts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docs: add Chinese tool overview (TOOL_OVERVIEW_ZH.md) Add a Chinese-language summary of what Agent Room does, covering the core concept, MCP tools, install paths, Claude Code hook setup, and the two usage patterns. Intended as an at-a-glance intro for Chinese-speaking users. https://claude.ai/code/session_01F85xuSj5FR1iE8hddqjqui
fix(api): hotfix /api/report-page + /api/report-og 500s (robinAKL#29) PR robinAKL#28 shipped /api/report-page and /api/report-og as Vercel serverless functions that import @agent-room/upstash-client + @agent-room/shared workspace packages. Both packages declare: "main": "./src/index.ts" "exports": { ".": "./src/index.ts" } That's TypeScript source. The web app (Vite) handles TS at build time so the import works in apps/web/src. But Vercel functions run as plain Node — Node cannot execute .ts files at runtime — so the import resolves to raw TypeScript source and the function crashes with FUNCTION_INVOCATION_FAILED before the exported handler ever executes. Repro on production at the time of this commit: $ curl -A "facebookexternalhit/1.1" \\ https://www.agent-room.com/api/report-page?code=ABC-DEF-GHJ HTTP/2 500 x-vercel-error: FUNCTION_INVOCATION_FAILED This breaks both: - the /api/report-page endpoint itself - the crawler-only rewrite from /r/:code/report → /api/report-page, meaning any social platform that hits the report URL gets 500 (so Slack / Discord / Twitter / Facebook unfurls don't fire) Hotfix: - Drop the @agent-room/* imports from both api/ files. - Inline a minimal Upstash REST GET (single fetch + JSON parse, ~25 lines) so the function is self-contained. - Inline a `MiniReport` interface that's a structural subset of `RoomReport` covering only the fields these two endpoints read (topic, summary, exportedAt, messageCount, participants). - All caching / OG meta / SVG card logic is unchanged. Verification: - npx tsc --noEmit on both files — clean. - npm run build (workspace-wide) — clean (preexisting Toast warning). - The proper long-term fix is to ship the workspace packages as compiled JS so the original imports work in Node; tracked separately. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
feat(web): add permanent report social previews (robinAKL#28)
PreviousNext