Settler: history releases settle after half an hour
A release whose last post is 6 hours old gets nothing from the tail, only fragments from neighbouring ranges: settled once unchanged for 30 minutes. Waiting 6 hours after it was read held every history release back from phase 2 after each reset; with the hourly sweeps' resets the prober (and so the par2 merge) never had work. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3d0dc6ca1f
commit
885e4e6541
2 files changed
+23
-3
No files matched your search
@@ -16,4 +16,16 @@ test.group('Settler', (group) => {
|
||||
const byName = Object.fromEntries((await db.from('releases').select('name', 'complete', 'settled_at')).map((r) => [r.name, [r.complete, r.settled_at !== null]]))
|
||||
assert.deepEqual(byName, { a: [true, true], b: [false, true], c: [null, true], d: [null, false] })
|
||||
})
|
||||
|
||||
test('settles history releases (posted long ago) once unchanged for half an hour', async ({ assert }) => {
|
||||
const posted = new Date('2015-01-01T00:00:00Z')
|
||||
const row = (key: string, lastSeen: Date, lastPosted: Date) => ({
|
||||
release_key: key.padEnd(40, '0'), identity_key: key.padEnd(40, '0'), name: key, source: 'subject', groups: '[]', files: 1, last_seen_at: lastSeen, posted_at: lastPosted, last_posted_at: lastPosted,
|
||||
})
|
||||
const minutesAgo = (m: number) => new Date(Date.now() - m * 60_000)
|
||||
await db.table('releases').multiInsert([row('old', minutesAgo(31), posted), row('fresh', minutesAgo(5), posted), row('tail', minutesAgo(31), minutesAgo(40))])
|
||||
assert.equal(await Settler.run(), 1)
|
||||
const settled = (await db.from('releases').whereNotNull('settled_at').select('name')).map((r) => r.name)
|
||||
assert.deepEqual(settled, ['old'])
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user