Skip to content

fix(tasks): preserve audit changes and paginate visible work - #18

Draft
mfethe1 wants to merge 3 commits into
product/mainfrom
codex/buzz-task-integrity
Draft

fix(tasks): preserve audit changes and paginate visible work#18
mfethe1 wants to merge 3 commits into
product/mainfrom
codex/buzz-task-integrity

Conversation

@mfethe1

@mfethe1 mfethe1 commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

Task assignment, priority, and deadline changes currently lose their before/after values, and newer private tasks can hide accessible work from a limited task list. This change records each changed field in the same transaction as the task update, applies channel visibility before the database limit, and adds continuation cursors ordered by modification time and task ID. Retrying an unchanged patch leaves both history and the modification timestamp unchanged. Pagination remains live: a task modified between pages can move ahead of the cursor and requires a first-page refresh.

Migration 0047 adds structured task-event changes while preserving legacy rows. Deploy readers that understand the new action names before new writers; older relay binaries cannot read newly emitted action names.

Related issue

Builds on #10. Searched existing issues and PRs; no duplicate history/pagination fix found.

Testing

At head 8a35c1f14ae5f618ffbf416b1a6d1786e7b46f86, 126 database unit tests and a targeted 12-test isolated PostgreSQL CI lane passed (1,536 unrelated tests skipped), including desired-schema bootstrap and the 0046-to-0047 upgrade. A real signed HTTP flow exercised create, update, history, private-channel visibility, two-page retrieval, and retry behavior. Five targeted mutations were rejected.

Full just ci failed: 6,583 desktop JavaScript tests passed, then the mobile suite reported 2,241 passed and eight failed agent-activity golden comparisons. Those same eight comparisons failed at unchanged base adeec6eb5c4ff425aa03d8a744a295da4429f67f; all eight rendered actual PNGs were byte-identical between base and candidate. The rendering-platform explanation remains unconfirmed. This PR changes no mobile files or expected images. The broader just test launcher separately failed to start Docker Compose on Airy; the native database and HTTP lane ran independently.

Hosted runs for this head tested merge commit 39f3eb6651c91186f2d111d046add48a3cbb21a1. Image-cache writes failed, and the Windows Rust job reported 949 passed and 21 failed buzz-acp tests. Completed checks also report PostgreSQL, desktop smoke, and desktop integration failures. These gates remain failed on this PR; passing checks on separate repair PRs and green summary jobs do not qualify it for merge.

Signed-off-by: Michael Feth <mfethe1@gmail.com>
Signed-off-by: Michael Feth <mfethe1@gmail.com>
@coderabbitai

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Trunk landed 0047_agent_machine_homes (AGENT-HOMES-001 PR-3) while this
branch carried its own 0047_task_event_changes, so both sides claimed
version 47. PR #30 already owns 0048_community_brand_color, so this takes
0049. sqlx::migrate! globs migrations/ by filename, so renaming the file
is the whole renumber. Inventory assertions pin 47 migrations, 46/47/49.
@mfethe1
mfethe1 force-pushed the codex/buzz-task-integrity branch from eaeba42 to 76c9c66 Compare September 12, 2026 02:53
mfethe1 added a commit that referenced this pull request Sep 12, 2026
Trunk landed 0047_agent_machine_homes while this branch carried its own
0047_task_optimistic_concurrency. PR #30 owns 0048 and PR #18 owns 0049,
so this takes 0050 (matching the numbering PR #27 already expects).
sqlx::migrate! globs migrations/ by filename, so the rename is the whole
renumber. Inventory now pins 47 migrations with 50 last.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant