test(logs): give the 4 MiB archive segment test a 60 s budget (#19877)

## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work
> - Native run logs migrate into a bounded object-storage archive
(#19719)
> - One integration test migrates a 4 MiB log and reads it back across a
segment boundary against embedded PostgreSQL
> - On loaded CI runners it exceeds Vitest's 15 s default, so `General
tests (server (9/12))` fails on unrelated PRs
> - This pull request gives that one test an explicit 60 s budget
> - The benefit is that unrelated PRs stop failing on a timing-only
timeout, and the test keeps its exact-bytes assertions

## Linked Issues or Issue Description

Refs #19719 (the test's origin).

**Problem**
`native-log-archive.integration.test.ts > preserves exact bytes across
the bounded archive segment boundary` times out at 15 s on CI. On
2026-11-07 it failed on at least eight unrelated branches, among them
`fix/skill-cache-lock-owner-proof`, `chat-eval/master-candidate`,
`fix/subtasks-own-workspace` and `feat/owner-gone-prover` (three
attempts).

**Expected behavior**
The test passes when the code is correct, regardless of runner load.

**Impact**
It blocks merges on unrelated PRs and wastes reruns.

## What Changed

- Give that single test an explicit 60 s timeout, with a comment that
names the reason. No assertion changes.

## Verification

- `npx vitest run src/services/native-log-archive.integration.test.ts`
(in `server/`): 15 tests pass locally.
- The CI shard `General tests (server (9/12))` should pass on this PR.

## Risks

- Low risk. This is a test-only timeout change. A real hang still fails,
after 60 s.

## Model Used

- Claude Opus 5.5 (`claude-opus-5-5`), Anthropic, in Claude Code with
tool use and code execution.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [ ] All Paperclip CI gates are green
- [ ] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
DottaandClaude Opus 5.5 authored and GitHub committed 2026-11-07 12:16:49 -06:00
1 parent 00ad9503fe
commit 00e627a23e
1 file changed
+3 -1
@@ -105,7 +105,9 @@ describeEmbeddedPostgres("online native historical log preservation", () => {
expect(Buffer.concat([await archive.readRange(head, 0, 4 * 1024 * 1024),
await archive.readRange(head, 4 * 1024 * 1024, 7)])).toEqual(bytes);
});
});
// A 4 MiB migration plus two segment reads against embedded PostgreSQL
// exceeds the 15 s default on loaded CI runners.
}, 60_000);
it.each(["expired_owner", "pending_attempt", "pending_recovery", "allocation", "process_group", "physical_owner", "task_bound"])("refuses unresolved source authority: %s", async kind => {
await withSource(async f => {