Repository navigation
Add anonymous operational queue and usage metrics - #46
Conversation
|
@codex review |
|
@codex security review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
🛡️ Codex Security ReviewSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
…#49) ## Why is this PR needed? Promote the reviewed backend changes on `dev` to `master`. These changes prepare Chess-Crawl for a separately maintained hosted product while keeping basic local installations usable. ## What does this PR change? | Delivery PR | Result | | --- | --- | | [#41](#41) | Shared typed environment/TOML configuration, redacted inspection and offline role validation | | [#42](#42) | Workspace provisioning, hashed credentials, revocation and versioned quota policies | | [#43](#43) | Durable acquisition separated from bounded processing, with recovery and atomic game-quota admission | | [#44](#44) | Optional event delivery, bounded retention and polling-only deployment | | [#45](#45) | Independently scalable API/acquisition/processing roles in local Compose and AWS | | [#46](#46) | Anonymous operational backlog, waiting and usage metrics | | [#47](#47) | Bounded asynchronous working-set/export jobs and workspace-owned local/S3 artifacts | | [#48](#48) | Live provider pacing/retry policy and bounded dedicated database sessions | The public backend supplies reusable contracts, credentials, work policies and usage. Customer billing and proprietary chess inference/evaluation/training belong in the separate private product layer; see [hosted-service boundaries](https://github.com/xormania/chess-crawl/blob/dev/docs/saas-integration.md). ### Upgrade notes - Drain older workers and apply migrations `0017`–`0021` before starting this application version. Restart services after changing deployment configuration. See [execution and upgrades](https://github.com/xormania/chess-crawl/blob/dev/docs/execution.md). - Rerun cloud database role bootstrap to update runtime permissions. Existing AWS stacks must replace legacy combined-worker/shared-size parameters and inventory retained queues; see [AWS deployment](https://github.com/xormania/chess-crawl/blob/dev/docs/aws-deployment.md). - Database authentication requires a separately provisioned readiness credential. Asynchronous archive-job admission defaults off; retain artifact storage access while draining jobs or serving existing downloads. See [workspace administration](https://github.com/xormania/chess-crawl/blob/dev/docs/workspace-administration.md) and [archive jobs](https://github.com/xormania/chess-crawl/blob/dev/docs/archive-jobs.md). ## Evidence that it solves the reason | Claim / acceptance condition | Baseline evidence | Result and verification | | --- | --- | --- | | Shared deployment configuration and independently scalable roles | Prior deployment coupled worker stages and configuration paths | Configuration/deployment contracts and real Compose API/Mercure smoke passed in the linked delivery PRs | | Workspace ownership, quotas and durable recovery survive replica concurrency | Hosted-service requirements and focused regressions in the delivery PRs | Real PostgreSQL 18 tests cover credentials, policy revisions, admission races, fencing, recovery and owned artifacts | | Complete integrated backend passes supported offline checks | `master` lacks the eight merged delivery PRs | Final [PR #48 checks](https://github.com/xormania/chess-crawl/pull/48/checks) passed: 1,584 tests on each of Python 3.11 and 3.13, Mypy, Ruff, Bandit, packaged CLI and Compose smoke | Every delivery PR received exactly one `@codex review` and one `@codex security review` after CI was green. Findings were resolved and updated checks passed before merge. The promotion's own CI checks validate its merge result separately. ## Changelog Carries the substantive `Unreleased` entries already accumulated on `dev`; no duplicate promotion entry or release version is added.
Why is this PR needed?
Independent acquisition and processing workers need observable queue capacity and wait reasons. Hosted operators also need bounded, anonymous usage totals without coupling the backend to a billing plan or metrics vendor.
What does this PR change?
Adds a read-only
chess-crawl-admin metricssnapshot with counts and oldest ages for stage-eligible work, active leases and exclusive wait reasons. SQL aggregation reuses the same job admission predicates as workers. It reports dispatch/event retry heads and current workspace-budget usage without user identities, targets or credentials. Queries have a bounded deadline and sanitized failures.Evidence that it solves the reason
28 metrics/storage-boundary PostgreSQL cases and two full-pipeline cases passed locally. Administration delegation, Ruff, Mypy and Bandit passed. Full Python 3.11/3.13 offline suites and Compose smoke run in CI.
Changelog
Added operational metrics under Unreleased and command/operating guidance.