Skip to content

Expose read-only receipt history and bounded capacity observations - #52

Merged
brainx merged 6 commits into
mainfrom
feat/receipt-observation-api
Sep 16, 2026
Merged

brainx merged 6 commits into
mainfrom
feat/receipt-observation-api

Conversation

@brainx

@brainx brainx commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Dashboard observers can read existing durable message receipts through GET /messages, /messages/{message_id} and /messages/capacity, with equivalent /v1 aliases. These routes never dispatch/retry jobs, refresh execution state, recover operations, initialize storage or migrate it.

Stacked on #51; the diff contains only receipt observation, capacity budgeting and their API contracts.

  • Bound list pages to 100 rows with an exclusive durable cursor and optional bot filter. Archived receipts remain addressable; prepared receipts are reported as unknown without changing storage.
  • Return explicit public-field allowlists, excluding prompts, outputs, endpoints, credentials, fingerprints, upstream keys, leases and internal versions.
  • Read existing schema 10 storage in read-only SQLite snapshots. Capacity uses a cooperative two-second SQLite/validation budget and returns a fixed 503 error instead of partial totals. Existing CLI capacity behavior remains unchanged.
  • Document complete schemas, pagination/errors, and the Olymp server-side allowlist and pinned-fixture follow-up. No schema migration or message mutation API.

Verification: 85 receipt HTTP/reader/contract, capability, operator-interface, repository-contract and module-size tests passed. A separate 67-test receipt/store/capacity/release/CLI regression run passed. HTTP tests assert unchanged database bytes/SQL contents and prohibit execution/recovery calls. Repository-wide Ruff and formatting passed, mypy passed across 121 source files, Bandit passed, and git diff --check passed.

Limits: capacity's cooperative budget is not a hard filesystem-call deadline; size/free-space observations may be null and can change outside the SQLite snapshot. Normal API access logging and existing API startup initialization remain. No live Olymp deployment or tunnel test was performed.

Base automatically changed from feat/dashboard-capabilities to main September 16, 2026 01:10
@brainx
brainx changed the base branch from feat/dashboard-capabilities to main September 16, 2026 01:10
@brainx
brainx merged commit 39d0e02 into main Sep 16, 2026
20 checks passed
@brainx
brainx deleted the feat/receipt-observation-api branch September 16, 2026 01:19
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