Commit Graph

  • 3ac0791381 fix(web): sign-out clears and lets its own navigation leave; only a swap reloads (BUG-3005, E2E account-delete failure) fix/3005-identity-epoch-store-fences xarmian 2026-09-10 23:04:07 +00:00
  • ec97543461 fix(web): a sign-in from an unauthenticated tab must not reload (BUG-3005, E2E failure + lead ruling) xarmian 2026-09-10 22:57:41 +00:00
  • 3aebbb58f0 fix(web): the reload now happens even if a clear throws, and a test that passed for the wrong reason (BUG-3005, codex round 5) xarmian 2026-09-10 22:45:40 +00:00
  • 95416e78e9 fix(web): the identity reload was firing the teardown writes it was meant to outrun (BUG-3005, codex round 4) xarmian 2026-09-10 22:37:04 +00:00
  • c7ec3f0f5a fix(web): stop enumerating surfaces — an identity change clears what a reload cannot drop, then reloads (BUG-3005, codex round 3 + lead ruling) xarmian 2026-09-10 22:30:12 +00:00
  • ddaba64191 fix(web): a reset that dropped the data but not the in-flight slot, plus the layout that outlived the identity (BUG-3005, codex round 2) xarmian 2026-09-10 22:17:53 +00:00
  • 69d7522714 fix(web): the store fix routed the starred PAGE around its own filter, and three more singletons held user state (BUG-3005, codex round 1) xarmian 2026-09-10 21:59:04 +00:00
  • 031c9db2da fix(web): localIndex and localSearch drop every workspace when the signed-in user changes (BUG-3005, unit 2c) xarmian 2026-09-10 21:35:33 +00:00
  • 720dca3094 fix(web): collectionStore drops the previous user's collections and items, and fences every settle (BUG-3005, unit 2b) xarmian 2026-09-10 21:32:11 +00:00
  • 8861775b5f fix(web): starredStore drops the previous user's stars, and refuses a settle from a session that has ended (BUG-3005, unit 2a) xarmian 2026-09-10 21:14:58 +00:00
  • dd28045869 feat(web): an ORDERED identity epoch, so a store can tell "still me" from "me again" (BUG-3005, unit 1) xarmian 2026-09-10 21:12:02 +00:00
  • d9ea533728 chore(nix): heal vendorHash for the module set in c141c73a23 (TASK-2954) main github-actions[bot] 2026-09-10 21:49:53 +00:00
  • c141c73a23 chore(deps): bump google.golang.org/grpc 1.83.0 -> 1.83.2 (BUG-2986) (#1322) xarmian 2026-09-10 17:41:32 -04:00
  • 2dbea609c3 chore(nix): bump package version to 0.15.1 ahead of the v0.15.1 tag v0.15.1 release-0.15.x release xarmian 2026-09-10 21:16:34 +00:00
  • f3f44be6b3 test(cli): srv.Client(), not http.DefaultClient, in the two parallel stream-identity tests (BUG-3008, partial cherry-pick of 524469b7) xarmian 2026-09-10 21:16:25 +00:00
  • b45dc1d5a7 fix(server): a stream ends when the credential that opened it stops being valid (BUG-3007) (#1323) xarmian 2026-09-10 16:47:31 -04:00
  • 524469b7a3 test: no test request goes through the process-global default transport (BUG-3008, closes BUG-2949) (#1324) xarmian 2026-09-10 16:59:58 -04:00
  • 8d3e389088 fix(server): a stream ends when the credential that opened it stops being valid (BUG-3007) (#1323) xarmian 2026-09-10 16:47:31 -04:00
  • 9839884b59 fix(web): user-scoped state and side effects must expire when the user changes (BUG-2990 / BUG-2991 / BUG-3004) (#1321) xarmian 2026-09-10 12:54:19 -04:00
  • d201ebb87d fix(server): a successful applier-path PATCH stops answering with the previous content (BUG-2995) (#1320) xarmian 2026-09-10 12:37:49 -04:00
  • dc70ff3d7f fix(server): write first, apply second on the collab applier path (TASK-2989 / BUG-2840 half A) (#1318) xarmian 2026-09-10 08:54:41 -04:00
  • ab4607fed1 docs: CLAUDE.md described pad auth login as an email/password prompt; it is browser-based (#1317) xarmian 2026-09-10 03:50:22 -04:00
  • 4a4a912fa6 docs: pad token create needs a session, and one code comment said otherwise (TASK-2984) (#1316) xarmian 2026-09-10 03:49:38 -04:00
  • 8f6c62ec27 fix(web): a failed links refresh keeps the links it has, so a click cannot be lost to it (BUG-2871) (#1315) xarmian 2026-09-10 03:46:25 -04:00
  • 6d77856447 fix(web): unknown membership is not a denial — stop dropping it on a repeat resolve (TASK-2988) (#1313) xarmian 2026-09-10 01:55:52 -04:00
  • cece78a703 feat(collab): applier-availability pre-check on RoomManager (TASK-2987 / PLAN-2975 unit 1) (#1314) xarmian 2026-09-10 00:55:22 -04:00
  • 793fad959c docs(mcp): the reason given for the protocol restriction was false — replace it with the true one (TASK-2977) (#1312) xarmian 2026-09-09 20:35:44 -04:00
  • 9df2da2c97 fix(web): a background children refresh keeps its row nodes, so clicks are not swallowed (BUG-2871) (#1311) xarmian 2026-09-09 19:34:50 -04:00
  • d83632e258 feat(attachments): extension trust — the audio/video split, the text family, the CFB office trio and RTF (TASK-2976 / BUG-2963 PR B) (#1309) xarmian 2026-09-09 19:23:18 -04:00
  • a357b9f609 fix(mcp): restrict the remote transport to the protocol era pad can serve (TASK-2977) (#1310) xarmian 2026-09-09 19:22:58 -04:00
  • d89d624c56 chore(deps)(deps-dev): bump vitest from 4.1.11 to 5.0.0 in /web (#1277) dependabot[bot] 2026-09-09 18:12:06 -04:00
  • a6024600a9 fix(web): wrap the admin console tab strip instead of hiding its scrollbar (TASK-2979) (#1308) xarmian 2026-09-09 17:20:17 -04:00
  • 06ccabddb0 fix(web): settings permissions are sticky, so the owner-only tab survives the /me window (BUG-2978) (#1307) xarmian 2026-09-09 16:23:59 -04:00
  • f262449b18 feat(cli): pad token create/list/revoke — CLI mint path for API tokens (#1237) David Barkhausen 2026-09-09 16:09:29 -04:00
  • 0b16be492b fix(web): wrap the settings tab bar so no tab is hidden at phone width (TASK-2245 / C82) (#1306) xarmian 2026-09-09 14:42:47 -04:00
  • 249a8f879f chore(nix): heal vendorHash for the module set in 31d11e76ea (TASK-2954) github-actions[bot] 2026-09-09 18:33:41 +00:00
  • 31d11e76ea chore(deps)(deps): bump github.com/mark3labs/mcp-go from 0.58.0 to 1.0.0 (#1275) dependabot[bot] 2026-09-09 14:25:08 -04:00
  • cbfc073ef1 fix(attachments): make allowlisted formats reachable by recognising their magic (BUG-2963 PR A) (#1304) xarmian 2026-09-09 13:28:23 -04:00
  • 5ab49f1869 test(server): measure BUG-2840 half A's premise before designing a fix fix/bug-2840-half-a xarmian 2026-09-09 16:45:32 +00:00
  • 42c0f4d58b fix(web): scope the pane focus-ring suppression to mobile, where focus is programmatic (TASK-2245 / C119) (#1305) xarmian 2026-09-09 12:44:34 -04:00
  • 38d8803603 fix(nix): gate the vendorHash heal on state, not on the push range (BUG-2974) (#1303) xarmian 2026-09-09 10:52:14 -04:00
  • 89f55babd6 fix(web): title parts are route-scoped, replacing the clear that raced them (TASK-2245 / C118) xarmian 2026-09-08 21:33:24 -04:00
  • 5ce1103981 chore(nix): heal vendorHash for the module set in b7235a1a (TASK-2954, BUG-2974) xarmian 2026-09-09 00:53:54 +00:00
  • bc543a1d37 chore(deps)(deps): bump the npm-minor-and-patch group (#1276) dependabot[bot] 2026-09-08 20:43:24 -04:00
  • b7235a1a61 chore(deps)(deps): bump the go-minor-and-patch group across 1 directory with 6 updates (#1301) dependabot[bot] 2026-09-08 20:41:43 -04:00
  • 734b53f33c fix(attachments): a HEIC embed is decided by what can be served and painted, not by an image/ prefix (BUG-2964) xarmian 2026-09-08 19:40:37 -04:00
  • 4618876e3e fix(cli): pad server stop signals only a process it can prove is ours (BUG-2969) (#1299) xarmian 2026-09-08 19:33:15 -04:00
  • 5ec17a7c92 fix(cli): pad server stop stops the server that is running, or says it is (BUG-2965) (#1298) xarmian 2026-09-08 18:26:32 -04:00
  • c13887a55d refactor(web): the keyed single-flight loader has one definition, not two (TASK-2947) xarmian 2026-09-08 18:24:46 -04:00
  • a2bab75c73 fix(server): the op-log prune rides inside the write it justifies (BUG-2840 half B) (#1295) xarmian 2026-09-08 16:46:28 -04:00
  • 696b477b12 test(server): the mobile shells' unversioned contracts fail CI when they move (TASK-2053) (#1294) xarmian 2026-09-08 15:49:05 -04:00
  • 89a9fb0241 fix(server): a refused collection prefix reaches the caller as a 400 naming the rule (BUG-2951) (#1293) xarmian 2026-09-08 14:51:21 -04:00
  • 49d1bfcd85 ci(nix): a Go bump's Nix check is green when the build passes, and main heals its own vendorHash (TASK-2954) (#1292) xarmian 2026-09-08 14:00:39 -04:00
  • 6a5eb3dee0 fix(attachments): HEIC, HEIF and AVIF are recognised from their bytes, not refused (BUG-2961) (#1291) xarmian 2026-09-08 13:30:42 -04:00
  • 90dadecb06 docs(web): the cold-path pin heals one of the eviction floor's four doors, not all four (TASK-2939) (#1290) xarmian 2026-09-08 13:17:31 -04:00
  • 43d94a35d5 fix(cli): pass PostgreSQL connection strings to backup clients (#1289) Matt Faltyn 2026-09-08 18:30:45 +02:00
  • 3d78e1d03e feat(web): a cold offline load renders the board from cache, fenced by scope (TASK-2946) (#1287) xarmian 2026-09-07 18:26:46 -04:00
  • 367aae8e18 fix: one prefix grammar, and the ref parser widens to it (BUG-2943) (#1286) xarmian 2026-09-07 17:32:36 -04:00
  • 22fce21132 fix(web): workspace identity recovers after a failed cold load, on the condition rather than a signal (TASK-2200) (#1284) xarmian 2026-09-07 16:19:53 -04:00
  • 3a00ea9c8c fix(cli,mcp): item update --parent "" is refused, not silently ignored (BUG-2941) (#1285) xarmian 2026-09-07 16:18:39 -04:00
  • ee0d945863 fix(cli,mcp): one --field key=value entry means one thing at every door (BUG-2870) (#1283) xarmian 2026-09-07 15:33:05 -04:00
  • 5032bacfd6 fix(web): a tab may only write to the durable cache under the scope that cache advertises (TASK-2922) (#1282) xarmian 2026-09-07 14:44:09 -04:00
  • 5d29b7715c fix(cli): item show --format markdown emits the body verbatim (IDEA-2937) (#1281) xarmian 2026-09-07 14:10:07 -04:00
  • d387d540cd fix(web): the cold path pins its cursor to the snapshot and owns the replay (IDEA-2924) (#1280) xarmian 2026-09-07 13:12:44 -04:00
  • 83f00a2c66 docs: a fresh worktree has no web/build, and that breaks the Go gates (#1279) xarmian 2026-09-07 12:51:54 -04:00
  • 6b9e7bcd71 fix(web): the index owns its signals — one reconcile loop, driven by the workspace layout (TASK-2921) (#1278) xarmian 2026-09-07 12:11:01 -04:00
  • 110045578c fix(build): make install proves what it installed and what it restarted (BUG-2897, TASK-2787) (#1272) xarmian 2026-09-07 11:48:58 -04:00
  • cab78e75ad fix(web): a snapshot cannot reinstate a row whose eviction the cache already consumed (TASK-2920) (#1273) xarmian 2026-09-07 10:12:11 -04:00
  • a3a1d5862b fix(store): preserve valid item references across workspace import (#1271) Matt Faltyn 2026-09-07 14:27:58 +02:00
  • e864a43644 fix(web): the reconcile token outlives the state it counts, so a verdict cannot cross a reset (IDEA-2913) (#1269) xarmian 2026-09-07 00:13:41 -04:00
  • bb8ec04ef1 fix(server,store): both workspace mint doors enforce their preconditions from one place (BUG-2809) (#1268) xarmian 2026-09-06 23:36:58 -04:00
  • 9cdd580e85 fix(web): a reconcile loop cannot report catch-up for a verdict a resync overtook (TASK-2909) (#1266) xarmian 2026-09-06 22:57:27 -04:00
  • cdc5b301e2 fix(server): minting or rotating an API token requires an interactive session (BUG-2890) (#1267) xarmian 2026-09-06 22:02:05 -04:00
  • e32d4f468e fix(store): a relation value pointing at an orphaned item is carried, not rewritten into a minted id (BUG-2895) (#1265) xarmian 2026-09-06 21:11:33 -04:00
  • e426f8c844 fix(web): the durable item cache's cursor never moves backward, and a refused batch stamps no epoch (TASK-2906) (#1264) xarmian 2026-09-06 18:22:36 -04:00
  • 3c93472613 perf(store): run the store suite in parallel (TASK-2900 deliverable 3) (#1263) xarmian 2026-09-06 16:59:31 -04:00
  • 7659ad3cd3 feat(server,web,cli): say when a relation's copy target is unusable, instead of offering a picker that cannot answer (IDEA-2899) (#1262) xarmian 2026-09-06 15:48:22 -04:00
  • 00d650a861 feat(server,web): detect a revocation that writes no item, and evict the cache it left stale (IDEA-2898) (#1261) xarmian 2026-09-06 13:36:22 -04:00
  • 6f8b6eb958 perf(store): clone Postgres test databases from a migrated template (TASK-2900) (#1260) xarmian 2026-09-06 12:02:20 -04:00
  • 84cd8f6499 fix(web): a delta's rows and its cursor are one statement (IDEA-2898) idea/2898-access-epoch xarmian 2026-09-06 05:51:49 +00:00
  • b0e99749f9 fix(web): a hash cannot say which scope is newer, so stop pretending it can (IDEA-2898) xarmian 2026-09-06 05:31:26 +00:00
  • 7c5fed9ba9 refactor(web): stop re-implementing the resync inside the cold path (IDEA-2898) xarmian 2026-09-06 04:55:29 +00:00
  • 2e94adf734 fix(server,web): one epoch definition, and five seams between the round-1 fixes (IDEA-2898) xarmian 2026-09-06 04:20:21 +00:00
  • a13cebd1e3 fix(web): close four ways the epoch can advance while the rows do not (IDEA-2898) xarmian 2026-09-06 03:49:55 +00:00
  • e928b790d0 feat(web,server): compare the access fingerprint and evict, and let the 60s tick say so (IDEA-2898) xarmian 2026-09-06 02:31:21 +00:00
  • c2f0fda096 feat(server): fingerprint the caller's visible set on the item doors (IDEA-2898) xarmian 2026-09-06 02:14:57 +00:00
  • 8910ad0679 fix(store): mint the imported workspace inside the import transaction (BUG-2892) (#1259) xarmian 2026-09-05 22:53:20 -04:00
  • 07b2e439f2 TASK-2869 (U2b): the preflight names a relation's target collection, and the copy dialog scopes its picker to the destination (#1258) xarmian 2026-09-05 21:37:44 -04:00
  • 47d2b15e10 feat(store,server): make collection trait uniqueness a database invariant — de-dup pass + partial unique indexes (TASK-2710) (#1257) xarmian 2026-09-05 20:43:43 -04:00
  • d6771abeea IDEA-2886: state the drop-vs-refuse rule once, and route all three sites through it (#1256) xarmian 2026-09-05 20:21:13 -04:00
  • 47cc106ab8 IDEA-2893 + IDEA-2894: record the accepted carry disclosure, and make the drop-reason mapper testable (#1254) xarmian 2026-09-05 19:01:57 -04:00
  • 5cb2297f67 fix(store): export soft-deleted collections so their live items survive a round trip (BUG-2884) (#1255) xarmian 2026-09-05 13:20:23 -04:00
  • 5aa4bbe319 fix(build): give each worktree its own Postgres test port, and refuse to run when it is unreachable (TASK-2708) (#1253) xarmian 2026-09-05 10:17:47 -04:00
  • 14cb97593f WIP feat(server,store): referent validation for relation values — 6 of 8 doors (TASK-2878) (#1246) xarmian 2026-09-05 10:07:44 -04:00
  • a0e1bbf53c feat(store): composite FK making a reminder's workspace agree with its item's (IDEA-2883) (#1252) xarmian 2026-09-05 00:47:16 -04:00
  • cd51d8f130 feat(web): Community link (GitHub Discussions) in the user menu and auth footer (TASK-2888) (#1251) xarmian 2026-09-04 23:42:15 -04:00
  • 5c4fa22999 fix(store): collection slug races — allocate under the row lock, serialize CreateCollection with rename (TASK-2885) (#1249) xarmian 2026-09-04 15:38:01 -04:00
  • 02846a6785 fix(cli): the session's registered agent is the name its writes carry (BUG-2882) (#1248) xarmian 2026-09-04 12:50:50 -04:00
  • b437cc582d feat: item reminders — the fire-at-an-instant primitive, and one overdue rule for all four surfaces (IDEA-2641, closes #1010) (#1244) xarmian 2026-09-04 11:36:11 -04:00
  • a1716d8170 ci(web): decide the npm audit gate from the report, not the exit code, and run it last (BUG-2881) (#1247) xarmian 2026-09-04 10:45:21 -04:00