feat(api): start and reload sessions over persist-backed HTTP - #232
Conversation
Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Hourly loop: exact-head rustfmt failed on |
|
Hourly loop: rust FAIL on exact head |
|
Hourly loop: exact-head rust FAIL was |
|
Hourly loop: also pushed |
|
Hourly loop: |
|
Hourly loop: |
Keep persist-backed session HTTP as Active PR #232. Cover command-table load, insert-sink, and replay-lookup Database arms from the library.
|
Hourly loop: bot merge |
seonghobae
left a comment
There was a problem hiding this comment.
Independent last-push review of exact head 1302cfdc.
HTTP start/reload stays on the sealed persist path: Idempotency-Key is the durable session_ref, unpublished/invalid stored releases fail closed with RFC 9457 next-action types, and command HTTP / tenant isolation stay out of scope. Latest coverage commit exercises first-write failure, helper flush, and UnpublishedStart/InvalidStartRelease Display arms without changing start semantics.
Merge only after exact-head Runtime CI / coverage succeed. Prefer this head over #149/#161 for public session start.
1302cfd to
5648ce3
Compare
seonghobae
left a comment
There was a problem hiding this comment.
Independent last-push review on exact head 5648ce3. Persist-backed session HTTP on the sealed start path; RFC 9457 next-action errors. Merge if live product checks stay green.
Rebased onto current main after #235. Persist-backed session HTTP stays on the sealed start path; this rebase only keeps both sides of stale changelog/traceability/module-list overlap and does not change persist or session behavior.
Linux llvm-cov left the Content-Length wait-continue path and the start-from-already-unpublished in-memory catalog replay arm unexecuted. Prove the listener waits for the declared body, and that a buyer who already started can retry after the in-memory catalog is suspended. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
5648ce3 to
d984c5d
Compare
|
Rebased onto current protected main ( Coverage work on this head: the listener now waits for a fragmented @coderabbitai review |
|
|
|
Warning Review limit reached
Next review available in: 18 minutes Limit details: You’ve used all 1 included review currently available under your plan. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (27)
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. Comment |
Exercise invalid header bytes, GET reload, numeric start identity, and the PostgreSQL session HTTP port from the library so production line and branch coverage can close the remaining persist-backed start/reload paths. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review Rebased onto current protected main ( This head adds real-world tests for:
Product slice is unchanged: Please review this exact head. Independent last-push approval is still required after rebase. |
|
🧠 Learnings used
|
The assessment_session table rejects a numeric participant_ref at insert. Drop that check first so load can prove it still fails closed when a repaired-badly store contains an illegal stored identity. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review |
|
Execute command replay, fail-closed corrupt history, and persist-backed GET/UTF-8 framing in the library crate so Linux llvm-cov instantiations reach the production line and branch gates. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Cover the Linux llvm-cov From<PersistenceError> instantiation and the decode_request_bytes map_err closure that remain after library load replay tests, without changing session HTTP behavior. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
Execute library and integration-crate start/persist error arms that LLVM JSON counts per instantiation so production line coverage can reach 100% without changing product behavior or coverage policy. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review |
|
Linux llvm-cov JSON counted the `|` or-pattern source lines in From<InstrumentReleaseQueryError> as uncovered (1850/1854) even though the last arm executed. Give each query-error variant its own match arm and execute those mappings from the integration crate, including the Database start path, without changing persist or session start semantics. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
|
@coderabbitai review |
|
seonghobae
left a comment
There was a problem hiding this comment.
Independent last-push review on exact head 71d05b9. Persist-backed session HTTP on the sealed start path; RFC 9457 next-action errors. Production line/branch coverage, Rust, Strix, and product CI are green on this head. Squash merge.
Why
A buyer still cannot start or resume an assessment over HTTP on the sealed persist path. #149 is in-process only. #161 and #204 sit on older persist. #218 locks stored
instrument_releaseand classifies an exact Created row before fail-closed, but has no public route.What this PR does
FOR UPDATEstart-lock, first-insert seal, and seal-fail exact persist replay.POST /v1/sessionsandGET /v1/sessions/{session_ref}that callstart_created_assessment_session_from_stored_release/load_assessment_session.Idempotency-Keyas the durable session reference.openapi/sessions.yaml(OpenAPI 3.2.0) in the same change.Out of scope
POST /v1/sessions/{session_ref}/commands)assessment_sessionTest plan
cargo test --test session_http_contract --lib session_httpcargo test --test documentation_architecture_contract --test traceability_active_pr_contractcargo clippy --all-targets -- -D warningscargo test --test postgres_session_http(needsTEST_DATABASE_URL)This is the HTTP successor to #218. Prefer this head over #149 and #161 for public session start. Do not merge until exact-head checks and independent last-push approval are satisfied.