Skip to content

fix(integrations): bind connector reads to request lifetimes - #3329

Merged
Chris0Jeky merged 2 commits into
mainfrom
audit/3327-integration-read-ownership
Sep 22, 2026
Merged

Chris0Jeky merged 2 commits into
mainfrom
audit/3327-integration-read-ownership

Conversation

@Chris0Jeky

@Chris0Jeky Chris0Jeky commented Sep 21, 2026

Copy link
Copy Markdown
Owner

Closes #3327.

Summary

Binds integration list/detail reads to explicit request lifetimes instead of entity ID or one shared Boolean:

  • list and detail use independent ownership lanes;
  • a newer read retires only the previous owner in the same lane;
  • reset advances an epoch before clearing visible state;
  • stale successes, failures, toasts and finally settlement cannot alter the replacement lifetime;
  • loading remains true while either current list or detail lane still owns work;
  • legitimate list/detail concurrency remains available.

The integration API, DTOs, routes and mutation behavior are unchanged. This slice does not claim to cancel or roll back a connector mutation already accepted before reset.

Test-first evidence

Base: 307c3b8b50bec1cb0bfaea3e570a942bcb1d4451

  • Test-only commit: 78ecac7d3bc37fe80ba1c746f0eecb9e6d72f372
  • Corrective exact head: 4e232e22778489681b9db5746e5c221ada7a088a

A supplemental runner transpiled and executed the actual production store with only its framework/API boundaries stubbed:

  • unchanged main: 0/5 ownership schedules passed;
  • corrected source: 5/5 passed.

The committed Pinia/Vitest suite covers six schedules:

  1. A-old → B → A-new with A-old settling last;
  2. reset followed by same-ID stale success;
  3. reset followed by same-ID stale failure and no stale toast;
  4. list response after reset;
  5. reverse-settling list reads;
  6. overlapping list/detail loading ownership.

The test-only Required CI was superseded and cancelled when the corrective head was pushed, so no hosted canonical-red claim is made. Smart CI and Extended passed on the test-only commit; canonical regression qualification belongs to the corrective exact head.

Verification

Local/source-backed:

  • combined integration/permission actual-module ownership suite: 12/12 passed after correction;
  • TypeScript syntax transpilation of changed store/tests passed;
  • docs governance and golden-principles checks passed;
  • relative-link scan checked 719 Markdown files with zero broken links and the same three pre-existing masking warnings.

Hosted exact-head:

  • Smart CI Self-Test 35597534968: success;
  • CI Extended 35597535200: success;
  • Required CI 35597535219: success across the complete required matrix.

Ready for independent review. Green CI is qualification evidence, not merge authorization. Review should focus on A→B→A identity reuse, reset ownership, stale error/toast suppression, and independent list/detail loading.

No merge, release or deployment qualification is claimed.

Copy link
Copy Markdown
Owner Author

Fresh source-backed verification for exact head 4e232e22778489681b9db5746e5c221ada7a088a:

  • Actual production modules, unchanged uploaded-main source: 0/12 combined integration/permission ownership schedules passed; every failure matched the named stale-state or loading symptom.
  • Actual production modules, corrected source: 12/12 passed.
  • integrationStore.ts, integrationStoreOwnership.spec.ts, permissionsStore.ts, permissionsStoreOwnership.spec.ts, and adjusted permissionsStore.spec.ts all transpile under TypeScript 5.8.3 with zero diagnostics.
  • Smart CI Self-Test 35597534968: success.
  • CI Extended 35597535200: success.
  • Required CI 35597535219: queued at this checkpoint.

The actual-module runner uses only framework/API boundary stubs and does not replace canonical Pinia/Vitest or full hosted qualification. The test-only Required run was superseded/cancelled, so this comment does not claim a hosted canonical-red execution.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 21, 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-09-21T14:09:04.107638Z 4e232e2 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.

@Chris0Jeky Chris0Jeky left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fresh-context continuation review: read the complete three-file diff and the unchanged surrounding mutation paths. Unique request tokens plus reset epoch prevent A-to-B-to-A identity reuse; list and detail retain independent ownership, and current loading derives from both owners. Canonical deferred tests assert the installed result, stale failure/toast suppression, and loading while the other lane remains pending. No blocking finding in this read-only slice.

Current-main integrationStore.ts blob 6bb30b2073b1879b1fde9679f7828c2c43a9e3c7 matches the inspected unchanged base; no overlapping source rewrite is being assumed away. Exact-head Required CI 35597535219, Self-Test 35597534968 and both returned Extended runs succeeded. Codex completed at this exact head, and the current inline thread list is empty.

The real session lifecycle/mutation admission follow-up remains in existing child #3332, followed by #3336 for same-connector mutation ordering. This parent does not claim those remaining guarantees, and those children must be retargeted/requalified after it lands. Normal expected-head merge under the maintainer's current instruction; no new local Pinia/Vitest execution or release qualification is claimed.

@Chris0Jeky
Chris0Jeky merged commit f3af57a into main Sep 22, 2026
54 of 55 checks passed
@Chris0Jeky
Chris0Jeky deleted the audit/3327-integration-read-ownership branch September 22, 2026 00:52
@github-project-automation github-project-automation Bot moved this from Pending to Done in Taskdeck Execution Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Integration reads can overwrite newer same-ID state after A→B→A or reset

1 participant