Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.
| Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002) | 1 | { |
| 2 | "$schema": "../../node_modules/wrangler/config-schema.json", | |
| 3 | "name": "g1t-notify", | |
| 4 | "account_id": "1e6f2cffa3f445920836e8ebe446bb58", | |
| 5 | "compatibility_date": "2026-09-26", | |
| 6 | "main": "./src/index.ts", | |
| 7 | // Reached only through service bindings. The live socket's viewer comes | |
| 8 | // in a header the site sets after checking the session, which is only | |
| 9 | // safe to trust because nothing else can reach this Worker. | |
| 10 | "workers_dev": false, | |
| 11 | "placement": { "mode": "off" }, | |
| 12 | "services": [ | |
| 13 | // Who a username is, for the inbox's notices (they name people by username). | |
| 14 | { "binding": "IDENTITY", "service": "g1t-identity" } | |
| 15 | ], | |
| 16 | // One feed per person: their tabs' sockets (hibernating), their latest | |
| 17 | // notifications, unread counts and push subscriptions, in the object's | |
| 18 | // own SQLite storage (src/feed.ts). No D1. | |
| One kind of access token; presence and status; usernames keep their case; the tour is a miniature of the real app; icons for password managers | 19 | // One presence room per workspace (src/room.ts): who is online, away or |
| 20 | // in Do Not Disturb, and their statuses, passed to everyone there who is | |
| 21 | // online. Also in the object's own SQLite storage. | |
| Merge branch 'worktree-agent-a5c94df323642630e' | 22 | // One live topic per repository (src/topic.ts): whose tabs are watching |
| 23 | // its pages, handed each change the events and actions services tell of | |
| 24 | // (repo_changed). Also in the object's own SQLite storage. | |
| Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002) | 25 | "durable_objects": { |
| One kind of access token; presence and status; usernames keep their case; the tour is a miniature of the real app; icons for password managers | 26 | "bindings": [ |
| 27 | { "name": "FEEDS", "class_name": "Feed" }, | |
| Merge branch 'worktree-agent-a5c94df323642630e' | 28 | { "name": "ROOMS", "class_name": "Room" }, |
| 29 | { "name": "TOPICS", "class_name": "Topic" } | |
| One kind of access token; presence and status; usernames keep their case; the tour is a miniature of the real app; icons for password managers | 30 | ] |
| Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002) | 31 | }, |
| One kind of access token; presence and status; usernames keep their case; the tour is a miniature of the real app; icons for password managers | 32 | "migrations": [ |
| 33 | { "tag": "v1", "new_sqlite_classes": ["Feed"] }, | |
| Merge branch 'worktree-agent-a5c94df323642630e' | 34 | { "tag": "v2", "new_sqlite_classes": ["Room"] }, |
| 35 | { "tag": "v3", "new_sqlite_classes": ["Topic"] } | |
| One kind of access token; presence and status; usernames keep their case; the tour is a miniature of the real app; icons for password managers | 36 | ], |
| Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002) | 37 | // Web Push (RFC 8292): the public half of the VAPID key pair browsers |
| 38 | // subscribe with, and who the push services may contact. The private | |
| 39 | // half is the secret VAPID_PRIVATE_KEY (scripts/ops/vapid-keys.mjs). | |
| The phone app: Chat in full with phone notifications, plus Code and Customize (#4) | 40 | // Empty: no pushes, everything else works. Pushes to the phone app go |
| 41 | // through Expo and need nothing here; the secret EXPO_ACCESS_TOKEN is | |
| 42 | // needed only once the Expo project turns on enhanced push security. | |
| Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002) | 43 | "vars": { "VAPID_PUBLIC_KEY": "BBAhBFy-jgfEKm4IDEWKNN_5Nft9SjHqahXtpuZf1Aohop03XduSZgyat-hhDKXAP2hdtMv8yPX7TfqWyR6vJTo", "VAPID_SUBJECT": "https://g1t.sh" }, |
| 44 | "observability": { "enabled": true, "head_sampling_rate": 0.1 } | |
| 45 | } |
This file's history is long; its oldest lines are credited to the oldest commit read.