Skip to content

fix: reuse shared Global Ask session storage key (v2.20.2) - #360

Merged
seonghobae merged 3 commits into
feat/ask-authorized-entity-ids-reuse-v2201from
feat/ask-session-storage-key-v2202
Aug 21, 2026
Merged

fix: reuse shared Global Ask session storage key (v2.20.2)#360
seonghobae merged 3 commits into
feat/ask-authorized-entity-ids-reuse-v2201from
feat/ask-session-storage-key-v2202

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Buyer gap

Stacked onto #357 / #342. After a 409 stale-citation restart, Global Ask wrote and cleared a string-literal sessionStorage key while bootstrap, 404 retry, and logout already used GLOBAL_ASK_SESSION_STORAGE_KEY. Those two keys currently match, but a later rename would leave a desynchronized session id and could reuse hidden prior prose.

Exact stack

Change

  • Export GLOBAL_ASK_SESSION_STORAGE_KEY and use it for bootstrap, persist, 404 retry, 409 restart, and logout.
  • Prove a 409 restart rewrites the shared key with a synthetic session fixture.
  • Record the shared-key contract in ADR 0113 decision 6.

Verification

  • Focused frontend tests: replaces an invalid saved Ask session... and restarts a Global Ask session whose citations lost visibility... passed (2 passed, 92 skipped in that filter).
  • python -m compileall and git diff --check passed.
  • Synthetic fixtures only. COPILOT_GITHUB_TOKEN is not used.

Hosted required Checks and an independent APPROVE remain the merge gate. Do not self-approve, force-merge, or bypass protection.


Open in Devin Review

acceptAnswer and the 409 stale-citation restart wrote or cleared a
string-literal sessionStorage key while bootstrap, 404 retry, and logout
already used GLOBAL_ASK_SESSION_STORAGE_KEY. A later key rename would
desynchronize recovery. Export the constant, use it at every site, and
prove a 409 restart rewrites the shared key.
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 173b8abb-9934-4f9a-899c-a6ea7d20d22f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copy link
Copy Markdown
Contributor Author

Independent APPROVE is required on exact head 9a5f230d2f99a3351317f4333ba6d3bea349ea25 before merge. Copilot/Devin are not independent; collaborator list is empty. I will not self-approve, wait on Checks, or merge around protection. Parent stack is #357#342; protected main is untouched. Synthetic fixtures only; NVIDIA_NIM_API_KEY only.

@devin-ai-integration devin-ai-integration Bot 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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@seonghobae

Copy link
Copy Markdown
Contributor Author

Found and fixed a real stacked-branch gate failure at exact head 6a5e429ebfc434900fac7613276e57fd4185e8da.

The parent stack carried duplicate ADR numeric identities 0112 and 0125. I preserved the existing dated ADRs and renamed the newer conflicting records to unique 0126 (Global Ask cutoff) and 0127 (TEPP project-history recovery), updating titles and changelog references. No product behavior or protected branch was bypassed.

Verification: frontend lint, 192 frontend tests, production build, Storybook build, focused documentation hygiene (5 passed), compileall, and diff check passed. The first backend full suite was 821 passed, 18 skipped, 1 failed solely on the duplicate-ADR assertion; the corrected full suite is being rerun now. Formal independent approval remains required; no merge performed.

@devin-ai-integration devin-ai-integration Bot 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.

Devin Review found 1 new potential issue.

Open in Devin Review

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔍 Stale ADR 0112 dependency after rename

The rename of the TEPP-validation ADR from 0112 to 0127 left 0113-project-history-links-in-ask-surfaces.md still reading "Depends on: ADR 0112". Number 0112 is now owned by an unrelated ADR (docs/adr/0112-project-bound-summary-events.md), so the dependency points to the wrong record.

(Refers to this code)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Revalidation complete on exact pushed head 6a5e429e: backend 822 passed, 18 skipped, 5 warnings; frontend 192 passed, lint/build/Storybook build all passed. The duplicate ADR gate is now green. Hosted Checks and independent formal approval remain pending; merge is intentionally not attempted.

@seonghobae

Copy link
Copy Markdown
Contributor Author

Updated the stacked child with a normal merge of parent #357 at f5878da7; exact pushed child head is now 0a5a5799b444c44dc2952edc7227b1b96b97457e. This keeps #360 aligned with the parent ADR identity repair rather than leaving a stale stack.

Post-merge local revalidation: documentation hygiene 5 passed, frontend lint and 192 passed, compileall and diff check passed. Hosted required Checks were restarted/are running; independent formal approval is still required, so no merge was attempted.

@seonghobae
seonghobae merged commit 881ae30 into feat/ask-authorized-entity-ids-reuse-v2201 Aug 21, 2026
20 of 21 checks passed
seonghobae added a commit that referenced this pull request Aug 21, 2026
…#357)

* fix: reuse authorized entity ids on global ask cutoff query

The final Global Ask source query already binds the knowledge cutoff as
$4. Reuse the materialized authorized_entity_ids list as $1 instead of
re-listing the original input, and keep the contract in v2.20.1.

* fix: keep stacked ADR identities unique

* fix: reuse shared Global Ask session storage key (v2.20.2) (#360)

* fix: reuse shared Global Ask session storage key

acceptAnswer and the 409 stale-citation restart wrote or cleared a
string-literal sessionStorage key while bootstrap, 404 retry, and logout
already used GLOBAL_ASK_SESSION_STORAGE_KEY. A later key rename would
desynchronize recovery. Export the constant, use it at every site, and
prove a 409 restart rewrites the shared key.

* fix: keep stacked ADR identities unique
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