Gabriel Brown
348c2d3d62
feat: add PostHog, move Plausible to v4, and drop Sentry session replay
...
Build and Deploy Spoon / quality (push) Successful in 1m40s
Build and Deploy Spoon / build-images (push) Successful in 12m23s
PostHog loads after the page is idle through a same-origin /ingest proxy and follows the signed-in Convex user. Plausible uses the per-site script through a /pa proxy. Sentry keeps errors and traces only. Pages load only the @spoon/ui modules they import, and client code reads public env from publicEnv.ts so zod stays out of the browser. Both analytics integrations stay off until their env is set in Infisical prod.
2026-10-01 17:17:21 -04:00
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