| fix(auth): validate payload hashes for empty request bodies | Dami | | +70 | -7 | |
| refactor(auth): make streamed request verification explicit | Dami | | +41 | -3 | |
| test(relay): add repeatable concurrent actor stress checks | Dami | | +860 | -0 | |
| test(integration): cover actor permissions and relay reconciliation | Dami | | +402 | -1 | |
| fix(relay): preserve authentication reasons in count errors | Dami | | +33 | -1 | |
| fix(blob): return not found for absent authorized downloads | Dami | | +24 | -5 | |
| test(auth): fuzz signed request bindings and relay actors | Dami | | +250 | -0 | |
| fix(protocol): reject null filter fields and list entries | Dami | | +94 | -0 | |
| fix(auth): distinguish denied members from unauthenticated readers | Dami | | +30 | -1 | |
| test(daemon): synchronize live policy changes in social fixtures | Dami | | +5 | -1 | |
| fix(relay): preserve configured trailing-slash endpoints | Dami | | +3 | -3 | |
| feat(cli): orchestrate standalone relay launches | Dami | | +502 | -24 | |
| feat(relay): add a standalone durable Nostr server | Dami | | +1157 | -1 | |
| refactor(relay): share a public runtime with the combined host | Dami | | +243 | -31 | |
| refactor(protocol): expose relay session and event references | Dami | | +22 | -5 | |
| docs: rename the rooms guide to chat | Dami | | +4 | -4 | |
| fix: retain Git recovery journals on storage errors | Dami | | +67 | -4 | |
| refactor: give tinygit owned storage and policy contracts | Dami | | +383 | -185 | |
| fix: enforce current source access for view artifacts | Dami | | +406 | -23 | |
| fix: validate transformed media and report incomplete renders | Dami | | +358 | -92 | |
| fix: recheck callback grants and source visibility before delivery | Dami | | +335 | -13 | |
| perf: reuse frontend templates and embedded asset handlers | Dami | | +214 | -49 | |
| [verified] Extract public protocol and metadata contracts | Hermes | | +2231 | -968 | |
| [verified] Extract standalone tinygit and tinyclient components | Hermes | | +2737 | -204 | |
| fix: keep chat threads flat and recover presence after resume | Dami | | +937 | -61 | |
| fix: align mobile drawer motion and validate signer fields by value | Dami | | +92 | -12 | |
| fix: release stale navigation handlers before shell swaps | Dami | | +85 | -2 | |
| feat: unify mobile navigation and recover signer connections | Dami | | +1133 | -56 | |
| feat: use Seedmark avatars for people and group chats | Dami | | +6055 | -60 | |
| fix: remove duplicate activity feed from home | Dami | | +30 | -6 | |
| docs: refresh agent discovery and feature guides | Dami | | +193 | -27 | |
| fix: keep grant decisions consistent during concurrent changes | Dami | | +36 | -8 | |
| feat: add agent task workflows and reviewed grant requests | Dami | | +4951 | -137 | |
| feat: bring rooms and encrypted direct messages into Chat | Dami | | +1845 | -68 | |
| feat: replace Articles with a Nostr social feed | Dami | | +2548 | -90 | |
| feat: add member-only files and repair upload experience | Dami | | +1491 | -139 | |
| fix: preserve login destinations and compact account relay lists | Dami | | +201 | -32 | |
| feat: organize files and surface wiki approvals | Dami | | +1549 | -146 | |
| fix: refresh cached profiles before rendering avatars | Dami | | +65 | -10 | |
| feat: render chat tables and distinguish message authors | Dami | | +559 | -27 | |
| fix: classify site snapshots separately from long tasks | Dami | | +202 | -21 | |
| test: align browser flow checks with navigation | Dami | | +3 | -2 | |
| test: seed repository for smart HTTP capabilities | Dami | | +23 | -0 | |
| fix: register private services once during navigation | Dami | | +11 | -2 | |
| docs: describe package contracts and service lifecycles | Dami | | +1094 | -261 | |
| refactor: clarify service boundaries and recover optional event work | Dami | | +9945 | -6988 | |
| feat: compact room attachment composer | Dami | | +196 | -16 | |
| docs: advertise room attachments in agent discovery | Dami | | +5 | -2 | |
| feat: add room uploads and inline agent attachments | Dami | | +2405 | -62 | |
| fix: restore themed custom view artifacts | Dami | | +416 | -49 | |
| document custom views and draw the readme flows as diagrams | Dami | | +121 | -1 | |
| manage custom views over MCP and cover them with tests | Dami | | +1167 | -22 | |
| render custom view artifacts in place of fenced code blocks | Dami | | +234 | -26 | |
| add custom views with external transforms and signed artifacts | Dami | | +1815 | -5 | |
| copy the page address from the crumb and stack wiki rows on phones | Dami | | +111 | -12 | |
| render pipe tables in wiki articles | Dami | | +126 | -4 | |
| document access requests, invites and NIP-43 joining | Dami | | +51 | -1 | |
| add access request tools to the browser agent | Dami | | +36 | -0 | |
| review access requests on the People page | Dami | | +191 | -3 | |
| hold a claim-less NIP-43 join as an access request for review | Dami | | +875 | -17 | |
| document wiki revisions, history and the approved-revision fallback | Dami | | +15 | -7 | |
| show wiki revision numbers, the history of revisions and the approved fallback in the web ui | Dami | | +122 | -33 | |
| number wiki revisions, list a page's history and fall back to the approved revision | Dami | | +400 | -43 | |
| keep replaced wiki versions as revisions in the store | Dami | | +94 | -1 | |
| document repository proposals from agents | Dami | | +17 | -4 | |
| show repository proposals with their state and offer the decision to maintainers | Dami | | +166 | -7 | |
| treat repository events from propose grants as proposals decided by maintainers | Dami | | +816 | -15 | |
| accept propose as a repository grant level | Dami | | +55 | -14 | |
| document the sites grant, agent upload expiry and the encrypted rule | Dami | | +55 | -3 | |
| add the publish_site MCP tool for NIP-5A manifests | Dami | | +142 | -1 | |
| show and edit the sites scope on the Manage > Agents page | Dami | | +79 | -5 | |
| treat an active agent grant as membership for uploads and retire expired agent uploads in maintenance | Dami | | +170 | -7 | |
| record an expiry on agent upload claims, sweep lapsed blobs and refuse plain uploads under an encrypted grant | Dami | | +206 | -10 | |
| admit site manifests from agents under a sites grant with a label and ttl | Dami | | +261 | -0 | |
| tell agents how plain git signs a push with git-token | Dami | | +1 | -0 | |
| document wiki proposals from agents | Dami | | +12 | -1 | |
| show wiki proposals with their state and offer the decision to the owner and moderators | Dami | | +116 | -12 | |
| test the wiki proposal state machine, visibility rule and notifications | Dami | | +251 | -0 | |
| hold wiki versions from propose agents until the owner or a moderator approves them | Dami | | +273 | -6 | |
| edit and publish your profile from the home page | Dami | | +395 | -15 | |
| render room messages as markdown on the page and in the live view | Dami | | +191 | -13 | |
| show people by profile name with the vendored nostr-name element | Dami | | +324 | -45 | |
| let wiki grants carry the wiki kinds and edit a grant from its card | Dami | | +112 | -17 | |
| assert the edited text on the room page test | Dami | | +3 | -3 | |
| show the newest text of an edited room message | Dami | | +77 | -6 | |
| center the room conversation column | Dami | | +3 | -1 | |
| let a room be created with a chosen id | Dami | | +14 | -5 | |
| keep the phone menu above the room compose bar | Dami | | +2 | -2 | |
| keep the job tool markers in the llms text beside the callback tools | Dami | | +1 | -1 | |
| accept public address literals as callback hosts | Dami | | +10 | -3 | |
| add callback tools to mcp and the browser agent and document callbacks | Dami | | +150 | -3 | |
| list each agent's callbacks on the agents page with pause, resume and remove | Dami | | +83 | -5 | |
| add event callbacks with signed delivery for agents that cannot stay connected | Dami | | +1549 | -44 | |
| anchor review comments to diff lines with file and line tags | Dami | | +718 | -25 | |
| count an agent with a maintain grant as a repository maintainer | Dami | | +475 | -40 | |
| count chat messages only when the mcp test reads a room | Dami | | +10 | -2 | |
| document long tasks, the jobs grant tag and the job tools | Dami | | +63 | -2 | |
| wake the requester for job results and failing feedback | Dami | | +73 | -0 | |
| add MCP tools to request, answer and read long tasks | Dami | | +388 | -17 | |
| browse long tasks with their feedback and results | Dami | | +517 | -3 | |
| accept NIP-90 job requests, results and feedback from members and agents | Dami | | +481 | -3 | |
| follow the room's scroll container on phones and say reply for one reply | Dami | | +8 | -8 | |
| describe rooms in the web UI | Dami | | +12 | -0 | |
| expose room reads, navigation and posting to browser agents | Dami | | +81 | -1 | |
| compose, create, administer and follow rooms in the browser | Dami | | +533 | -5 | |
| add the rooms list, room and thread pages with a rooms rail and panel | Dami | | +711 | -8 | |
| mark agent identities in room member lists | Dami | | +16 | -2 | |
| name the approval buttons reaction to match the shared element | Dami | | +1 | -1 | |
| escape the middle dot in the wiki test | Dami | | +1 | -1 | |
| wrap long links in wiki articles and fit the wiki list on phones | Dami | | +3 | -2 | |
| add wiki browser tools and describe the wiki pages in the docs | Dami | | +65 | -1 | |
| add wiki-compose and nostr-react elements with the wikiName helper and their tests | Dami | | +271 | -19 | |
| add the wiki list and page routes with the merge request bar, editor, compare and history views | Dami | | +458 | -10 | |
| mark code fence languages with data-lang so wiki markup carries no class attributes | Dami | | +2 | -2 | |
| format the agents test | Dami | | +1 | -1 | |
| show a reply's text, not a reaction's sign, beside answered requests | Dami | | +1 | -1 | |
| document asking a person for a decision and the notification answers | Dami | | +59 | -2 | |
| offer approve, deny and reply on the notification and list approvals through the browser tools | Dami | | +222 | -6 | |
| show requests for a decision on the approvals page and answer them with a signed reaction | Dami | | +456 | -12 | |
| browse requests for a decision and wake the asked person with approve, deny and reply actions | Dami | | +762 | -12 | |
| describe the room, wiki, agent and decision tools in the mcp guide | Dami | | +26 | -0 | |
| add room, wiki, agent and decision tools to the mcp table | Dami | | +638 | -7 | |
| note the live mcp endpoint on the agents panel and escape the middle dot in its test | Dami | | +3 | -3 | |
| document the Manage > Agents page and the agent browser tools | Dami | | +31 | -0 | |
| keep the agent table in its column widths and show the first active agent's activity | Dami | | +18 | -5 | |
| expose agent grants to browser tools | Dami | | +42 | -1 | |
| add the Manage > Agents page with grant cards, recent activity and a signed new-agent form | Dami | | +659 | -8 | |
| add a bech32 encoder to the browser helpers | Dami | | +48 | -1 | |
| add the browseagent query with an agent's grant and recent events | Dami | | +91 | -1 | |
| describe rooms for relay owners, members and connecting clients | Dami | | +68 | -0 | |
| cover rooms: creation and cap, room roles, slug mirror, gate rules, records, browse calls and the live stream | Dami | | +1068 | -0 | |
| route room events, serve room browse calls and a live room stream, and wake devices for room mentions | Dami | | +537 | -17 | |
| add a room model beside the tenant group with relay records and room-aware gates | Dami | | +974 | -56 | |
| document the wiki | Dami | | +35 | -0 | |
| browse wiki pages, versions and merge requests and wake authors when a merge request arrives | Dami | | +1063 | -2 | |
| add the wiki package with NIP-54 name normalization, link discovery and a Djot renderer | Dami | | +541 | -0 | |
| document the MCP endpoint and link it from the README and browser tools guide | Dami | | +144 | -0 | |
| serve MCP tools at /mcp with NIP-98 and describe the machine surface at /llms.txt | Dami | | +768 | -2 | |
| compare integer enums when validating tool arguments | Dami | | +39 | -5 | |
| add a stateless MCP transport with header validation and a tool registry | Dami | | +1092 | -0 | |
| ignore agent worktrees | Dami | | +1 | -0 | |
| document agent identities | Dami | | +88 | -0 | |
| mirror agent grants on publish, add agent management methods and advertise active agents | Dami | | +331 | -4 | |
| enforce agent grants at the write and import gates | Dami | | +342 | -3 | |
| add agent grants and the agent role | Dami | | +518 | -5 | |
| mint repository-root proofs for plain git and agents with tiny git-token | Dami | | +187 | -1 | |
| merge service status into Health with build versions and browser tool readiness, and group the rails | Dami | | +99 | -73 | |
| name the push operation, log delivery counts and expose links, files and notifications to browser agents | Dami | | +73 | -12 | |
| offer a quiet install link in the footer when the browser allows it | Dami | | +32 | -1 | |
| show install previews in the manifest | Dami | | +11 | -1 | |
| finish large uploads through Background Fetch with every request signed up front | Dami | | +262 | -10 | |
| wake devices for messages, replies and mentions with per-device categories and an app badge | Dami | | +466 | -31 | |
| serve browser scripts as cached files loaded where used and anchor the theme control in the rail | Dami | | +139 | -25 | |
| remember phone signers per device, share pages natively and keep the screen awake while uploading | Dami | | +48 | -13 | |
| move the theme toggle to the bottom of the navigation | Dami | | +4 | -3 | |
| let the owner send a test notification from the inbox panel | Dami | | +2 | -2 | |
| describe the installed app | Dami | | +19 | -0 | |
| accept shares and web+nostr links in the installed app and add the device notification toggle | Dami | | +321 | -3 | |
| deliver relay notifications to opted-in devices over Web Push | Dami | | +826 | -8 | |
| match the installed app's launch colours to the theme and cache the shell offline | Dami | | +79 | -13 | |
| read the Connect page with the browser session instead of prompting the signer | Dami | | +124 | -19 | |
| pick or drop a folder instead of toggling the file input | Dami | | +63 | -14 | |
| lead the Files page with the listing and upload from one panel control | Dami | | +277 | -227 | |
| move the remaining shared helpers into tiny.js and match the module style | Dami | | +389 | -726 | |
| stop multipart hashing on disconnect and require a credential on the repair proxy | Dami | | +59 | -21 | |
| remove history cursors when a sweep completes or its filter disappears | Dami | | +53 | -6 | |
| announce signer connections through a document event | Dami | | +2 | -2 | |
| describe history cursors, repair budgets and empty upload checks | Dami | | +8 | -4 | |
| share browser helpers through the tiny namespace | Dami | | +1690 | -783 | |
| verify multipart uploads outside the tenant lock and accept empty upload checks | Dami | | +334 | -6 | |
| resume large histories from a saved cursor and remember legacy peers | Dami | | +500 | -22 | |
| bound pull request repair with a fetch budget and quarantine | Dami | | +745 | -4 | |
| document files, private repositories and Git collaboration | Dami | | +125 | -3 | |
| add issues and pull requests to repository pages | Dami | | +1632 | -27 | |
| synchronize repository conversations with NIP-77, live subscriptions and outbox discovery | Dami | | +2179 | -94 | |
| add GRASP-08 private tenants with repository-root proofs and encrypted service lists | Dami | | +1096 | -56 | |
| add encrypted uploads, folders and file messages to the Files page | Dami | | +2213 | -10 | |
| add BUD-13 path uploads, BUD-14 multipart uploads and storage allowances | Dami | | +2083 | -33 | |
| add file storage allowances to tenant policy | Dami | | +63 | -2 | |
| add a stable cursor for newest-first storage queries | Dami | | +10 | -0 | |
| advertise filter and sha1-in-want on git upload-pack | Dami | | +12 | -2 | |
| edit connections as a list on the Connect page | Dami | | +184 | -67 | |
| leave sites, blog and bookmarks out of the default connections | Dami | | +4 | -4 | |
| set form and connect-card labels in the muted sans style | Dami | | +2 | -2 | |
| show the content focus ring only for keyboard focus and dim panel notes | Dami | | +2 | -1 | |
| show connect cards on the home page | Dami | | +267 | -42 | |
| expose visible connections as a public method | Dami | | +97 | -1 | |
| offer relay list hints on the account page and show connections at home | Dami | | +177 | -0 | |
| bring the deployment guide and Caddyfile in line with the domain cutover | Dami | | +18 | -18 | |
| add browser and HTTP checks for the hosted viewers | Dami | | +569 | -0 | |
| navigate within the shell and open the phone menu without JavaScript | Dami | | +482 | -117 | |
| title browse pages and harden the file viewer | Dami | | +77 | -13 | |
| resolve README links to file viewers and render articles as Markdown | Dami | | +102 | -4 | |
| scope tenant prefixes with an HTML tokenizer | Dami | | +81 | -15 | |
| group inbox and outbox with manage in the rail | Dami | | +1 | -1 | |
| draw tree connectors with lines, format file times, wrap phone rows | Dami | | +11 | -6 | |
| keep management pages and signer controls to their audience | Dami | | +36 | -9 | |
| paint the app title bar with the active theme | Dami | | +11 | -2 | |
| refuse unclaimed subdomains of the site domain | Dami | | +61 | -0 | |
| dial the relay through tailscaled's SOCKS5 proxy on the edge | Dami | | +5 | -4 | |
| retire Funnel in favour of the Fly edge | Dami | | +3 | -51 | |
| add a Fly edge for the public domain | Dami | | +110 | -0 | |
| recognise media uploads and preview them | Dami | | +146 | -6 | |
| keep the sign-in QR hidden until it is generated | Dami | | +2 | -2 | |
| reorganize the web UI into a rail, content column, panel and prompt | Dami | | +826 | -341 | |
| render a safe Markdown subset for READMEs and relay text | Dami | | +116 | -0 | |
| hold Git responses until git produces body bytes | Dami | | +110 | -0 | |
| document repository publishing with ngit | Dami | | +7 | -7 | |
| publish repositories with nak git instead of a local script | Dami | | +7 | -134 | |
| add a repository publishing script for GRASP hosting | Dami | | +159 | -8 | |
| document public access through Tailscale Funnel | Dami | | +13 | -1 | |
| discover Git performance fixtures instead of naming them | Dami | | +24 | -15 | |
| rewrite the NIP-46 bunker helper as a readable module | Dami | | +98 | -9 | |
| vendor the conformance suite | Dami | | +1232 | -39 | |
| generalize the Linux test host | Dami | | +35 | -35 | |
| remove working documents and the parity ledger | Dami | | +4 | -1761 | |
| document web UI markup conventions | Dami | | +2 | -1 | |
| organize web UI around embedded templates and custom elements | Dami | | +1373 | -253 | |
| render source and diff views with semantic elements | Dami | | +60 | -49 | |
| tidy module requirements | Dami | | +1 | -1 | |
| init | Dami | | +45177 | -134 | |
| tighten tenant service authorization and delivery wiring | Dami | | +88 | -10 | |
| compose tenant services and route local doors | Dami | | +796 | -0 | |