Skip to content

fix: harden config mutations and PR validation#416

Merged
seakee merged 3 commits into
mainfrom
fix/config-mutation-and-ci-validation
Jul 20, 2026
Merged

fix: harden config mutations and PR validation#416
seakee merged 3 commits into
mainfrom
fix/config-mutation-and-ci-validation

Conversation

@seakee

@seakee seakee commented Jul 20, 2026

Copy link
Copy Markdown
Owner

Summary

Harden frontend configuration mutations against repeated loads, overlapping writes, and partial multi-channel updates. Expand PR path classification so workflow, native packaging, and Docker Compose changes receive relevant validation.

Scope

  • Frontend panel
  • Manager Server
  • CPA panel mode
  • Full Docker mode
  • Native packages / release
  • Docs / Wiki
  • CI / build / tooling

Changes

  • Keep OAuth configuration loader references stable and add regression coverage for repeated initialization requests.
  • Serialize provider configuration mutations and compensate multi-channel OAuth alias writes when completed or ambiguous requests fail.
  • Expand PR check classification and validate native packaging syntax and Docker Compose configuration.

User Impact

Prevents repeated OAuth configuration requests, overlapping provider updates, and avoidable partial alias changes. There are no intentional visual changes.

Compatibility / Runtime Notes

  • CPA panel mode: Uses the existing CPA configuration APIs with safer frontend request coordination.
  • Manager Server mode: No Manager Server code or API contract changes.
  • Full Docker / native packages: Runtime behavior is unchanged; CI now validates Compose and native packaging inputs when relevant.

Data / Security Notes

OAuth alias mutations now attempt reverse-order compensation, including requests whose response may have been lost after the server applied the write. The client reloads server state after failures. No secrets, schemas, or stored credentials change.

Risk / Rollback

Risk level: Medium

Rollback notes: Revert the three commits in this PR to restore the previous loader, mutation, and PR classification behavior.

Verification

  • Type check
  • Lint
  • Tests
  • Build
  • Manual UI check
  • Docs/link check
  • Not applicable, docs-only

Commands / evidence:

npm run type-check
npm run lint
npm run test          # 110 test files, 997 tests passed
npm run build         # single-file production build passed
bash -n bin/release/package-native.sh
docker compose -f docker-compose.manager.yml config
git diff --check

Screenshots / Recordings

N/A — behavior and CI validation changes only.

Docs

  • README / README_CN updated for user-visible capabilities
  • Matching docs manual and navigation updated
  • Demo fixtures, screenshots, and deep links reviewed
  • Release notes needed
  • Not needed — explanation included below

Docs decision: These changes correct request coordination and validation behavior without adding user-facing capabilities or configuration options.

Related

Fixes #412

seakee added 3 commits July 20, 2026 20:55
Keep loader callbacks stable so initialization effects do not restart requests after state updates.

Serialize multi-channel alias writes and roll back completed and ambiguous failed requests. Add regression coverage for loader identity and rollback behavior.
Use a synchronous shared lock for provider toggles, priority changes, and health-check updates.

Prevent overlapping optimistic writes from racing and overwriting newer provider configuration. Cover lock acquisition and release behavior with a focused unit test.
Classify workflow, native packaging, and Compose changes into the checks they can affect.

Validate packaging script syntax and Docker Compose configuration in PR checks. Add classifier regressions so infrastructure changes cannot silently skip validation.
@seakee
seakee merged commit 597f9b1 into main Jul 20, 2026
11 checks passed
@seakee
seakee deleted the fix/config-mutation-and-ci-validation branch July 21, 2026 01:46
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.

[Bug]: AuthFiles 页面因不稳定 OAuth loader 回调陷入无限请求循环

1 participant