Skip to content

Implement API quality & reliability improvements - #1661

Merged
hman38705 merged 1 commit into
solutions-plug:mainfrom
katefominmoore23:batch-53-features
Sep 28, 2026
Merged

hman38705 merged 1 commit into
solutions-plug:mainfrom
katefominmoore23:batch-53-features

Conversation

@katefominmoore23

Copy link
Copy Markdown

Closes #1519
Closes #1520
Closes #1521
Closes #1522

Claude-Session: https://claude.ai/code/session_014jDDop7frnew1xcCJDSKEw

Description

Type of Change

  • Bug fix
  • New feature
  • Refactor / code cleanup
  • Documentation update
  • CI / tooling change
  • Breaking change

Testing Done

Bundle Size

Chunk Before After
vendor.js
main*.js
pages/_app*.js

Checklist

  • Tests pass locally
  • Documentation updated (if applicable)
  • No breaking changes, or breaking changes are documented above
  • If you added or changed an API endpoint, regenerated the OpenAPI spec and committed the result:
    cd services/api && cargo run --bin generate-openapi > openapi.yaml
    git add openapi.yaml && git commit -m "chore: regenerate openapi.yaml"
  • If you changed system architecture (new service, database, external dependency, or network boundary), updated docs/architecture.md
  • Bundle size checked (if frontend changes)

Related Issues

Closes #

- solutions-plug#1519: Dead-letter queue requeue idempotency enforcement
  * RequeueResult enum distinguishes NotFound vs NotInDeadLetter
  * Handler returns 409 CONFLICT for status mismatch (not silent success)
  * Data layer idempotent independent of HTTP cache TTL
  * Test confirms no duplicate sends on double-requeue

- solutions-plug#1520: API error variants to OpenAPI schema mapping contract test
  * Enumerates all ApiError variants and required schemas
  * Contract test fails if new variant added without documentation
  * Prevents undocumented error responses to clients
  * Current coverage: 6 error variants (400/404/409/429/500/503)

- solutions-plug#1521: Bounded in-memory watched_txs restore on startup
  * Max restore limit: 50,000 transactions
  * Warning logged when table exceeds bound
  * Startup metric tracks watched_tx_count
  * Prevents memory exhaustion on large tables

- solutions-plug#1522: Pagination mutual exclusivity (offset vs cursor)
  * Validates offset and cursor are mutually exclusive
  * Returns 400 BAD_REQUEST with clear error message
  * Unit tests cover all four parameter combinations
  * API docs clarify pagination strategy separation

Closes
solutions-plug#1519
solutions-plug#1520
solutions-plug#1521
solutions-plug#1522

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014jDDop7frnew1xcCJDSKEw
@drips-wave

drips-wave Bot commented Sep 28, 2026

Copy link
Copy Markdown

@katefominmoore23 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@hman38705
hman38705 merged commit a989947 into solutions-plug:main Sep 28, 2026
15 of 59 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment