Belfry Brussels

Changelog

Every change to this belfry: the code it runs and what was changed on the server, with who started each change. Settings are named, never their values.

13 November 2026

server Settings changed: COMMUNITY_NAME, COMPANY_NAME, THEME, REGISTER, ADMIN_NETS, CUSTODY_SEED_DIR, HOMEPAGE
started by belfry · 16:00 UTC
code Ships chat 3a93d6a: Guest join: after a retry, an expired / wrong code first checks the relay for the save (the first try may have gone through and only its answer got lost) 76074fd
started by Xavier Damman · 15:27 UTC
code Ships chat 8cd92ac: Code boxes: a pasted code fills all six ("Code: 123 456" too) and replaces a full row; a failed connection keeps the digits, retries, and offers Try again ddd77e3
started by Xavier Damman · 15:13 UTC
code Website proposals: a failed publish says so in the proposal's chat; marking it Passed again retries (once per version and pass) 19d2f6a
started by Xavier Damman, Claude Opus 5.5 · 12:53 UTC
code Ships chat 6d267c1: Website updates start as proposals: "Propose as the website" on a shared version; the proposal shows its preview and goes live once a belfry admin marks it Passed 9a277af
started by Xavier Damman · 12:48 UTC
code Website: a proposal in #website that a belfry admin marks Passed goes live (website.watch, every minute) 624789d
started by Xavier Damman, Claude Opus 5.5 · 12:30 UTC
code Channel pages: two templates. Public = issues (Open / Closed from the chat's labels); members only = requests (the form first). Sign in, or post as a guest ec78103
started by Xavier Damman, Claude Opus 5.5 · 12:17 UTC
code Agents: a mirrored agent leaves a channel when its member does (9001, mirror); mirrored adds are tagged e71b661
started by Xavier Damman, Claude Opus 5.5 · 12:17 UTC
code Ships chat 683c974: Agents are marked wherever they write: "<member>'s agent" or "Agent" 2df749d
started by Xavier Damman · 12:10 UTC
code A member's own agent follows its member into every channel (agents.mirror, on becoming theirs and every 10 minutes) 908ac6c
started by Xavier Damman, Claude Opus 5.5 · 11:56 UTC
code Expiry: the first tick after a start runs (monotonic time starts at boot, so a box up for less than an hour skipped it); tests no longer depend on uptime a0a573a
started by Xavier Damman, Claude Opus 5.5 · 11:41 UTC
code Channel pages: moving a channel between public and members only is never retroactive (periods) ac9ac06
started by Xavier Damman, Claude Opus 5.5 · 11:31 UTC
code Ships chat 193557f: Channel settings gear right of the bell for its admins; a channel can take threads only (or events, proposals) 73713c6
started by Xavier Damman · 11:15 UTC
code Open first-run setup, belfry setup-reset, and agents asking to join 874cf25
started by Xavier Damman, Claude Opus 5.5 · 10:34 UTC

12 November 2026

code Ships chat bed85ae: roles, invite as a member (admins), the invite sheet's 'Joins as', Belfry settings 47abb97
started by Xavier Damman, Claude Opus 5.5 · 22:31 UTC
code Member links: the join answer says the role and the length of membership 62c8b8a
started by Xavier Damman, Claude Opus 5.5 · 21:30 UTC
code Roles for members, and member links from the invite sheet 8ce483a
started by Xavier Damman, Claude Opus 5.5 · 21:29 UTC
code Guest save: a wrong code says how many tries are left; 'taken' names the account (nip05) so the apps can sign in natively d2b4c52
started by Xavier Damman, Claude Opus 5.5 · 18:05 UTC
code Push: one device row per identity, so two accounts on one phone both get their notifications 854a4da
started by Xavier Damman, Claude Opus 5.5 · 17:38 UTC
code Ships chat b2e968b: Guest links open straight into the channel, in guest mode; Join asks name, e-mail and the code sent by e-mail f6bf8bc
started by Xavier Damman, Claude Fable 5.2 · 17:15 UTC
code Guest mode follows the guest into a second channel 73521d3
started by Xavier Damman, Claude Fable 5.2 · 17:00 UTC
code Guest links open in guest mode: read first, join with a name and an e-mail 79ac780
started by Xavier Damman, Claude Fable 5.2 · 16:49 UTC
code Sessions: a signer that doesn't answer says so (503 signer), not 'you hold your own key' 60c82bf
started by Xavier Damman, Claude Fable 5.2 · 10:02 UTC
code Sign in from the phone apps without a browser: the session is named by its client, bound to the session key, wrong codes say how many tries are left 639b39b
started by Xavier Damman, Claude Fable 5.2 · 08:42 UTC
code Ships chat c6579a0: Channel info: no white screen on Members, About without boxes, a Log of everything, Todos; handle and photo row 7c0cc20
started by Xavier Damman · 08:29 UTC
code Ships chat 6029788: Meeting form: tap faces to pick people, + to add someone (name or e-mail, then the other) c89299e
started by Xavier Damman · 07:49 UTC
code Ships chat 59c4b10: Audio recording: + → Audio recording, pause/resume, saved on the device as it records 4c51b60
started by Xavier Damman · 07:35 UTC
code Ships chat 2215f2a: Meetings: add people by name (an account is made for them), hand a held account over 272be87
started by Xavier Damman · 07:19 UTC
code Meetings: people added by name get an identity (POST /api/meeting-guests) de14ba2
started by Xavier Damman, Claude Opus 5.5 · 07:11 UTC
code Ships chat 9768c93: Channel pull-down: description first, latest photos, members as faces; slug e-mail; smooth lightbox; no to-do mark ce688cb
started by Xavier Damman · 06:39 UTC
code Mail: a channel answers to its plain slug (bugs@ reaches bugs-c3e5) fd6e438
started by Xavier Damman, Claude Opus 5.5 · 06:32 UTC

11 November 2026

code Ships chat 7504d77: Event form: "Hidden" instead of "Link" (not listed: anyone with the link) 2e5cbd7
started by Xavier Damman · 23:56 UTC
code Ships chat 5ccc71f: Sheets scroll on phones (the form scrolls in its own box, the drawer keeps the drag to close); new events, proposals, to-dos and channels keep a draft until sent 37c0175
started by Xavier Damman · 21:59 UTC
code Default channels: the descriptions an earlier version wrote for #proposals and #events are refreshed when nobody changed them 2b56c9f
started by Xavier Damman, Claude Opus 5.5 · 21:45 UTC
code Ships chat 2db1d76: Requests and proposals: a member turns a request into a proposal (its thread says so); events in #events are public by default, in #bookings for members; each channel says who sees it fe08b81
started by Xavier Damman · 21:20 UTC
code Default channels: 🌐 #events and #requests public, #bookings and #proposals for members; an earlier public #proposals set up by default becomes members only b9d87a9
started by Xavier Damman, Claude Opus 5.5 · 21:00 UTC
code Ships chat a325118: Public channels show a globe; #proposals and #events take one type of post (a New proposal / New event button instead of the message box) 270f2e7
started by Xavier Damman · 19:25 UTC
code Default channels #proposals and #events: public, a page at <domain>/<id>, one type of post each 3808432
started by Xavier Damman, Claude Opus 5.5 · 19:13 UTC
code Web threads: each author from the web gets an account; agents' page: staying reliable 0b1598a
started by Xavier Damman, Claude Opus 5.5 · 19:12 UTC
code Ships chat e139d5f: Channel settings: one Visibility setting (Public / Members only) replaces the page's list option; /proposals is free for a channel 3451ff4
started by Xavier Damman · 19:06 UTC
code Channel pages: on the public website only, hourly digest, channel visibility; /proposals removed 7df7ad2
started by Xavier Damman, Claude Opus 5.5 · 19:01 UTC
code Ships chat 23c9b83: Channel settings: threads from the web, a public page at <domain>/<slug> 995d44d
started by Xavier Damman · 17:36 UTC
code A channel's public page: anyone opens a thread from the web at <domain>/<slug> d86d3f6
started by Xavier Damman, Claude Opus 5.5 · 17:26 UTC
code Ships chat b86d662: Sending after a dropped connection: seconds, not half a minute b36c719
started by Xavier Damman · 17:14 UTC
code Ships chat ab57a9d: Branding: admins set the logo, cover image and two colours (Me → Branding) 59d7f3d
started by Xavier Damman · 17:03 UTC
code Branding: admins set the belfry's logo, cover and colours, kept in its own Nostr profile 2eee89c
started by Xavier Damman, Claude Opus 5.5 · 16:54 UTC
code Mention digest: the community up top, mentions per channel, a reply link under each 3652a0c
started by Xavier Damman, Claude Opus 5.5 · 16:44 UTC
code Ships chat 1bbbb05: Full pull-down: a vertical swipe on a to-do scrolls the list 5a56219
started by Xavier Damman · 16:36 UTC
code Ships chat 4bde2b2: E-mail threads: the subject lives in the header, not in every bubble a63b432
started by Xavier Damman · 16:26 UTC
code Ships chat dabedd9: Images open in a lightbox: as big as possible, swipe/arrows/buttons through a message's images, Esc, ✕ or a tap outside to close 96ccd2d
started by Xavier Damman · 13:14 UTC
code Ships chat d6cfae1: To-dos: the one being worked on shows a ring filling clockwise with the minutes of the current stretch, 1h/2h… in it past an hour 77aeba6
started by Xavier Damman · 13:05 UTC
code Ships chat f845d47: Drafts: unsent text (with picked @mentions and #channels) is kept per channel and per thread on this device; sending clears it 619cb6c
started by Xavier Damman · 12:46 UTC
code Ships chat 49d378d: Live updates: check the relay sockets still answer (back in the foreground, every minute) and reconnect a dead one; reopen a live subscription the relay closed 1202e46
started by Xavier Damman · 12:38 UTC
code Ships chat 91c1b6b: To-dos: their steps show in the thread of the message they came from, with times; badge done/total of the latest 20; the header pulled all the way keeps its layout and shows more b083d64
started by Xavier Damman · 12:30 UTC
code Invite page for agents: say which to-do you are working on now (working heartbeat every 2 min, idle) eeee2a9
started by Xavier Damman, Claude Opus 5.5 · 12:16 UTC
code Ships chat e597816: To-dos: a turning circle on the one being worked on now (2101 'working' heartbeat, fresh for 5 min; 'idle' stops it) fc6beee
started by Xavier Damman · 12:12 UTC
code Invite page for agents: the channel to-do list (create, claim, update in a thread, mark done) d4bbf75
started by Xavier Damman, Claude Opus 5.5 · 11:50 UTC
code Invite page for agents: how to attach pictures and files (Blossom upload + imeta) 8d025e8
started by Xavier Damman, Claude Opus 5.5 · 10:00 UTC
code push.<domain> answers 404 when this belfry doesn't run the gateway (error ran after the handle) 4a62cb9
started by Xavier Damman, Claude Opus 5.5 · 06:50 UTC
code Merge branch 'push' into belfry-setup 6b78a6d
started by Xavier Damman · 06:38 UTC
code Phone apps' sessions are named by client_id: Belfry for iPhone / Belfry for Android (both share sh.belfry.app://connect) 2420f5d
started by Xavier Damman, Claude Opus 5.5 · 06:38 UTC
code docs/push.md: what changed while building (secret names, 503/502, groups key, DMs by arrival, thread links) 1c6b3fb
started by Xavier Damman, Claude Opus 5.5 · 06:38 UTC
code Push in the stack: gateway profile, push.<domain>, belfry config settings 21b7a9d
started by Xavier Damman, Claude Opus 5.5 · 06:38 UTC
code services/push-gateway: POST /v1/send to APNs and FCM for the phone apps 926932d
started by Xavier Damman, Claude Opus 5.5 · 06:38 UTC
code Push notifications on the belfry: devices, settings and the watcher (push.py) 159e941
started by Xavier Damman, Claude Opus 5.5 · 06:38 UTC
code docs/push.md: push notifications for the phone apps (gateway, devices, settings, payload, triggers) 0b6af36
started by Xavier Damman, Claude Opus 5.5 · 06:14 UTC

10 November 2026

code POST /api/whois: member, agent or guest per key (apps can't tell from events); belfry.json revalidates with an ETag instead of a 5-minute cache 5cbab04
started by Xavier Damman, Claude Opus 5.5 · 23:17 UTC
code chat.<domain>/events/<link> opens the chat's event page (and lets the phone apps claim event links on the host with assetlinks.json) 3f46c28
started by Xavier Damman, Claude Opus 5.5 · 23:05 UTC
code belfry apply: one at a time per box (flock); a second one waits instead of racing on the same containers c98186d
started by Xavier Damman, Claude Opus 5.5 · 22:55 UTC
code The belfry's own posts in the chat carry its name, not 'Drop box' (the groups API key is the server itself) d63823e
started by Xavier Damman · 22:46 UTC
code Agents: POST /agents {mine: true} says why it refuses (not_member, unknown, taken, not_guest_agent, not_inviter, limit) a6c9a69
started by Xavier Damman, Claude Opus 5.5 · 22:44 UTC
code Ships chat 85ede89: Reply opens the thread's own view (or the third column) with its box focused, instead of a second reply box in the channel 74d8887
started by Xavier Damman · 22:39 UTC
code Android App Links: chat.<domain>/.well-known/assetlinks.json for sh.belfry.app (release certificate) 5951f29
started by Xavier Damman, Claude Opus 5.5 · 22:14 UTC
code Ships chat ef9e1cc: Belfry events 9dbe16d
started by Xavier Damman, Claude Opus 5.5 · 19:44 UTC
code CORS of /api/*: PUT too (the chat sets an event's custom URL from chat.<domain>) 72d4b7e
started by Xavier Damman, Claude Opus 5.5 · 19:04 UTC
code Homepage skill: /events stays on the apex (the community's events, events.py) ab77195
started by Xavier Damman, Claude Opus 5.5 · 19:00 UTC
code Belfry events: public pages, the events API, tickets, applications, co-host links 48c3b21
started by Xavier Damman, Claude Opus 5.5 · 18:44 UTC
code Groups relay patch 0004: applications from keys that are not relay members 4269c68
started by Xavier Damman, Claude Opus 5.5 · 18:29 UTC
code Ships chat b96bd00: threads in a third column on large screens, # suggests channels (by belfry-agent) 56443eb
started by Xavier Damman, Claude Opus 5.5 · 17:35 UTC
code Ships chat 0a0ad41: profile's Message button centred on wide screens 08ce06f
started by Xavier Damman, Claude Opus 5.5 · 17:16 UTC
code A member's own agents; guests and agents brought into one more channel; ships chat 453684b 210f36f
started by Xavier Damman, Claude Fable 5.2 · 17:00 UTC
code Guest links only by people who have the channel; own apps named at sign-in; prebuilt images for belfry-sh; ships chat 1834584 d24202c
started by Xavier Damman, Claude Fable 5.2 · 15:42 UTC
code Ships chat 7b03279: the audit's chat fixes (only the author's edits count, proposals in feedback on the channel line, drafts kept on a failed save) 0aa7b8c
started by Xavier Damman, Claude Fable 5.2 · 15:26 UTC
code Dead code: claim.json_dumps, credentials.presented_claims and VCT_PATH, theme.BASES had no reader anywhere a15fb65
started by Xavier Damman, Claude Fable 5.2 · 14:43 UTC
code guests: _channel_event_kind only called _channel_event a4bd370
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code Previews: a new site object and HTTP client every minute per preview, never closed a740a8d
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code Theme: the community's name was escaped twice in page titles; the THEME comment described a removed osv base look e713c0e
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code Mailer: a name with a line break in a subject raised (500 on /apply); unsent mails piled up in memory without a mail provider 3ac6de5
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code Drop box: the upload proof's key fell back to the fixed word "drop" without a pass secret 38a1bb0
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code Blossom gate: a created_at or expiration that is no number raised (500) instead of 401 074c556
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code Sign-in by e-mail: an address with Odoo wildcards (%@%) found a member and the answer gave their address 459bd76
started by Xavier Damman, Claude Fable 5.2 · 14:41 UTC
code A channel's guest could read the members-only relay through pass.<domain>/monitor/stream d624f58
started by Xavier Damman, Claude Fable 5.2 · 14:39 UTC
code Own register: passes never expired, no cron runs expire there; the background round does it hourly a8c6858
started by Xavier Damman, Claude Fable 5.2 · 14:38 UTC
code Console: with Authentik down, the admins were asked for on every page view (30 s timeout each) 53443c1
started by Xavier Damman, Claude Fable 5.2 · 14:38 UTC
code Own register: the steward dashboard and the shift pages raised instead of showing no shifts 1d5f86e
started by Xavier Damman, Claude Fable 5.2 · 14:38 UTC
code Guest passes minted tokens: a guest's 30 days counted as 31 token days when a mint is set eb5f27e
started by Xavier Damman, Claude Fable 5.2 · 14:38 UTC
code backup.sh: back up the belfry's own register and infra/data 604c40d
started by Xavier Damman, Claude Fable 5.2 · 10:20 UTC
code NEXT_STEPS: section 4 listed work as open that sections 3o to 3zi record as built 709dcd7
started by Xavier Damman, Claude Fable 5.2 · 10:20 UTC
code belfry-homepage skill: the list of paths a homepage cannot use was incomplete 722cf17
started by Xavier Damman, Claude Fable 5.2 · 10:20 UTC
code install.sh: cap container logs on a new server b9d7111
started by Xavier Damman, Claude Fable 5.2 · 10:19 UTC
code install.sh: the plan and the closing lines match what is installed f017c3b
started by Xavier Damman, Claude Fable 5.2 · 10:19 UTC
code infra/README: services, overlays and folders that were missing cda43da
started by Xavier Damman, Claude Fable 5.2 · 10:19 UTC
code belfry app: say where an installed app really answers 8c29336
started by Xavier Damman, Claude Fable 5.2 · 10:19 UTC
code belfry apply: remove superseded image versions after a successful apply 077af88
started by Xavier Damman, Claude Fable 5.2 · 10:19 UTC
code docs/README: list the documents the index did not know 07f832c
started by Xavier Damman, Claude Fable 5.2 · 10:19 UTC
code register.md, mail.md: invite links live on belfry.<domain>; outgoing mail does not depend on Odoo 4774c5a
started by Xavier Damman, Claude Fable 5.2 · 10:18 UTC
code README: the install paragraph as install.sh works now 3527d47
started by Xavier Damman, Claude Fable 5.2 · 10:18 UTC
code belfry-steward skill: admins moderate every group; API addresses on belfry.<domain>/api/v1 3fb025c
started by Xavier Damman, Claude Fable 5.2 · 10:18 UTC
code belfry-theme skill: the chat is at chat.<domain>, installed apps at <domain>/<name>/ 04d5c9b
started by Xavier Damman, Claude Fable 5.2 · 10:17 UTC
code belfry-app skill: the session API is belfry.<domain>/api/v1/session 5ba2832
started by Xavier Damman, Claude Fable 5.2 · 10:17 UTC
code belfry-install skill: server sizes, first admin, mail providers and ports as install.sh has them 27e3f9c
started by Xavier Damman, Claude Fable 5.2 · 10:17 UTC
code Ships chat 30e775b: one summary line per channel with a pull-down, to-dos, pinned messages, pod shapes a20dbc0
started by Xavier Damman, Claude Fable 5.2 · 08:29 UTC
code Usernames: a member starts with their name as a slug, not a number, and can change it; ships chat 4c71a22 68af7af
started by Xavier Damman, Claude Fable 5.2 · 07:47 UTC
code Ships chat 85ccbd4: back buttons no longer bounce between Messages and a conversation f32b781
started by Xavier Damman, Claude Fable 5.2 · 07:39 UTC
code Ships chat d4cfafa: deleting a message asks first, in the app 574ec9a
started by Xavier Damman, Claude Fable 5.2 · 07:26 UTC
code Ships chat 4c83aa1: edit your messages, Open thread chip, no sideways scroll on iPhones e37dca6
started by Xavier Damman, Claude Fable 5.2 · 07:03 UTC
code An admin can make a saved guest an admin: they become a member; ships chat 05d2415 63e16d2
started by Xavier Damman, Claude Fable 5.2 · 06:47 UTC
code Keycast patch 0023: one client key, one identity, on every path 41f3e55
started by Xavier Damman, Claude Fable 5.2 · 06:38 UTC

9 November 2026

code Keycast patch 0022: a bunker connection bound to its client key at creation 834a74d
started by Xavier Damman, Claude Fable 5.2 · 22:34 UTC
code Forms lock on submit on the belfry's pages; a guest's session is asked for its own key; ships chat 0c06dc3 73963ab
started by Xavier Damman, Claude Fable 5.2 · 22:22 UTC
code Ship chat dd63466 3214da0
started by Xavier Damman, Claude Fable 5.2 · 22:17 UTC
code Guest join: the same device asking twice gets the same account (ships chat ff0ae0e) e355a74
started by Xavier Damman, Claude Fable 5.2 · 22:08 UTC
code Guest links without a hand-off code: chat.<domain>/join/<token>, one signed join request d0fde3d
started by Xavier Damman, Claude Fable 5.2 · 22:00 UTC
code Ship chat 4756dae 292b1da
started by Xavier Damman, Claude Fable 5.2 · 21:34 UTC
code Chat 551dba2: Discord-style reactions and message menu 5263265
started by Xavier Damman, Claude Opus 5.5 · 19:35 UTC
code Chat 4ba145f: sign out as a link, room for reactions under each message 151d987
started by Xavier Damman, Claude Opus 5.5 · 18:41 UTC
code Chat 7bc5f82: profiles with tags and places, members map, admin role, channel blind, dialogs on laptops a36b345
started by Xavier Damman, Claude Opus 5.5 · 18:18 UTC
code Places for profiles (GET/POST /api/v1/places: GeoNames cities15000 plus places members add near a city) and the admin role from the chat (POST /api/v1/admins) cbfc944
started by Xavier Damman, Claude Opus 5.5 · 18:13 UTC
code One-tap guests: a name, and straight into the channel; the e-mail later ea4773e
started by Xavier Damman, Claude Opus 5.5 · 16:33 UTC
code Sign-in accepts Belfry's own native apps (sh.belfry.app://connect, 'Belfry for iPhone'), approved by default e4ee3f2
started by Xavier Damman, Claude Opus 5.5 · 16:14 UTC
code The invite page has its styles: labels over full-width fields, the belfry's button; after sending, the form folds under 'Send it again' 36ff214
started by Xavier Damman, Claude Opus 5.5 · 15:54 UTC
code The website as a conversation: #website, previews at preview.<domain>, publish a shared version 729596a
started by Xavier Damman, Claude Opus 5.5 · 15:36 UTC
code The chat moves to chat.<domain>; links people get go to belfry.<domain> or chat.<domain> 0387536
started by Xavier Damman, Claude Opus 5.5 · 15:28 UTC
code Agents as guests: /invite/<token>.md tells them how, they accept with their own key 96ffbc9
started by Xavier Damman, Claude Opus 5.5 · 15:15 UTC
code The belfry's API at belfry.<domain>/api/v1 49fa939
started by Xavier Damman, Claude Opus 5.5 · 15:00 UTC
code Chat (village-app 03f3c54): threads unfold in place, Reply from the long press, older threads resurface 65f5060
started by Xavier Damman, Claude Opus 5.5 · 14:56 UTC
code The community's own domain may call the API (CORS): the chat at <domain>/chat makes guest links, follows and sessions again 2191c45
started by Xavier Damman, Claude Opus 5.5 · 14:42 UTC
code Group admins sync skips the relay's own key; chat (village-app 37c924a): the invite QR keeps its place while loading or failing 095e4db
started by Xavier Damman, Claude Opus 5.5 · 14:16 UTC
code Community admins administer every channel; @mention digests by e-mail; Markdown in announcement mails 53b4a2b
started by Xavier Damman, Claude Opus 5.5 · 14:11 UTC
code Chat (village-app 2cfb85f): stuck old e-mails say so 66ee44d
started by Xavier Damman, Claude Opus 5.5 · 13:52 UTC
code Chat (village-app e54c649): messages and e-mails are saved first and sent through the outbox, with retries; no more endless Sending… 4bd0a84
started by Xavier Damman, Claude Opus 5.5 · 13:51 UTC
code Any member can bring a guest into a channel; e-mail threads in the chat; room between the mail providers e4ff795
started by Xavier Damman, Claude Opus 5.5 · 12:57 UTC
code Chat (village-app 10941c8): an empty channel offers Invite people 3feef2c
started by Xavier Damman, Claude Opus 5.5 · 12:25 UTC
code Chat (village-app 65fa3e3): join lines need invited-by 8892751
started by Xavier Damman, Claude Opus 5.5 · 12:21 UTC
code A channel's guests: a 30-day link from a channel's admin, that channel only 31394be
started by Xavier Damman, Claude Opus 5.5 · 12:14 UTC
code Chat (village-app 35ee840): search in the header, unread count on ☰, day separators 79baf6b
started by Xavier Damman, Claude Opus 5.5 · 11:54 UTC
code Chat (village-app 7fce647): the channel header pulls down (peek, full), active members this month, 'seen' 9fd0bd5
started by Xavier Damman, Claude Opus 5.5 · 11:41 UTC
code Installed apps live on the community's domain: <domain>/chat, one origin and one sign-in 4202fdd
started by Xavier Damman, Claude Opus 5.5 · 11:24 UTC
code Chat (village-app 81d0655): the phone drawer slides both ways, full height, drag/back/Esc to close 03a75ba
started by Xavier Damman, Claude Opus 5.5 · 11:17 UTC
code Chat (village-app 38b792f): channels in a drawer on phones, SVG icons, unread count on your avatar af8c3dc
started by Xavier Damman, Claude Opus 5.5 · 10:54 UTC
code Sign-in page: an app of this belfry is shown by its path (/chat), and no badge once approved b469c12
started by Xavier Damman, Claude Opus 5.5 · 10:43 UTC
code apps.<domain>: the tag says 'Not restyled for Belfry yet' (the frame renamed the old wording), on its own line acf0d26
started by Xavier Damman, Claude Opus 5.5 · 10:23 UTC
code apps.<domain>: your apps for everyone, the apps that can be added for admins; old app hosts empty the phone's cached copy 95bd420
started by Xavier Damman, Claude Opus 5.5 · 10:18 UTC
code Shipped apps: reinstall a current copy that doesn't link the theme's own.css yet 144ac99
started by Xavier Damman, Claude Opus 5.5 · 09:12 UTC
code No community's look in the code: Belfry's look only, the rest is a theme folder; Belfry Brussels's apps off by default cf30503
started by Xavier Damman, Claude Opus 5.5 · 09:07 UTC

8 November 2026

code Console in direction A: one home that grows with you (visitor, member, admin strip with next steps); setup as a checklist with one E-mail row (Lettermint or Resend, key tried before saving) and add-ons apart 2c29f8c
started by Xavier Damman, Claude Opus 5.5 · 23:19 UTC
code Chat: the laptop layout (channel list always on the left, you at its bottom) e7e611d
started by Xavier Damman, Claude Opus 5.5 · 23:09 UTC
code Shipped apps: the community name is COMMUNITY_NAME bc0fe21
started by Xavier Damman, Claude Opus 5.5 · 22:41 UTC
code Shipped apps live in infra/shipped-apps (infra/apps/chat is the chat.<domain> image's source) 1880cd9
started by Xavier Damman, Claude Opus 5.5 · 22:31 UTC
code apps.<domain>/ lists the installed apps in the belfry's look; chat ships with every belfry b7c6d8c
started by Xavier Damman, Claude Opus 5.5 · 22:30 UTC
code The monitor moves to the console (belfry.<domain>/monitor); no Odoo check without Odoo cfabcd4
started by Xavier Damman, Claude Opus 5.5 · 22:23 UTC
code Lettermint as a mail provider; the version and updates from the admin console 43c8eb0
started by Xavier Damman, Claude Opus 5.5 · 19:45 UTC
code settings: register_mode (REGISTER), not shadowing BaseSettings 61c60f2
started by Xavier Damman, Claude Opus 5.5 · 18:41 UTC
code The belfry's own register: Odoo becomes an optional add-on b859ab5
started by Xavier Damman, Claude Opus 5.5 · 18:36 UTC
code Shared inboxes: mail from anyone to a channel becomes an e-mail card; admins answer as the channel d478a3f
started by Xavier Damman, Claude Opus 5.5 · 17:18 UTC
code Mail to a channel: only what the member wrote, with the whole e-mail one tap away 0a8de56
started by Xavier Damman, Claude Opus 5.5 · 13:53 UTC
code belfry apply reloads the proxy, so a changed Caddyfile takes effect 793a627
started by Xavier Damman, Claude Opus 5.5 · 00:53 UTC
code E-mail as messages: name@ and channel@<domain> receive mail, members answer from the chat 986895b
started by Xavier Damman, Claude Opus 5.5 · 00:49 UTC

7 November 2026

code Own sign-in on pass.<domain> (e-mail + code, the belfry look); drop page: sign in or upload as a guest, channel linked to the chat; other belfries show their own name d7f738d
started by Xavier Damman, Claude Opus 5.5 · 19:50 UTC
code Drop box links: upload to a channel from a link, anonymously, with a name, or as a member 20bb190
started by Xavier Damman, Claude Opus 5.5 · 16:05 UTC
code Announcements in any channel: admins' messages tagged t=announcement, followed per channel ec1fef6
started by Xavier Damman, Claude Opus 5.5 · 15:08 UTC
code Announcements: "as soon as possible" or monthly; the confirmation link confirms 515e929
started by Xavier Damman, Claude Opus 5.5 · 14:56 UTC
code Public announcements: an admins-only channel, followers by e-mail, a morning digest 3d4047f
started by Xavier Damman, Claude Opus 5.5 · 14:13 UTC
code Sessions carry their device ("Chat · Safari on iPhone"), listed apart in /api/me/sessions; member numbers have no prefix (new databases) ce68bcd
started by Xavier Damman, Claude Opus 5.5 · 08:00 UTC

6 November 2026

code Sessions over the API; addresses from the signer's username d76f391
started by Xavier Damman, Claude Opus 5.5 · 09:03 UTC
code Sign-in page wording: members open a session in an app with their own account ad9012f
started by Xavier Damman, Claude Opus 5.5 · 08:28 UTC
code test_theme: strip comments before looking for the rules dd1b01e
started by Xavier Damman, Claude Opus 5.5 · 08:27 UTC
code Fix the base stylesheet (it was all comment) and the sign-in page script in a browser not signed in b2d8427
started by Xavier Damman, Claude Opus 5.5 · 08:24 UTC
code Apps need an admin's approval; requests and approvals are Nostr events 0f517d0
started by Xavier Damman, Claude Opus 5.5 · 08:18 UTC
code belfry app install: a belfry's own static web apps at apps.<domain>/<name>/ 2394997
started by Xavier Damman, Claude Opus 5.5 · 07:26 UTC

5 November 2026

code Setup: a one-question-at-a-time first run; never show text from the URL 31bf2f9
started by Xavier Damman, Claude Opus 5.5 · 16:56 UTC
code install.sh: 4 GB of RAM is enough to run (warn under 8); images already on the server count for the disk check 290bcfa
started by Xavier Damman, Claude Opus 5.5 · 08:18 UTC
code lean_build: tag each local build <repo>:tree-<hash>, so a reinstall finds it (instead of infra/.built) bf7bffe
started by Xavier Damman, Claude Opus 5.5 · 08:16 UTC
code First run by link, first admin with a browser session key; sign in to any app as name@domain 916f538
started by Xavier Damman, Claude Opus 5.5 · 08:04 UTC
code belfry setup-code: pass the name through 4b3c383
started by Xavier Damman, Claude Opus 5.5 · 07:18 UTC
code Setup page: providers folded until opened, one form each; setup codes made for a person (belfry setup-code NAME), or the name asked with the code; no 'who' field fb36070
started by Xavier Damman, Claude Opus 5.5 · 07:16 UTC
code Setup page keeps 'applying' during the apply; CLI as root without git ownership warnings; /git README title once 760635a
started by Xavier Damman, Claude Opus 5.5 · 06:59 UTC
code Themes, belfry.<domain>/setup and /git 529f578
started by Xavier Damman, Claude Opus 5.5 · 06:53 UTC

4 November 2026

code Merge branch 'belfry-console' into belfry-sh 6feae6e
started by Xavier Damman · 13:04 UTC
code belfry: an image without a name is belfry-<service> (Compose's default), so it is not rebuilt every time a4c0e02
started by Xavier Damman, Claude Opus 5.5 · 13:04 UTC
code belfry apply on little disk: rebuild an image only when its sources changed 9a3a61a
started by Xavier Damman, Claude Opus 5.5 · 13:02 UTC
code Blossom accepts web files (HTML, CSS, JS, JSON, fonts, …) for nsites, kept 5 years 3cbe3f6
started by Xavier Damman, Claude Opus 5.5 · 13:02 UTC
code belfry apply: with little disk, build one image at a time and empty the build cache after each 2e9d822
started by Xavier Damman, Claude Opus 5.5 · 12:40 UTC
code install.sh: new belfries show their own website (HOMEPAGE=nsite), a placeholder until published 8833685
started by Xavier Damman, Claude Opus 5.5 · 12:39 UTC
code belfry.<domain>: overview, status, members by e-mail, website approvals; placeholder homepage b894e6a
started by Xavier Damman, Claude Opus 5.5 · 12:38 UTC
code DEPLOY: the git server is prebuilt too 31313cf
started by Xavier Damman, Claude Opus 5.5 · 12:29 UTC
code Prebuilt images: the git server (ngit-grasp) too b2d0e2f
started by Xavier Damman, Claude Opus 5.5 · 12:29 UTC
code belfry: record changes in the changelog, belfry homepage publish|status 9817181
started by Xavier Damman, Claude Opus 5.5 · 12:17 UTC
code Community pages every belfry serves: /proposals, /monitor, /changelog 97cd8ac
started by Xavier Damman, Claude Opus 5.5 · 12:15 UTC
code Community homepage on the apex: start page, a proxy to the website, or an nsite (NIP-5A) c3302ba
started by Xavier Damman, Claude Opus 5.5 · 12:07 UTC
code NEXT_STEPS §3zu: git server deployed on belfry.tofauti.net, smoke green 4f1e29c
started by friedger, Claude Opus 5.5 · 12:01 UTC
code Prebuilt images on GHCR: the signer, proxy, groups relay and onboarding service 6ff5a4e
started by Xavier Damman, Claude Opus 5.5 · 11:58 UTC
code Git server for agents: ngit-grasp at git.<domain>, members are the active passes af98fe8
started by friedger, Claude Opus 5.5 · 11:51 UTC
code install.sh: say where it stopped, quieter apt and Docker install; disk sizes from a real run c8aafd4
started by Xavier Damman, Claude Opus 5.5 · 11:51 UTC
code install.sh: Caddy on 80/443 by default, nginx only with --nginx c4fdee2
started by Xavier Damman, Claude Opus 5.5 · 11:45 UTC
code One-command install: curl -fsSL https://belfry.sh/install.sh | sudo bash 51a6aa9
started by Xavier Damman, Claude Opus 5.5 · 11:37 UTC

1 November 2026

code Fewer onboarding screens for outside apps: Keycast 0021, Village Notes signs in by itself f0c1642
started by friedger, Claude Opus 5.5 · 14:08 UTC
code Merge github/main: PR #1 (belfry-event allows any kind) e7fd146
started by friedger, Claude Opus 5.5 · 14:07 UTC
code Merge PR #1: Keycast policy belfry-event: allow any kind ea4a407
started by Friedger · 14:07 UTC
code Signed in on the way back to the app: the welcome page signs in and ends at return_url cb934c4
started by friedger, Claude Opus 5.5 · 13:55 UTC
code test_nip46check: ruff format (the padding table one tuple per line) f1fb532
started by friedger, Claude Opus 5.5 · 13:38 UTC
code Pass order API: payment_url straight to Mollie's checkout, return_url back to the app 528de41
started by friedger, Claude Opus 5.5 · 12:55 UTC
code Keycast policy belfry-event: allow any kind 2001790
started by Xavier Damman, Claude Opus 5.5 · 08:59 UTC
code Invite codes from an app: /api/invites without an e-mail, Village Notes "Invite someone" eb3743d
started by friedger, Claude Opus 5.5 · 00:56 UTC
code Sign-out back to the app, no "Stay signed in?" step, branded Keycast pages for outside apps ef04e28
started by friedger, Claude Opus 5.5 · 00:06 UTC

31 October 2026

code feat: add signin with email 48e10ba
started by friedger · 23:48 UTC
code Internal invoices numbered as orders (ORD/) when another organisation invoices the tickets 8c6dca9
started by friedger, Claude Opus 5.5 · 20:04 UTC
code Plan snapshot note: rev 90, tickets invoiced by XL Collective (§3zq) da41674
started by friedger, Claude Opus 5.5 · 10:25 UTC
code Tickets booked at the seller's Odoo: invoice, payment and credit note over JSON-2 925fc47
started by friedger, Claude Opus 5.5 · 10:09 UTC
code Village notes: an example app on a Belfry (invite, bunker sign-in, tokens, notes) 59d71c0
started by friedger, Claude Opus 5.5 · 09:16 UTC

30 October 2026

code Agent command: one action per call through the holder's bunker (me, invite, invites, status, revoke) d8c981b
started by friedger, Claude Opus 5.5 · 23:56 UTC
code COMMUNITY_NAME quoted in .env.example: bootstrap sources .env, and the unquoted space broke it 88c73b6
started by friedger, Claude Opus 5.5 · 23:31 UTC
code E-mail code for an app's own key: /api/email-code binds the key to the address in Odoo 9231001
started by friedger, Claude Opus 5.5 · 16:01 UTC
code Bootstrap accepts Stripe restricted keys (rk_test_, rk_live_); DEPLOY.md lists their permissions 1a04fd5
started by friedger, Claude Opus 5.5 · 15:35 UTC
code Apps connect to a Belfry: /.well-known/belfry.json, /api/me, CORS, steward skill 87865ce
started by friedger, Claude Opus 5.5 · 15:35 UTC
code NEXT_STEPS §3zn: deployed to both servers, smoke 220 ok on each 041d100
started by friedger, Claude Opus 5.5 · 13:38 UTC
code Blossom gate keeps the public proxy's X-Forwarded-Proto: blob URLs are https again a540371
started by friedger, Claude Opus 5.5 · 13:18 UTC
code Smoke 6w: the smoke steward leaves the stewards group again 3737762
started by friedger, Claude Opus 5.5 · 13:08 UTC
code Agents act for a pass holder through a bunker; stewards get a free pass 847e0a0
started by friedger, Claude Opus 5.5 · 13:07 UTC

28 October 2026

code Fresh install on a server: bootstrap waits for Issuer2's own metadata; ADMIN_NETS before bootstrap 85b5051
started by friedger, Claude Opus 5.5 · 15:30 UTC
code Short names for the participant apps: <domain>/chat and others redirect to their hosts ba5a58f
started by friedger, Claude Opus 5.5 · 15:30 UTC
code Pass API and agent skill: an agent orders a pass from an invite on a visitor's behalf e2a0ce6
started by friedger, Claude Opus 5.5 · 09:01 UTC

27 October 2026

code Encrypted OpenID4VP responses (direct_post.jwt) for the door and pass sign-in: Talao presents the pass 4c90785
started by friedger, Claude Opus 5.5 · 17:46 UTC
code Sign-in code next to the magic link: a 6-digit code in the same mail, for devices without the mailbox 68ee49e
started by friedger, Claude Opus 5.5 · 17:46 UTC
code CLAUDE.md: refer to NEXT_STEPS, the slice contract and the plan snapshot by path, not as imports fbac39c
started by friedger, Claude Opus 5.5 · 17:46 UTC
code NEXT_STEPS: Belfry registered at the EUDI Launchpad registrar 5c72549
started by friedger, Claude Opus 5.5 · 16:54 UTC
code NEXT_STEPS: EUDI registrar section is §3zk (§3zj is the sign-in code) aa221e0
started by friedger, Claude Opus 5.5 · 16:41 UTC
code EUDI reference wallet: signed issuer metadata, registrar certificates for issuer and verifier f34c57c
started by Claude, Claude Opus 5.5 · 15:32 UTC

26 October 2026

code Programme: a Shifts tab for volunteers and stewards 851868f
started by friedger, Claude Opus 5.5 · 16:51 UTC
code Groups: Flotilla on a NIP-29 relay (zooid); every participant can open a group 36e89e1
started by friedger, Claude Opus 5.5 · 16:45 UTC
code Volunteers: a two-week pass earned with three shifts; shifts in Odoo, a personal shift page, steward pages eb36064
started by friedger, Claude Opus 5.5 · 16:44 UTC
code Applications: <domain>/apply, answered with an invite or a friendly no on the steward pages a7155b2
started by friedger, Claude Opus 5.5 · 15:41 UTC
code Sign-up journey from the user test: invites wait for payment, VAT, real invoices, welcome page, mail to apps 028aec9
started by friedger, Claude Opus 5.5 · 15:36 UTC
code Photos: no more black uploads f96efbd
started by friedger, Claude Opus 5.5 · 11:27 UTC
code Sign-in: the account page's button goes straight to the e-mail sign-in; no avatars 755ff5e
started by friedger, Claude Opus 5.5 · 10:53 UTC
code Programme review follow-ups: calendar filters under the relay's cap, retries 36ae07b
started by friedger, Claude Opus 5.5 · 04:44 UTC
code Programme: page past the relay's cap, word search, titles only for bookings 9f7ad55
started by friedger, Claude Opus 5.5 · 04:39 UTC
code NEXT_STEPS: polls on Nostr deployed 52733d9
started by friedger, Claude Opus 5.5 · 04:35 UTC
code Polls on Nostr: public relay hint, smoke checks, docs ee55af5
started by friedger, Claude Opus 5.5 · 04:29 UTC
code Polls on Nostr: an announcement when a poll opens, the result when it closes a0f91af
started by friedger, Claude Opus 5.5 · 04:25 UTC
code NEXT_STEPS: programme app complete and deployed d2f26a5
started by friedger, Claude Opus 5.5 · 03:53 UTC
code Programme app: phone navigation, search, reminders, offline, polls per session 58085bd
started by friedger, Claude Opus 5.5 · 03:42 UTC
code NEXT_STEPS: programme app deployed on the test VM 4eebd3e
started by friedger, Claude Opus 5.5 · 03:04 UTC
code Programme app: announce, edit and cancel your own session f390a2f
started by friedger, Claude Opus 5.5 · 02:36 UTC

25 October 2026

code Programme app: what is on now, RSVPs, comments and photos per session 38c531b
started by friedger, Claude Opus 5.5 · 23:43 UTC
code Calendar on phones: square mark, date on one line, day view first ec88ae9
started by friedger, Claude Opus 5.5 · 23:43 UTC
code Wallet: send to someone from the directory, receive by QR, clearer history 36349e3
started by friedger, Claude Opus 5.5 · 18:16 UTC
code Wallet: the pass's tokens arrive on sign-in; no Lightning address settings 07b0587
started by friedger, Claude Opus 5.5 · 17:11 UTC
code Programme and room bookings as public calendar events 6a4a1fa
started by friedger, Claude Opus 5.5 · 16:21 UTC
code Invoice page: no salesperson for participants (the onboarding service's user) 82ff200
started by friedger, Claude Opus 5.5 · 16:17 UTC
code Invoice and payment pages link to Belfry, not to Odoo 571d088
started by friedger, Claude Opus 5.5 · 16:08 UTC
code Branded error pages: proxy, onboarding service, Odoo 68262dd
started by friedger, Claude Opus 5.5 · 15:51 UTC
code Share preview: Belfry Brussels instead of "Odoo" for invite links 056d6da
started by friedger, Claude Opus 5.5 · 15:29 UTC
code zerotier.sh dns: no forwarded AAAA for the domain (the public IPv6 would bypass ZeroTier) dce21e8
started by friedger, Claude Opus 5.5 · 15:20 UTC
code Admin network DNS: dnsmasq on the VM's ZeroTier address 9eb35ea
started by friedger, Claude Opus 5.5 · 15:20 UTC
code Wallet: the participant's own signer, seed and nutzap key in an encrypted backup on the relay f039d2a
started by friedger, Claude Opus 5.5 · 11:11 UTC
code Join with an own Nostr key: proof on the invite page, keyless signer account at activation 28ce1a7
started by friedger, Claude Opus 5.5 · 11:03 UTC
code NEXT_STEPS: iDEAL and Bancontact are enabled in the Mollie account cdeeb9f
started by friedger, Claude Opus 5.5 · 10:16 UTC
code NEXT_STEPS: the verifier kept a stale status list beyond its TTL 2d707da
started by friedger, Claude Opus 5.5 · 10:16 UTC
code Status list: indexes above the highest in use stay valid 6c1f8af
started by friedger, Claude Opus 5.5 · 10:06 UTC
code Smoke: follow the start page's forward; the test-run notice on Odoo's invite page; tester notes: the November test window 16cd2fc
started by friedger, Claude Opus 5.5 · 10:05 UTC
code Start page at the apex, invites from participants, feedback page, test-run notice 0082ac4
started by friedger, Claude Opus 5.5 · 09:25 UTC
code NEXT_STEPS: the user's open to-dos (Mollie methods and key, old backups, venue IPv4) 1cbd867
started by friedger, Claude Opus 5.5 · 08:59 UTC
code NEXT_STEPS: the test VM's fresh install (Belgium, EUR, new keys) 3305775
started by friedger, Claude Opus 5.5 · 08:46 UTC
code bootstrap: offer only the Mollie payment methods the Mollie account has enabled 5a7343f
started by friedger, Claude Opus 5.5 · 08:44 UTC
code Fresh Odoo database in the company's country (BE, EUR); status list valid only for active passes 97047cd
started by friedger, Claude Opus 5.5 · 08:30 UTC
code Blueprints: no placeholder fallback for client secrets 4ba88f2
started by friedger, Claude Opus 5.5 · 08:29 UTC
code Secrets as files instead of environment variables; Docker hardening 9f4fc10
started by friedger, Claude Opus 5.5 · 08:03 UTC
code Mollie: a pending refund revokes the pass; rate limits for the venue WiFi eb5f277
started by friedger, Claude Opus 5.5 · 08:00 UTC
code odoo.conf carries a PBKDF2 hash of the master password, not the password 2a046d4
started by friedger, Claude Opus 5.5 · 07:32 UTC
code Default avatars from the key; Mollie next to Stripe with refunds and chargebacks 4a1849d
started by friedger, Claude Opus 5.5 · 07:09 UTC
code Stripe from bootstrap: Odoo's provider from STRIPE_PUBLISHABLE_KEY and secrets/stripe_secret_key, both webhooks 24d6afe
started by friedger, Claude Opus 5.5 · 00:08 UTC
code Reports and moderation: a Report link in the directory, market and photos, steward handling 3fe4edb
started by friedger, Claude Opus 5.5 · 00:07 UTC
code Privacy notice, terms, refund policy, community rules, help on pass.<domain>; event-day runbook 028abc6
started by friedger, Claude Opus 5.5 · 00:05 UTC

24 October 2026

code Sync workflow: actions/checkout@v5 (runs on Node.js 24; v4's Node.js 20 is deprecated) 0b73a07
started by friedger, Claude Opus 5.5 · 23:49 UTC
code DEPLOY: reload the proxy after a Caddyfile change (the directory is mounted) ea4a914
started by friedger, Claude Opus 5.5 · 23:47 UTC
code Docs for readers new to the project: current state only, a docs index, the pass sign-in bridge 22dab0d
started by friedger, Claude Opus 5.5 · 23:47 UTC
code Wallet: Geist from the image instead of Inter from Google Fonts (patch 0006) da39c7f
started by friedger, Claude Opus 5.5 · 23:15 UTC
code NEXT_STEPS 3x: hardening and the admin network; plan snapshot notes rev 75 3e7f13f
started by friedger, Claude Opus 5.5 · 23:15 UTC
code zerotier.sh: ADMIN_NETS includes the VM's own public addresses 6092480
started by friedger, Claude Opus 5.5 · 23:13 UTC
code chore: add github workflow bb7391e
started by friedger · 22:57 UTC
code Hardening: rate limits, per-account magic-link limit, CSP, non-root containers, split networks, no Mailpit in production, admin pages over ZeroTier only bd9c9ec
started by friedger, Claude Opus 5.5 · 22:56 UTC
code The pass on the phone without a wallet: /me shows a renewing QR, /check at the door 32f17f8
started by friedger, Claude Opus 5.5 · 22:21 UTC
code Mobile, second pass: dashboard, header, wallet buttons, button rows (Keycast 0016, wallet 0005) dcf13eb
started by friedger, Claude Opus 5.5 · 21:07 UTC
code Mail sender: prod-env.sh keeps an existing MAIL_FROM; DEPLOY.md says it needs SPF 8805a6f
started by friedger, Claude Opus 5.5 · 20:37 UTC
code What's new: recent activity across the apps in the directory (people.<domain>/#/activity) 2a56654
started by friedger, Claude Opus 5.5 · 20:36 UTC
code Mobile: buttons fit phones with large text (Keycast patch 0015, Authentik brand CSS) 2c6d7fc
started by friedger, Claude Opus 5.5 · 19:42 UTC
code Photos at photos.<domain> (services/village), tips in community tokens through the wallet 9071b7d
started by friedger, Claude Opus 5.5 · 19:29 UTC
code Directory and marketplace (services/village), paid in community tokens through the wallet ee4d155
started by friedger, Claude Opus 5.5 · 19:13 UTC
code Plan: DIDs dropped (no did:webvh, no id.<domain>); identity is the Nostr key 0b80b8d
started by friedger, Claude Opus 5.5 · 18:48 UTC
code Mocked hardware tokens until the YubiKey ceremony; rewrap keeps seed and backup key 6393159
started by friedger, Claude Opus 5.5 · 18:47 UTC