Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
7d8e194
Generated with Hive: Fix CI by setting dummy database URL for depende…
tomsmith8 Apr 1, 2026
b951041
Merge remote-tracking branch 'origin/master' into bugfix/cmmnod2zs00b…
tomsmith8 Apr 1, 2026
ff51d3e
Generated with Hive: Fix migration failure by adding column with if n…
tomsmith8 Apr 1, 2026
fbb5b23
Merge remote-tracking branch 'origin/master' into bugfix/cmmnod2zs00b…
tomsmith8 Apr 1, 2026
5238c0b
Generated with Hive: Resolve failed Prisma migration for fast track f…
tomsmith8 Apr 1, 2026
6f15fd7
Merge remote-tracking branch 'origin/master' into bugfix/cmmnod2zs00b…
tomsmith8 Apr 1, 2026
1777473
Generated with Hive: Resolve stuck Prisma migration in deploy preview…
tomsmith8 Apr 1, 2026
b5c4c73
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
1cf6bc2
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
744e1b6
chore: resolve merge conflict in deployPR.yml - keep both migration r…
tomsmith8 Apr 1, 2026
6e90282
Merge remote-tracking branch 'origin/master' into bugfix/cmmnod2zs00b…
tomsmith8 Apr 1, 2026
6fea9d3
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
26b88fd
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
0b6b892
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
cc827b5
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
3e213c4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
964aae3
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
17d5ede
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 1, 2026
8e3cafa
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
08ccd14
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
c2087d0
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
8f1c738
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
a841098
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
254294d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
69a8b8d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
f7c3773
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
1df8946
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
38ff7c8
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
2f3e74e
chore: resolve merge conflict with master in deployPR.yml
Evanfeenstra Apr 2, 2026
4f5bfdd
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
fe1be22
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 2, 2026
612b40d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
36d9075
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
d469226
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
beaa702
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
6f000ba
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
335457d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
3c15756
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
fc1b2d9
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
8df1698
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
918f530
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 3, 2026
3b3985a
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
1d5d1b8
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
61c0176
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
efdcdd5
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
9103472
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
b3d5229
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
0432b03
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 4, 2026
c1a5354
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 5, 2026
258d6e8
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 5, 2026
a7146d4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 5, 2026
2d05d78
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 5, 2026
9f7111f
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 5, 2026
d5f0a1d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
aaaa881
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
dec9bd1
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
4e160f4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
c35ee34
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
f675bc8
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
083297c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
034e0bb
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
63571d8
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
6e3919c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
631dca4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
3baabd4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
ce9efe2
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
4c7b86b
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
7904db7
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 6, 2026
16c04ee
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
2a4c945
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
e3bdceb
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
52ab204
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
bdbf7bb
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
b01f934
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
7e9fada
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
15f34cc
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
eb02df1
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
12b0bf3
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
70d007c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
c755d4e
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
b5446cf
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 7, 2026
321b586
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
d941251
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
b949215
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
87def5c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
9d5bae6
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
5b9ce9a
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
79529c6
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
930b470
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
5706133
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 8, 2026
22ca9c4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
977b95f
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
fa52f81
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
a17ebd5
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
0efb806
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
976e249
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
f970aef
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
0ea24e7
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
ec27de9
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
e933ac4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
86aeb50
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
3787f66
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
4fe164f
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 9, 2026
2d8c7bc
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
ce68cf0
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
3ca2e82
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
0a4703e
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
2571b1e
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
5e62d20
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
7ecfa6d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
96fbef1
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
5504238
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
c0bcdd5
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 10, 2026
d158105
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 11, 2026
e00d7a4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 12, 2026
c79cfab
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 12, 2026
0a1a1ba
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 12, 2026
2f4e2e4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
66bf74b
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
4301668
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
6bad950
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
d4db63f
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
fee4633
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
2141496
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
5fecc24
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
4872134
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
23a6b16
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 13, 2026
3b6788d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
21972bf
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
640dc97
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
c22ad27
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
fd90123
Generated with Hive: Fix PR stats test by using deterministic artifac…
tomsmith8 Apr 14, 2026
ff278b2
Merge remote-tracking branch 'origin/master' into bugfix/cmmnod2zs00b…
tomsmith8 Apr 14, 2026
1863aba
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
75fbfb5
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
e66c36d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
079b8ce
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
628dbb7
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
598dcb6
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
7f99ec2
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
a17755b
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
905cbbf
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
787cfcb
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
6f6c6a4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
9d624fc
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
7a51d35
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
aad9d46
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
c637a9c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
6944dda
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
d80fba4
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
d50accf
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
bc1f079
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
bb6adbd
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
ecaf725
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 14, 2026
0a02116
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 15, 2026
0fea218
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 15, 2026
3412612
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 15, 2026
38c1c60
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 15, 2026
d3cba0c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 15, 2026
aa02201
Generated with Hive: Fix deferred notification creation to set sendAf…
tomsmith8 Apr 15, 2026
7c964bc
Merge remote-tracking branch 'origin/master' into bugfix/cmmnod2zs00b…
tomsmith8 Apr 15, 2026
d924d8f
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
3d8d7ba
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
e650a41
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
779a702
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
b792d07
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
5cdadcd
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
dcc4907
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 16, 2026
b9eac6c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 17, 2026
39e90ff
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 17, 2026
ac84d85
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 17, 2026
60849ab
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 17, 2026
e8d1abd
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 17, 2026
37d813f
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 17, 2026
9b6ec7d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
b27fc97
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
99325e3
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
032ca1a
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
aa1a12d
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
7ee49ad
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
66a537b
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
9b2c3ca
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
f294c93
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 20, 2026
511708e
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
b6ecd39
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
851e265
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
6192e62
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
31be5a1
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
71b3224
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
7f47aeb
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
ad8f2a0
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
2ff6ec6
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 21, 2026
59b942c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 22, 2026
2577004
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 22, 2026
d3cd94c
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 22, 2026
41092cc
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 22, 2026
ba950db
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 22, 2026
dda92f2
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 22, 2026
386cb48
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 23, 2026
8bad019
Merge branch 'master' into bugfix/cmmnod2zs00b7l4041jgfjhr9-fix-live-…
tomsmith8 Apr 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/deployPR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,10 @@ jobs:
"20260228185557_default_ticket_sweep_enabled" \
"SELECT COUNT(*) FROM information_schema.columns WHERE table_name='janitor_configs' AND column_name='ticket_sweep_enabled' AND column_default='true';"

