| feat(spaces): protocol contract, Harbor server, and the apps/x client chain — v0 end to end - @rowboat/spaces-protocol: the wire contract package (v0) - Harbor: one core, three faces (HTTP/WS/MCP), the §11 gate as a test suite; in-memory and Postgres (PgStore) stores; content-addressed blob store with disk and S3 drivers (spec §6 shape) - apps/x: core client + live socket, IPC, org registry; adding an org registers its MCP agent face; agent discovery via list_spaces + the spaces skill (MCP entries derived from the registry, never mcp.json) - @rowboat in topics: per-topic sessions, receipts, presence; thread context is pull-don't-push (read_topic); working chips render at the typing-indicator position; first-message invocations trigger sessions - docs: CONTRACT.md progress; tiered auth amendment (DCR + refresh are AS policy, the org stays a pure resource server) - ci: apps/harbor test job; harbor builds before every apps/x install Co-Authored-By: Claude <noreply@anthropic.com> | 11 天前 |
| feat(spaces): windowed message loading — newest page first, offset cursors BREAKING read-side change, by decision (dogfooding, no legacy mode): - listMessages is windowed newest-first: without beforeOffset it returns the LATEST limit (default 100, cap 200) messages — never the full history — plus hasMore. Page back with the oldest received offset; message offsets ride the space's one event sequence, so they are the cursor (strictly increasing, no timestamp ties). One extra fetched row answers hasMore without a count query; the existing (space_id, topic_id, stream_offset) index serves the window. - listTopics entries are TopicListing: the topic plus its immutable firstMessage, always included — killing the client's per-topic listMessages fan-out (N topics = N full-history fetches on every space open, the real load-time cost). - read_topic (MCP) windows the same way and gains beforeOffset; truncated is stated, never silent — the tool description tells agents to page back before summarising a whole topic. Client (Slack-style): - General loads the latest page and anchors to the bottom; nearing the top loads the previous page with scroll-position restoration (plus an explicit "load earlier messages" affordance). Thread panes get a "show earlier replies" loader and derive totals from Topic.messageCount, and never render a partial window's first message as the opener (the thread index supplies it). - One merge everywhere (mergeMessages: union by id, offset order, incoming wins): resyncs after reconnect keep older loaded pages, and echoes dedupe against the frames that eventually arrive. - The thread index is a synchronous fold over listTopics now — the per-topic fetch fan-out is deleted. Contract: amendment recorded under wire decision 2 in CONTRACT.md. Deploy: fleet first, app build immediately after (old builds against the new fleet mis-render thread parents until updated — accepted, dogfood). Verified: harbor 193 tests (12 new pagination scenarios, dual-store); apps/x 304 shared / 787 core (paging round-trip against a real server) / 358 renderer; typecheck, lint, main tsc clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> | 7 天前 |
| fix brain image | 1 个月前 |
| docs: add multilingual READMEs (zh-CN, ja, ko, es, fr, pt) (#851) Adds six translated READMEs under docs/readme/ and a language switcher to the English README linking to them. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> | 20 天前 |
| Run mongodb in docker | 1 年前 |
| Mega UI revamp | 1 年前 |
| feat(spaces): protocol contract, Harbor server, and the apps/x client chain — v0 end to end - @rowboat/spaces-protocol: the wire contract package (v0) - Harbor: one core, three faces (HTTP/WS/MCP), the §11 gate as a test suite; in-memory and Postgres (PgStore) stores; content-addressed blob store with disk and S3 drivers (spec §6 shape) - apps/x: core client + live socket, IPC, org registry; adding an org registers its MCP agent face; agent discovery via list_spaces + the spaces skill (MCP entries derived from the registry, never mcp.json) - @rowboat in topics: per-topic sessions, receipts, presence; thread context is pull-don't-push (read_topic); working chips render at the typing-indicator position; first-message invocations trigger sessions - docs: CONTRACT.md progress; tiered auth amendment (DCR + refresh are AS policy, the org stays a pure resource server) - ci: apps/harbor test job; harbor builds before every apps/x install Co-Authored-By: Claude <noreply@anthropic.com> | 11 天前 |
| feat(spaces): protocol contract, Harbor server, and the apps/x client chain — v0 end to end - @rowboat/spaces-protocol: the wire contract package (v0) - Harbor: one core, three faces (HTTP/WS/MCP), the §11 gate as a test suite; in-memory and Postgres (PgStore) stores; content-addressed blob store with disk and S3 drivers (spec §6 shape) - apps/x: core client + live socket, IPC, org registry; adding an org registers its MCP agent face; agent discovery via list_spaces + the spaces skill (MCP entries derived from the registry, never mcp.json) - @rowboat in topics: per-topic sessions, receipts, presence; thread context is pull-don't-push (read_topic); working chips render at the typing-indicator position; first-message invocations trigger sessions - docs: CONTRACT.md progress; tiered auth amendment (DCR + refresh are AS policy, the org stays a pure resource server) - ci: apps/harbor test job; harbor builds before every apps/x install Co-Authored-By: Claude <noreply@anthropic.com> | 11 天前 |
| improve embedding index docs and setup | 1 年前 |
| Fill license placeholder | 1 年前 |
| docs: add multilingual READMEs (zh-CN, ja, ko, es, fr, pt) (#851) Adds six translated READMEs under docs/readme/ and a language switcher to the English README linking to them. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> | 20 天前 |
| wip-electron | 7 个月前 |
| merge job workers | 1 年前 |
| Small cleanup in rowboat | 1 个月前 |
| Revert auth related changes to start.sh | 11 个月前 |