feat: add notification inbox triage#224
Conversation
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
baa1936 to
c350254
Compare
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: Combined Review (
|
Add notification inbox triage support and neutralize persisted notification identity so future providers can share the same storage model without fallback behavior for blank providers. Keep current API payloads stable, collapse the branch-only schema work into one notification migration, and include design and implementation docs for the schema neutralization.
Keep GitHub repo refs provider-qualified through config resolution and e2e startup seeding so notification filtering does not reject tracked repos as provider-less. This restores inbox e2e coverage after removing blank-provider fallback behavior.
Race CI was failing because internal/server crossed Go's default 10 minute package timeout under -race on GitHub Actions. Increase the race job timeout budget so the package can complete instead of being killed and misreported by the test reporter.
Move durable notification inbox and provider identity invariants out of superseded plan files into context docs. This keeps provider-qualified notification keys, neutral persistence naming, API compatibility boundaries, and blank-provider rejection documented in long-lived references, then removes branch-specific design/plan docs.
Adjust the notification inbox branch for upstream changes after rebasing onto main. Renumber the branch notification migration to 000021 now that 000019 and 000020 are taken, update notification tests for the RepoIdentity UpsertRepo API and expanded GitHub client interface, and replace raw inbox/design-system font sizes with shared design tokens so the new guardrail passes.
Add a real HTTP+SQLite notification inbox triage flow test in internal/server/e2etest so the provider-neutral inbox feature has backend end-to-end coverage for list, bulk read, done, and undone actions.
After rebasing the notification migration to 000024, the upgrade-path test needs to simulate the immediately preceding schema version so it does not replay intervening main-branch migrations against an already-current database.
The tmux-backed terminal integration test could send input before the tmux client had emitted its initial terminal frame in CI. Wait for the agent to start and for initial websocket output before requesting the pane size, keeping the assertion focused on resize behavior.
Older GitHub notification payloads could overwrite newer unread activity during overlapping sync/read propagation paths. Ignore conflict updates whose source timestamp is older than the stored row, and allow empty tracked repo filters to resolve to an empty notification scope instead of a query error.
Resolve conflicts from rebasing the notification inbox branch onto main by renumbering the notification migration after the new HTTP ETag migration, keeping the normalized GitHub host field single-sourced, and regenerating API artifacts with the current route metadata taxonomy.
Normalize URLSearchParams bodies before constructing Request so jsdom and CI runtimes with different URLSearchParams realms do not reject generated form submissions. Keep form content types out of the JSON defaulting path and cover the cross-realm case in the CSRF tests.
Main now uses the go.kenn.io/middleman module path. Normalize the notification inbox files that were replayed from the old branch import path so the rebased branch builds against the current module.
roborev: Combined Review (
|
roborev: Combined Review (
|
roborev: PassNo issues found. Review type: | Agent: codex | Job: 19261 |
Summary