resolve_migration \
"20260301004827_add_fast_track_to_feature" \
"SELECT COUNT(*) FROM information_schema.columns WHERE table_name='features' AND column_name='is_fast_track';"

resolve_migration \
"20260319000000_add_created_by_id_to_whiteboards" \
"SELECT COUNT(*) FROM information_schema.columns WHERE table_name='whiteboards' AND column_name='created_by_id';"
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ jobs:

- name: Install dependencies
if: steps.cache-node-modules.outputs.cache-hit != 'true'
env:
DATABASE_URL: postgresql://dummy:dummy@localhost:5432/dummy
run: npm ci

- name: Run unit tests
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
-- AlterTable
ALTER TABLE "features" ADD COLUMN "is_fast_track" BOOLEAN NOT NULL DEFAULT false;
ALTER TABLE "features" ADD COLUMN IF NOT EXISTS "is_fast_track" BOOLEAN NOT NULL DEFAULT false;
5 changes: 3 additions & 2 deletions src/__tests__/integration/api/admin/pr-stats.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ describe("GET /api/admin/workspaces/[id]/pr-stats (integration)", () => {
messageId: message.id,
type: "PULL_REQUEST",
content: {
url: `https://github.com/testorg/testrepo/pull/${Math.floor(Math.random() * 9999)}`,
url: `https://github.com/testorg/testrepo/pull/${ageHours * 100}`,
repo: "testorg/testrepo",
status,
title: `Test PR (${status})`,
Expand Down Expand Up @@ -144,6 +144,7 @@ describe("GET /api/admin/workspaces/[id]/pr-stats (integration)", () => {
repositoryUrl: "https://github.com/testorg/bucketrepo",
});

let artifactCounter = 1;
async function seedDoneArtifact(ageHours: number) {
const task = await createTestTask({ workspaceId: workspace.id, createdById: regularUser.id });
const message = await createTestChatMessage({ taskId: task.id, message: "test" });
Expand All @@ -153,7 +154,7 @@ describe("GET /api/admin/workspaces/[id]/pr-stats (integration)", () => {
messageId: message.id,
type: "PULL_REQUEST",
content: {
url: `https://github.com/testorg/bucketrepo/pull/${Math.floor(Math.random() * 9999)}`,
url: `https://github.com/testorg/bucketrepo/pull/${artifactCounter++}`,
repo: "testorg/bucketrepo",
status: "DONE",
title: "Test PR",
Expand Down
6 changes: 3 additions & 3 deletions src/__tests__/unit/services/notifications.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,16 +182,16 @@ describe("createAndSendNotification", () => {
await createAndSendNotification(baseInput);

expect(create).toHaveBeenCalledOnce();
expect(mockedSendDirectMessage).not.toHaveBeenCalled();
expect(update).toHaveBeenCalledWith(
expect(create).toHaveBeenCalledWith(
expect.objectContaining({
where: { id: "notif-1" },
data: expect.objectContaining({
sendAfter: expect.any(Date),
message: baseInput.message,
}),
})
);
expect(mockedSendDirectMessage).not.toHaveBeenCalled();
expect(update).not.toHaveBeenCalled();
});
});

Expand Down
20 changes: 10 additions & 10 deletions src/services/notifications.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,11 @@ export async function createAndSendNotification(input: {
: null;
const dmReady = isDirectMessageConfigured() && !!decryptedPubkey;

// 4. Always insert a row — use SKIPPED when DM is not ready
// 4. Compute deferred fields up-front to avoid a two-step create+update race
const isDeferred = dmReady && DEFERRED_NOTIFICATION_TYPES.has(input.notificationType);
const sendAfter = isDeferred ? new Date(Date.now() + DEFERRED_DELAY_MS) : null;

// 5. Insert a single row with all fields set atomically
const record = await db.notificationTrigger.create({
data: {
targetUserId: input.targetUserId,
Expand All @@ -88,10 +92,11 @@ export async function createAndSendNotification(input: {
: NotificationTriggerStatus.SKIPPED,
notificationMethod: NotificationMethod.SPHINX,
notificationTimestamps: [],
...(isDeferred && { sendAfter, message: input.message }),
},
});

// 5. Stop here if DM is not configured — no send attempted
// 6. Stop here if DM is not configured — no send attempted
if (!dmReady) {
logger.info(
`[Notifications] DM not ready — record created as SKIPPED for ${input.notificationType}`,
Expand All @@ -101,15 +106,10 @@ export async function createAndSendNotification(input: {
return;
}

// 6. Deferred types: store sendAfter + message, return without sending
if (DEFERRED_NOTIFICATION_TYPES.has(input.notificationType)) {
const sendAfter = new Date(Date.now() + DEFERRED_DELAY_MS);
await db.notificationTrigger.update({
where: { id: record.id },
data: { sendAfter, message: input.message },
});
// 7. Deferred types: log and return — sendAfter already persisted above
if (isDeferred) {
logger.info(
`[Notifications] Deferred ${input.notificationType} — will dispatch after ${sendAfter.toISOString()}`,
`[Notifications] Deferred ${input.notificationType} — will dispatch after ${sendAfter!.toISOString()}`,
"NOTIFICATIONS",
{ recordId: record.id, targetUserId: input.targetUserId, taskId, featureId }
);
Expand Down
Loading