Skip to content

[codex] Page transactions from daemon#174

Merged
tobomobo merged 1 commit into
mainfrom
codex/transactions-server-paging
May 25, 2026
Merged

[codex] Page transactions from daemon#174
tobomobo merged 1 commit into
mainfrom
codex/transactions-server-paging

Conversation

@tobomobo
Copy link
Copy Markdown
Contributor

Summary

  • Add cursor/query/hasMore support to ui.transactions.list and reuse the same backend path for ui.transactions.search.
  • Preserve pair-collapsed UI rows across cursor boundaries so swap/transfer pairs do not duplicate or disappear between pages.
  • Move /transactions off the initial limit: 500 fetch by using a daemon-backed infinite query and a Load more table affordance.
  • Bump the daemon query session on profile switches so paged transaction data never crosses book/profile boundaries.

Validation

  • UV_CACHE_DIR=/tmp/kassiber-uv-cache uv run python -m unittest tests.test_review_regressions.ReviewRegressionTest.test_ui_snapshots_show_reviewed_swap_movement_with_fee tests.test_daemon_smoke.DaemonSmokeTest.test_daemon_safe_read_tool_kinds_return_workspace_state
  • pnpm --dir ui-tauri run typecheck
  • pnpm --dir ui-tauri exec vitest run src/daemon/client.test.ts
  • Independent reviewer re-check: no remaining P1/P2 blockers.
  • HOME=/tmp/kassiber-quality-home UV_CACHE_DIR=/tmp/kassiber-uv-cache ./scripts/quality-gate.sh

@tobomobo tobomobo force-pushed the codex/transactions-server-paging branch from 1965fda to e723a27 Compare May 25, 2026 12:31
@tobomobo tobomobo marked this pull request as ready for review May 25, 2026 13:05
@tobomobo tobomobo merged commit 31a0db3 into main May 25, 2026
3 checks passed
@tobomobo tobomobo deleted the codex/transactions-server-paging branch May 25, 2026 13:06
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e723a274fa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

order=order,
filters=cursor_filters,
)
skip_pairs = set(cursor_data.get("skip_pairs", [])) if cursor_data else set()
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Validate cursor skip_pairs entries before converting to set

Converting cursor_data["skip_pairs"] directly with set(...) allows non-hashable JSON values (for example, a tampered cursor containing [{"x":1}]) to raise a raw TypeError instead of the expected validation AppError. This breaks the daemon’s error-envelope contract for malformed cursors and surfaces as an internal failure path rather than a user-correctable validation error; the cursor decoder should either enforce skip_pairs as a list of strings or catch TypeError and rethrow AppError(code="validation").

Useful? React with 👍 / 👎.

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