Skip to content

fix: harden provider recovery and session lifecycle - #42

Merged
darwin67 merged 17 commits into
mainfrom
rfd-5-phase-3-final-hardening
Sep 13, 2026
Merged

darwin67 merged 17 commits into
mainfrom
rfd-5-phase-3-final-hardening

Conversation

@darwin67

Copy link
Copy Markdown
Member

Summary

  • order account, integration, recovery, and lifecycle locks to close deletion races
  • canonicalize supported model snapshot syntax and defer final-review credential admission
  • recover newly observed authorization attempts and stop terminal retries
  • preserve durable authorization outcomes and bound missing-session coordinator shutdown
  • expose accessible clipboard failures, keep device codes readable, and update the RFD checklist

Stack

Verification

  • DATABASE_PORT=5432 mix precommit — 640 passed, 5 live-provider tests excluded; Credo found no issues
  • rendered the active ChatGPT authorization state at 1280×900 / 2× DPR and exercised clipboard rejection

@github-actions github-actions Bot added the fix label Sep 12, 2026
@darwin67
darwin67 force-pushed the rfd-5-phase-3-final-hardening branch from 1144c8b to 42999fd Compare September 13, 2026 00:01
@darwin67
darwin67 force-pushed the rfd-5-phase-3-admission-hardening branch from 14b8640 to 151feb2 Compare September 13, 2026 00:01
darwin67 added a commit that referenced this pull request Sep 13, 2026
## Summary
- claim, poll, and complete ChatGPT device authorization through durable
generation-fenced transitions
- add ChatGPT subscription accounts and the device authorization UI
- lease and coordinate OAuth refresh, normalize rotated credentials, and
refresh just in time for inference
- validate subscription access and provide actionable reconnect guidance
- simplify authorization boundaries so this provider-integration layer
is independently lint-clean

## Stack
1. **This PR** — ChatGPT device authorization and OAuth refresh
2. #40 — immutable execution-route snapshots
3. #41 — invocation admission hardening
4. #42 — final concurrency and UX hardening

## Verification
- covered by the Phase 3 stack's passing `DATABASE_PORT=5432 mix
precommit` run

---------

Co-authored-by: Darwin Wu <tough.pasta0068@wunli88.com>
@darwin67
darwin67 force-pushed the rfd-5-phase-3-final-hardening branch from 42999fd to 8a7f269 Compare September 13, 2026 06:22
@darwin67
darwin67 force-pushed the rfd-5-phase-3-admission-hardening branch from 151feb2 to 424c551 Compare September 13, 2026 06:22
darwin67 added a commit that referenced this pull request Sep 13, 2026
## Summary
- snapshot the selected provider, model, integration, and credential
generation per turn
- persist capability contracts and enforce the durable route during
execution
- gate route changes through compatibility checks and queue approved
transitions
- reject unapproved route records and normalize replay across accepted
routes

## Stack
- Depends on #38
- Followed by #41 invocation admission hardening and #42 final
concurrency/UX hardening

## Verification
- covered by the Phase 3 stack's passing `DATABASE_PORT=5432 mix
precommit` run

---------

Co-authored-by: Darwin Wu <tough.pasta0068@wunli88.com>
@darwin67
darwin67 force-pushed the rfd-5-phase-3-final-hardening branch from 8a7f269 to 621bd71 Compare September 13, 2026 07:22
@darwin67
darwin67 force-pushed the rfd-5-phase-3-admission-hardening branch from 424c551 to 5b94664 Compare September 13, 2026 07:22
Base automatically changed from rfd-5-phase-3-admission-hardening to main September 13, 2026 07:44
@darwin67
darwin67 force-pushed the rfd-5-phase-3-final-hardening branch from 621bd71 to 846d43a Compare September 13, 2026 07:45
@darwin67 darwin67 changed the title fix(rfd-5): close phase 3 hardening gaps fix: harden provider recovery and session lifecycle Sep 13, 2026
@darwin67
darwin67 merged commit 4277939 into main Sep 13, 2026
26 checks passed
@darwin67
darwin67 deleted the rfd-5-phase-3-final-hardening branch September 13, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant