Repository navigation
Conversation
|
Size Report
Startup median (7 runs, lower is better):
|
There was a problem hiding this comment.
All reported issues were addressed across 41 files
You’re at about 99% of the monthly reviewed-line limit. You may want to disable incremental reviews to conserve quota. Reviews will continue until that limit is exceeded. If you need help avoiding interruptions, please contact contact@cubic.dev.
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
5cf114c to
b3460e2
Compare
|
Rebased onto One owner per gap after the merge:
Not merged. Watching for the next pass. |
|
The Coverage job (unit-ci) fails at b3460e2, and it also failed on the previous head. The log excerpts stop before the vitest summary, so I could not name the failing test or threshold. This PR adds lifecycle suites that run in that job, so it may be related. Please find the failure in the full job log and fix it or say what causes it. Apart from the open stop-wait thread named at the end, I found no blocking code defect, and there are no conflicts. Not blocking, and you can take or leave these. (1) An unreadable or invalid The gross diff is +4064/-687, over the 2,500-line cap in I did not run The open inline thread on the stop wait (#3797 (comment)) still stands. The other review threads no longer apply and you can resolve them: r4306845790, r4306845794, r4306845798, r4306845809, r4306845813, r4306845820, r4306845823, r4306845825, r4306845831, r4306845836, r4306845840, r4306845843, r4306845852, r4306845854, r4306845858, r4306845861, r4306845865, r4306845868, r4306845870, r4306845878, r4306845884, r4306845890, r4306845893, r4306845897, r4306845902, r4306845904, r4306845906, r4306845912, r4306845916, r4306845920, r4306845922 and r4306845927. The code now handles each of these, and the comment-fix threads are already done. |
b3460e2 to
4f68cd7
Compare
|
Fixed the red What The cause was mine: The fix is the remedy the gate prescribes rather than a suppression: the write moved to The cubic thread on that test's mode assertion is resolved by the same move, in the honest direction: the contract test now plants a record as a fixture and says so, and the All 33 round-two threads are resolved. Each fix was already in the head, in Not merged. Watching for the next pass. |
|
The earlier gap is fixed. At 4f68cd7 all 20 checks pass, including Coverage, which failed at b3460e2 on the eager-closure probe for daemon-shutdown-report.ts. This push removes the host-kit/file import that caused it. The required evidence is now in place, and I did not run the embedded stop route or the timing case below myself. One problem remains in the stop path. A The cubic-dev-ai thread on this exact wait still holds, narrowed to retained closes: #3797 (comment). It resolves with the fix above or a reply that gives the reason. Not blocking: nothing in production produces embedded ownership until #3757, so only tests that start |
|
Round three. Split done, and findings 1–8 are in. New head The split. That lands the change the split ask describes: 19 production files at 1,176 net / 1,670 gross lines, plus 8 lines of docs and CHANGELOG. The remaining 2,909 gross lines are tests for that behavior. Gross total is 4,587, still over the 2,500 line cap, and the only cuts left would separate the ownership read from the stop route that consumes it — which your review asked to keep together. Say the word if you want a third layer anyway; the seam would be ownership + admission in one PR and the completion record plus In the CLI, identity, ownership and the (1) (2) Covered by the split paragraph above. (3) (4) One JSDoc block per function, both at the two places you named and checked across the branch. (5) One (6) Renamed to kebab-case: (7) Adopted, with the consequence you did not name taken as well. The hint for a detached answer against an unreadable owner names the record repair and never (8) The embedded-owner test now stubs One gate fix worth reporting: making the router the sole owner of stop routing left The stop-wait thread stays open, with the receipts and the case that still bothers me in its reply. Not merged. Watching for the next pass. |
|
Fourth round: The retained-stop gap from your 15:33 comment is fixed, both halves. Rule enforced as stated: every close that leaves its registration in place publishes an instance-fenced record, and that record answers every later stop of that instance until the next acquisition clears it.
Receipts, each red at the previous shape (
|
00b82dc to
6fce5ec
Compare
|
Rebased onto What upstream moved, and where this branch followed it
History: all four commits, same order, same messages. Validation at this head: |
|
The earlier retained-close finding is fixed in 6fce5ec (daemon-client-stop.ts:176-182), and CI is green with 20 checks and none failing, including Coverage. One defect remains, so this is not ready to merge yet. A host that closes its own embedded runtime with nothing in hand still hangs a Would it be simpler to make the record a fact about the state dir, as the commit message says, and not an answer to a request? Every host-owned close would write one record from On the open threads, the cubic-dev-ai thread on the released-close wait still applies, even though it is marked resolved. The retained part is fixed, but a refused connection during a released host close still waits 60 s, as described above. Not blocking: I reviewed 6fce5ec by reading the code and did not run the race, so the mechanism comes from the close ordering, the 'gone' mapping and |
6fce5ec to
bc45f60
Compare
|
Fixed in bc45f60. I took the second framing: the record is a fact about the state dir, not an answer to a request. What changed
Regression test
The test you predicted
I did not touch Non-blocking item Collapsed: Gate: |
bc45f60 to
4999683
Compare
|
Published the approved split: #3806 owns signal and cleanup safety. #3797 now builds on it with authenticated close and completion. Each actual PR diff fits the cap: 2,036 and 2,480 gross lines. The combined stack is 4,186 lines. The registration owner now finalizes every host-owned close. One shutdown file holds the report and completion. The request ledger, separate completion file, release facade, duplicate release flags, and second address read are removed. Stops keep the original token, PID and process birth. The cleanup script also preserves recorded ownership; an omitted caller field cannot grant signal authority. Local validation passed at The released-close regression fails on |
4999683 to
2d5eef0
Compare
|
Coordination update: the maintainer approved the two-layer stack, with #3806 below this PR. The later push to |
2d5eef0 to
4999683
Compare
Summary
Hosted runtimes now close through an authenticated, instance-fenced stop. The registration owner writes every hosted close to one
daemon-shutdown.json, beside the legacy report. No request ledger, separate completion file, release facade, or expiry policy remains.Stops keep the original token, PID and process start time. They read the matching completion and report together. A direct close answers stops arriving after listener shutdown. Retained completion answers later stops while its host lives.
stopped: truewith warnings and unknown cleanup confidence means serving stopped; cleanup remains unconfirmed.This 27-file, 2,480-gross-line layer depends on the ownership-safety prerequisite. The combined stack is 4,186 gross lines. Part of #3747 and #3757; public host entry and binding stay in #3757. Shipped quiesce, report readers and startup budgets remain intact.
Validation
Tested
4999683a84a20ed2946a7a6663c1ad77b4fd3bddagainst parentb7df117c00df0e2ff4d828d3c4089998113018f4. The identical real-runtime released-close regression times out on6fce5ec6e2and passes here in 1.87 s, including two concurrent stops and zero host signals. This preserves the laterbc45f60fix.Foreground affected gate: 10 checks and 4,029 related tests passed. Receipt
run-w9iUs6:exactCommit=true,checkoutChanged=false. Independent code and sentence reviews passed. CI-owned checks remain pending.