53 Commits
Author SHA1 Message Date
Gabriel Brown a956d63e16 feat(backend): boxSettings table + box password actions 2026-07-13 09:56:08 -04:00
Gabriel Brown 8d7486bc8c feat(notifications): settings notification preferences 2026-07-11 16:41:35 -04:00
Gabriel Brown 5776841e2f feat(notifications): inbox query + mark-read mutations 2026-07-11 16:13:42 -04:00
Gabriel Brown 3766a29871 feat(notifications): emit at maintenance/turn/sync/reauth events 2026-07-11 16:08:22 -04:00
Gabriel Brown 4eb0c963ff feat(notifications): add emit helper + UseSend email dispatch 2026-07-11 15:52:26 -04:00
Gabriel Brown 05eabcb0fa feat(notifications): add notifications + notificationPreferences tables 2026-07-11 15:42:14 -04:00
Gabriel Brown 0347d58f71 chore: fix eslint errors introduced in phase 4 backend 2026-07-11 15:37:51 -04:00
Gabriel Brown bce6769277 fix(convex): order spoonCommits by committedAt via index so bounding keeps newest 2026-07-11 14:41:31 -04:00
Gabriel Brown 9067d16734 perf(convex): bound unbounded owner-wide collects on hot paths 2026-07-11 14:41:31 -04:00
Gabriel Brown e4a7f96633 fix(sync): don't misclassify plain 403 auth errors as rate limited 2026-07-11 14:28:02 -04:00
Gabriel Brown 4769a76274 feat(sync): add Octokit retry/throttle and rate-limited status 2026-07-11 14:28:02 -04:00
Gabriel Brown f1dbf8cd50 feat(webhooks): add signature-verified GitHub webhook route 2026-07-11 14:18:55 -04:00
Gabriel Brown 68dc7bb4ee feat(spoons): find owned spoons by pushed repo (indexed) 2026-07-11 14:12:30 -04:00
Gabriel Brown f7c3aa6482 feat(github): index connections by installation + status mutation 2026-07-11 14:07:57 -04:00
Gabriel Brown 18cb424b99 feat(webhooks): add GitHub webhook signature verifier 2026-07-11 14:04:32 -04:00
Gabriel Brown 675d6b2316 fix(sync): use stable dedup key and skip threads when head unresolved 2026-07-11 14:00:16 -04:00
Gabriel Brown 0e894f8e67 refactor(threads): dedup maintenance threads by stable key via index 2026-07-11 14:00:16 -04:00
Gabriel Brown c3f73ac656 feat(sync): add deterministic maintenance-thread dedup key 2026-07-11 13:48:49 -04:00
Gabriel Brown 4684617fed fix(sync): paginate compare and resolve real head SHA 2026-07-11 13:44:10 -04:00
Gabriel Brown c8200a6747 feat(sync): add resolveBranchHead to fetch branch tip SHA 2026-07-11 13:39:36 -04:00
Gabriel Brown 702e53a4ba feat(web): per-thread/per-spoon runtime picker and Anthropic OAuth provider profile 2026-07-11 11:20:33 -04:00
Gabriel Brown 6ec2e51312 feat(backend): migration to retire openai_direct runtime 2026-07-11 11:05:12 -04:00
Gabriel Brown c0f107c4cf feat(backend): queue-time runtime/profile validation; job.runtime authoritative in worker 2026-07-11 10:58:05 -04:00
Gabriel Brown 70396feccc feat(backend): add claude runtime, anthropic OAuth auth kind, and profile→runtime derivation 2026-07-11 10:42:48 -04:00
Gabriel Brown 613a6c8a2d fix(agent-jobs): narrow recovery-cron guard so abandoned stops still recover 2026-07-10 18:34:15 -04:00
Gabriel Brown 697fb7286d fix(agent-jobs): recovery cron skips already-terminal jobs 2026-07-10 18:27:53 -04:00
Gabriel Brown 60dd5d3836 fix(agent-jobs): stop heartbeat from resurrecting terminated jobs 2026-07-10 18:13:28 -04:00
Gabriel Brown ac68484059 fix(worker): make cancellation teardown failure-safe 2026-07-10 18:04:40 -04:00
Gabriel Brown 470af043fa fix(agent-jobs): add heartbeat cancel and stale recovery 2026-07-10 18:03:45 -04:00
Gabriel Brown 00f96a126e fix(agent-jobs): close maintenance jobs after decision 2026-07-10 17:35:33 -04:00
Gabriel Brown 1e1435e656 fix(agent-jobs): recover failed claim decryption 2026-07-10 17:26:17 -04:00
Gabriel Brown cf45404b7d fix(agent-jobs): validate claims before claiming 2026-07-10 17:26:17 -04:00
Gabriel Brown ed21126eea fix(app): add friendly not-found handling 2026-07-10 17:24:32 -04:00
Gabriel Brown 906f906ad3 fix(backend): use generated import extension 2026-07-10 17:15:34 -04:00
Gabriel Brown bdb2964e34 fix(sync): honor per-spoon auto-sync settings 2026-07-10 17:15:20 -04:00
Gabriel Brown 020ffbfb23 fix(worker-auth): unify token checks and bind job environment 2026-07-10 17:06:33 -04:00
Gabriel Brown 0a4461eaba fix(agent-jobs): prevent terminal status resurrection 2026-07-10 16:55:43 -04:00
Gabriel Brown 683fc62129 Convex: per-user dotfiles + environment storage (encrypted)
- schema: userDotfiles (one encrypted row per file, HOME-relative path) and
  userEnvironment (home username + optional public dotfiles repo + setup command)
