Conversation
Size Report
Startup median (7 runs, lower is better):
|
There was a problem hiding this comment.
All reported issues were addressed across 32 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
|
The code in d0f7cf8 looks sound, but the PR is not ready: live device evidence is still missing, and the Coverage check fails because of this change. Coverage fails in The live run should reach three routes and show their output. (1) On a fresh session name with no prior Could one binding constructor own the rule instead? The rule would be that a capture binding derives its slot only from the durable definition's Not blocking, and fine to take or leave: (a) Finishing is still keyed by address. I judged the tests by reading them and did not run the mutations the PR describes. I also could not confirm whether per-session request serialization makes the Before merge, please remove the new static edge from the teardown closure so Coverage passes, then attach the live record-only |
e180d9f to
a760a6a
Compare
712e7da to
bef2ebb
Compare
a760a6a to
4011de9
Compare
|
The two new commits fix the declaration emit and remove the static import that pulled The live evidence requested earlier is still missing. This PR changes device-facing routes: record-only draft publication, record, logs, perf and audio-probe adoption, and teardown, starting in record-runtime.ts. The tests use session-binding fixtures, not the daemon route, so the real adoption paths on a device or simulator are unproven. Please post live run output on one device or simulator that shows: (1) on a fresh session name with no prior Before merge, I need that live output and a green Coverage run at 696ea9f. |
4011de9 to
4e4f87d
Compare
696ea9f to
2652dd2
Compare
…eclarations Daemon session bindings inferred a binding type whose clear result was an alias the durable-capture entry never exported, so declaration emit failed with TS2883.
Binding app-log capture through the session capture binding pulled that module into session-teardown's eager closure. Teardown now imports the app-log resource only when a session has an app log to stop.
2652dd2 to
cbf0a6e
Compare
4e4f87d to
4ef85e9
Compare
4ef85e9 to
5aa8134
Compare
|
Consolidated into #3135 as part of reducing #3116 to seven PRs. The composition preserves the complete pre-consolidation source tree, including tests and later review corrections. This PR is superseded; its review discussion and native evidence remain available. Outstanding findings transfer to the owning keeper in the implementation record. |
Summary
Capture adoption now receives a binding to one session lifetime. The binding owns admission, slot identity, artifact addressing and explicit field updates. Audio, perf, app-log and screen-recording callers capture their ref before asynchronous startup.
An unpublished record-only draft publishes at the existing adoption point. Shutdown can refuse publication while retaining truthful recovery evidence when cleanup is unconfirmed. Failed adoption rechecks authority after cleanup yields, so it cannot terminalize successor evidence.
flowchart LR Start[Start native capture] --> Adopt[Lifetime-bound adoption] Adopt --> Check{Admission and slot still valid?} Check -->|Yes| Publish[Publish owned resource] Check -->|No| Cleanup[Dispose captured handle] Cleanup --> Evidence[Retain unconfirmed recovery evidence if still authorized]Depends on #3135. Ref #3116. Thirty-two files, 797 gross changed lines. Capture finishing migrates in the next dependency layer.
Validation
Tested
d0f7cf8121: quick checks, Fallow and exact-head affected checks pass, including 355 related files / 2,357 tests. Focused draft/resource/log tests pass.Removing admission or lifetime checks, reusing pre-await persistence authority, and coupling draft persistence to admission each fail the regression controls; restored code passes. Independent read-only review has no findings. CI-owned coverage/provider and live device evidence remain pending.