Skip to content

Share provider operating policy and bound database session admission - #48

Merged
xormania merged 2 commits into
devfrom
feat/shared-operating-policy
Oct 6, 2026
Merged

xormania merged 2 commits into
devfrom
feat/shared-operating-policy

Conversation

@xormania

@xormania xormania commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Why is this PR needed?

Acquisition replicas need shared provider pacing/retry policy that can change without restarting workers, while every process must bound PostgreSQL session usage as replica counts grow.

What does this PR change?

Migration 0021 adds trusted versioned provider policy with optimistic concurrency and append-only history. Provider sessions resolve policy before requests and preserve server cooldowns. Workers recheck pacing, ownership and shutdown after a potentially blocking request-budget reservation; unused reserved bytes are settled if interrupted.

A shared per-process admission controller bounds dedicated database sessions, with finite wait and the existing availability/503 behavior. Setup failures and closure release permits once. Worker validation requires independent execution and heartbeat capacity. Shared runtime and deployment configuration forwards session bounds consistently; changing process bounds requires restart.

Evidence that it solves the reason

Acceptance condition Baseline evidence Result and verification
Live policy changes govern cached workers Startup-only provider settings Real PostgreSQL policy/CAS/cooldown and cached-session tests
No request after a delayed reservation ignores new policy or shutdown Deterministic baseline sent HTTP before committed pacing floor Red/green reservation-delay and cancellation regressions
Bounded sessions preserve ownership Unbounded process connection creation Concurrent admission, timeout, close/setup failure and worker-heartbeat tests

89 integrated PostgreSQL guards, 35 policy/cooldown/budget cases, 25 provider cases, 25 HTTP budget cases and 177 actual deployment/configuration contracts passed locally. Ruff, Mypy, Bandit and cfn-lint passed. Full Python 3.11/3.13 offline suites and Compose smoke run in CI.

Changelog

Added shared operating policy and process session admission under Unreleased, plus reservation pacing/shutdown fixes and operator guidance.

xormania commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

@codex review

xormania commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

@codex security review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-06T02:27:11.463830Z d15e57f Manual request
🔒 Security Review ✅ Completed 2026-10-06T02:29:04.375474Z d15e57f Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: d15e57f63d

ℹ️ 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".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review

Security review completed. No security issues were found in this pull request.

Reviewed commit: d15e57f63d

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@xormania
xormania merged commit 828dc14 into dev Oct 6, 2026
5 checks passed
@xormania
xormania deleted the feat/shared-operating-policy branch October 6, 2026 02:29
xormania added a commit that referenced this pull request Oct 6, 2026
…#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.
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