Skip to content

fix(ci): repair RPC audits and Core process test prerequisites - #916

Merged
LIghtJUNction merged 3 commits into
wip/rust-core-go-extensionsfrom
fix/runtime-privilege-audit-915
Oct 15, 2026
Merged

LIghtJUNction merged 3 commits into
wip/rust-core-go-extensionsfrom
fix/runtime-privilege-audit-915

Conversation

@LIghtJUNction

@LIghtJUNction LIghtJUNction commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

Continue #915 in this existing PR. Latest commit: 80523172c057fb26997cbdb0cf764f319d867c7b.

Synchronize with WIP 906f6382ad19f213cb3aefe41915c3ab993ab7a1 without rewriting history. Preserve all current application, OAuth, abuse-control and schema changes. This PR changes only five fixture/workflow/documentation files relative to that WIP revision.

Repairs

  1. Preserve the original RPC audit fix: resolve the private charging relation OID as installation owner before switching session identity. Check denied schema/table/column privileges without granting access. Preserve the exact 12-component inventory, including abuse.
  2. Use the same digest-pinned PostgreSQL 18 image as deployment/docker/compose.identity.yml, instead of testing canonical catalogs on PostgreSQL 17. PostgreSQL 18 includes table NOT NULL constraints in pg_constraint; PostgreSQL 17 does not. The repository catalog query includes this table, so cross-major fingerprints are not interchangeable. No reviewed fingerprint or application schema is changed by this repair.
  3. Compile Rust test artifacts first, bind the actual Core binary path and SHA-256, create a private short process root, then execute the existing complete cargo test --locked --all-targets --no-fail-fast command. All six model process cases remain enabled. No skip, ignored failure or success-only application mock is added.
  4. Replace the nonexistent opening-import guide link with the pending A03 PR WIP(A03): offline financial opening writer, strict replay and recovery #884, retaining the warning that this is not an existing-site migration procedure.
  5. Add two source regressions for the PostgreSQL image contract and process setup ordering.

PostgreSQL catalog references: https://www.postgresql.org/docs/18/catalog-pg-constraint.html and https://www.postgresql.org/docs/17/catalog-pg-constraint.html.

Actual verification

  • New topology regressions against original workflow: 2 failures, as expected.
  • node --test --test-name-pattern='Core CI|manual checks reuse|independent check failures|CLI consumers' scripts/workflow-topology.test.mjs: 5 passed after the fix.
  • Shell-only harness with fake Cargo: 5 cases passed (success, clippy failure, compile failure, missing binary, test failure). It verifies environment, private-root permissions, digest binding and nonzero status through tee; it is not Core/database acceptance.
  • python3 -B scripts/test_core_rpc_fixture.py -v: 13 passed, 1 existing Docker-dependent skip.
  • YAML parsing, bash -n, node --check, diff whitespace and the changed document-link delta passed.
  • Remote workflow, topology-test and document blob IDs exactly match the locally tested files.

Historical real integration evidence: run https://github.com/TokenNotIncluded/lmm-api/actions/runs/38658171431 tested PR head b97360a5 through merge source a9eeabff. Its native protobuf/RPC recovery step passed. The overall run failed in document links, catalog/CLI tests and missing model-process environment. This supersedes the original description's claim that native RPC had never been tested, but it does not verify this new integrated commit.

Remaining acceptance

The catalog mismatch explanation is source-supported; the latest canonical fingerprints and all six process cases still require a real run on this new commit. WIP advanced during this work and its newer reviewed fingerprints were preserved, not replaced with older observed values.

Local Rust, PostgreSQL, Docker and agcc are unavailable. The local source came from a hash-checked partial CI source archive, with affected current files verified against GitHub. The full documentation/topology/application checks were not run locally; targeted self-tests are not independent acceptance. No dependencies were installed, no private process logs uploaded, and no production service, release or deployment changed.

Keep #915 open until the new integration checks and remaining failures are verified. No merge has been performed.

Copy link
Copy Markdown
Collaborator Author

Automatic CI finished: run 38656514072 / protocol, candidate head 9e725ef7b8560a26bf993b03638586434307c8ba. Overall failure; keep Draft.

Important limitation: native RPC stopped at scripts/test-core-rpc-docker.py:293, the exact component inventory assertion, before reaching this PR's runtime privilege audit. The newer base registers an abuse component in services/core/src/core_schema.rs, while the fixture's inventory still lists the previous components. Therefore this run does NOT verify the OID fix against live PostgreSQL. No additional source or assertion change is included here.