- userDotfiles.ts: list/remove/removeDirectory/rename + internal upsert/getRaw
- userDotfilesNode.ts ('use node'): putFile/importFiles/getFileContent (encrypt
  /decrypt via secretCrypto) + getEnvironmentForJob (worker-token, returns the
  owner's decrypted dotfiles + repo/setup config)
- userEnvironment.ts: getMine/updateMine + getRawEnvironmentForJobInternal
- model.ts: deriveHomeUsername + normalizeDotfilePath helpers
2026-06-24 09:38:43 -04:00
Gabriel Brown 5567a4be95 allow users to delete threads from spoons details page
Build and Push Spoon Images / quality (push) Successful in 2m36s
Build and Push Spoon Images / build-images (push) Successful in 9m21s
2026-06-23 16:00:34 -04:00
Gabriel Brown a6f7ea7f78 Clean up old stuff & fix ui errors
Build and Push Spoon Images / quality (push) Successful in 2m22s
Build and Push Spoon Images / build-images (push) Successful in 23m10s
2026-06-23 14:57:05 -04:00
Gabriel Brown d207b8b0b8 Add features & update project
Build and Push Spoon Images / quality (push) Successful in 1m41s
Build and Push Spoon Images / build-images (push) Successful in 7m4s
2026-06-23 02:06:58 -04:00
Gabriel Brown fe72fc2957 Add features & update project 2026-06-23 01:46:08 -04:00
Gabriel Brown 206b64176b Move to threads based system. 2026-06-22 10:37:26 -04:00
Gabriel Brown 4114d5595c Update stuff
Build and Push Next App / quality (push) Successful in 1m21s
Build and Push Next App / build-next (push) Successful in 3m34s
2026-06-22 00:41:51 -05:00
Gabriel Brown 2e13febfc7 Update stuff
Build and Push Next App / quality (push) Successful in 1m24s
Build and Push Next App / build-next (push) Successful in 3m36s
2026-06-21 23:49:08 -05:00
Gabriel Brown b16cd9e2f7 Update stuff
Build and Push Next App / quality (push) Successful in 1m34s
Build and Push Next App / build-next (push) Successful in 3m22s
2026-06-21 23:22:05 -05:00
Gabriel Brown 112fd55ea7 Update stuff so we can pass build hopefully
Build and Push Next App / quality (push) Successful in 1m32s
Build and Push Next App / build-next (push) Successful in 42s
2026-06-21 22:32:02 -05:00
Gabriel Brown b9c13b944f Update stuff so we can pass build hopefully
Build and Push Next App / quality (push) Failing after 43s
Build and Push Next App / build-next (push) Has been skipped
2026-06-21 21:52:37 -05:00
Gabriel Brown efb0237145 Update stuff so we can pass build hopefully
Build and Push Next App / build-next (push) Has been cancelled
Build and Push Next App / quality (push) Has been cancelled
2026-06-21 21:51:41 -05:00
Gabriel Brown c33d3cc02d Update stuff so we can pass build hopefully
Build and Push Next App / quality (push) Failing after 39s
Build and Push Next App / build-next (push) Has been skipped
2026-06-21 21:48:03 -05:00