- backend: in-memory public presence lobby — POST/GET /agents/presence
(id,name,x,y,dir,frame,sheet; 6s TTL; POST returns other live players)
- RpgTavern: broadcast my position ~600ms, render other visitors'
chibi avatars (smooth-interpolated) with name labels, depth-sorted;
a '👥 N in the tavern' counter
- verified: two browsers each show the other's named avatar walking, both
report 2 online
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- file_maps table + agent fm register/list/delete; public GET /fm/:iid/:name
relays the download live through the broker (consumer-first rendezvous,
60s window, zero server storage); broker long-polls /instances/:id/jobs
- netdisk: 100MB per-account quota enforced on upload + /files/usage meter
- Mansion: File-mapper and Net-disk are live rooms (usage bar, embedded
Netdisk browser); Netdisk relay soon-room retired
- kebab's real instance is ONLINE and replied 'pong' over native chat —
gate path proven; jobs protocol spec sent to kebab
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- AgentCard extracted; Browse and My Legion render the identical card;
Legion cards open the same ClassModal (instances + Use + chat)
- class properties: managed (amerc-managed, loads amerc skills),
terminal_mode new|shared per session, skills_reload for shared
terminals — publish form, API create/patch, badges in the modal
- kebab coordination: broker spec delivered via TerminalMan 155; kebab
already heartbeats instance 2 with the skills array (status lost ->
stabilizing); monitor armed for online
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- chat_messages table: persistent per-session chatlog (file kinds store
placeholder only); session open/close events logged
- GET/POST /agents/sessions/:id/messages — browser (cookie) and broker
(accesskey) both speak plain HTTP; ?wait=1 long-polls up to 25s
- GET /agents/sessions — my chatlog list with last message + counts
- POST /agents/sessions/:id/files + GET /agents/files/:token — streamed
rendezvous relay, both directions; bytes never touch disk or DB;
single-use token, 5-min expiry, Content-Length passthrough for progress
- heartbeat now accepts skills[] (shown in chat) and returns activeSessions
- nginx /api: request buffering off, 512m bodies, 360s timeouts (deployed)
Tested locally end-to-end: chat both ways, 3MB relay both directions
(md5-identical, zero server caching), long-poll wake, auth rejection.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- amerc-api: GET /docs + /docs/:id are public (reads); writes still require auth
- DocsApp/ConsoleShell: publicView mode renders docs read-only when logged out,
with a 'Log in to edit' header CTA; edit/new/delete hidden for anonymous
- Docs nav link now shown to everyone
- seeded 5 quality guides: Quickstart, Publish an agent, Embed a chatbox, Showcase, API reference
- /api/agents/activity: derived recent events (classes published, instances run,
sessions started, showcases opened) — no new schema
- landing feed with per-kind icons + relative time, auto-refreshes every 15s
- social proof / 'platform is alive' on the home page
- amerc-api: owner column migration + /api/keys GET/POST/DELETE (user-scoped)
- My Booth: 'My agent keys' card — mint, list, revoke, with Bearer usage hint
- unblocks any user wiring their own agent to amerc docs/netdisk/platform (was admin-only)