Other failures remain: missing docs/legacy-financial-opening.md link; schema predecessor catalog actual 78ed7588f33b6dc6e3e82a6ad6142d4c9dda62322c6209c7c8cc163190b3dbd2 versus reviewed 9ce6c5120645792608d4466ef9fe4b6f91add7ec082670d276bffbd94f48c14a; associated CLI Error: Storage; all six model-process cases lack their runner environment. These are separate from this patch and were not bypassed.

Go contract/race, Store PostgreSQL, durable event recovery and service boundary steps passed. File-only fixture contracts, formatting and other earlier-dependent steps were skipped after the docs failure. Local scoped evidence remains 12 passed plus one existing Docker-dependent skip, not full acceptance. No manual run, rerun, merge or deployment was performed.

Copy link
Copy Markdown
Collaborator Author

Added narrowly scoped fixture repair in b97360a5c7fd4e7ee97a1e6e5acea64f83433d99: include the explicit abuse component in the exact fresh-install set. Base 60c04cf2 defines all 12 components in core_schema.rs; its initializer executes and records every component, including disabled modules, independently of runtime configuration. Equality is retained; no missing/extra components are accepted.

New AST regression failed against the previous fixture (11 versus 12) and passes after this one-literal update. Final local suite: 13 passed, 1 existing Docker Compose skip. Three additional mutations (missing component, unexpected extra component, weakening equality to a subset check) all fail the new regression. Python compilation and whitespace checks passed. Remote source blobs match tested local bytes. Only the same two fixture files changed; reviewed catalog hashes, application schema and grants remain untouched.

Live PostgreSQL validation of the OID audit is still pending the automatic run for this exact new head. No manual dispatch or merge.

Copy link
Copy Markdown
Collaborator Author

Verified terminal automatic CI result for exact head b97360a5c7fd4e7ee97a1e6e5acea64f83433d99: run 38658171431 / protocol.

Native protobuf round trips and failure recovery PASSED in real Docker/PostgreSQL. The fixture passed the exact 12-component assertion and mandatory runtime privilege audit (including no charging schema USAGE/CREATE and no request table/column writes), then completed all remaining scenarios. Log confirmations at 00:21:25–00:21:31 UTC include fresh installation/repeat-init refusal, native teams/protobuf/separate credentials, extension restart/replacement/wrong service token isolation, reconnect/bounded database failure/persistent keys/immediate revocation/closed model routes. This supplies the previously missing live validation for the scoped OID repair.

Overall workflow remains FAILED: the unrelated missing documentation link and Rust schema-catalog/CLI/model-process failures persist. Go contract/race, Store PostgreSQL, durable event recovery and service boundaries passed. Earlier-dependent fixture-contract/format stages remained skipped after the docs failure; local fixture regressions are separately documented above.

Keep Draft; this is scoped evidence, not complete #915 or project acceptance. No catalog hash/grant changes, manual CI dispatch, merge or deployment.

@LIghtJUNction
LIghtJUNction marked this pull request as ready for review October 15, 2026 01:42
Copilot AI balanced review requested due to automatic review settings October 15, 2026 01:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 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
🔒 Security Review ⚠️ Failed 2026-10-15T01:48:31.020781Z b97360a Draft marked ready
ℹ️ 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.

Continue #915 in existing PR #916. Merge WIP 906f638 without rewriting history or changing its application code and reviewed schema fingerprints.

Use the same digest-pinned PostgreSQL 18 image as the RPC fixture. Compile test artifacts before binding the actual Core executable, SHA-256 and private short process root; keep all Rust tests and failure propagation. Replace the missing opening-import guide link with its pending A03 PR. Preserve the prior RPC privilege-denial and component-inventory repairs.

Two new topology regressions fail before the patch; five affected topology tests pass after it. Five shell-plumbing cases pass, including compile and test failures; this is not real Cargo/database acceptance. Offline RPC fixture: 13 passed, one existing Docker skip. YAML, JavaScript and shell syntax, changed document links and diff whitespace were checked. Rust/PostgreSQL/Docker are unavailable locally; full integration CI and independent acceptance remain pending.
@LIghtJUNction LIghtJUNction changed the title test(rpc): inspect charging privilege denial without schema access fix(ci): repair RPC audits and Core process test prerequisites Oct 15, 2026
@LIghtJUNction
LIghtJUNction merged commit 2b0ba15 into wip/rust-core-go-extensions Oct 15, 2026
1 of 3 checks passed
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.

2 participants