Campfire conformance — compiled

ONCE Campfire's own Minitest suite, run against a Roundhouse emit of the same commit. A failure here mostly names a Rails construct not yet modeled; some are answers that came out wrong with nothing raised, and some have not been triaged at all. That makes their tests the worklist generator — so the ranked causes below, not the pass count, are what this page is for.

This is the compiled lane: each test file compiled to its own native binary by spinel, then run. The same emitted source runs on the interpreted lane, so a difference between the two is the compiler's, not the app's — and this lane can report a status its sibling cannot. 69 of 69 files never linked, and their tests are counted against their first compile error rather than against anything the emit got wrong.

Unpassed tests by who can act: 407 untriaged.

campfire 90b330024dec · roundhouse f3d192810b53 · spinel 01a5aa147 · 2026-10-01T02:23:40Z
0/407 tests pass0 of 69 files green69 never linkedemit 1,264 files, 0 errors
0 passing · 407 not passing · 69 file(s) never linked
What this measures. Two questions, kept apart. Whether the emit compiles is the never-linked column — spinel is a strict target, so an unmodeled construct is a compile error rather than a gap emitted through. Whether it behaves is everything else: their suite asserts test by test, so a failure below names a construct that compiled and then answered wrongly. A file in the first column has not yet been asked the second question. The emit is produced fresh by scripts/campfire-suite and is compiled by spinel 01a5aa147.

The app is pinned at 90b330024dec; the compiler is not. This lane compiles 54 whole programs, which is too much to run per commit, so it runs on a schedule and its spinel is whatever the publisher pulled and built that morning. That makes a movement here two-sided: it belongs to a Roundhouse change or to a compiler change, and the two are told apart by the spinel version recorded above — not by this page. Read a regression by checking that version first.

The file list is theirs. Every test file campfire's own suite declares, read from the emitted Makefile's SPINEL_TESTS rather than restated here — a `find test -name '*_test.rb'` would also sweep in the scaffold's own tests, which are not campfire's.

Each run stands alone. There is no history here and no comparison to previous runs: a chart of a number that moves for a dozen reasons is not the point of a worklist.

Todos, by tests blocked

Occurrences churn; causes are the unit of work, so each carries a stable slug you can still refer to forty commits later. Owner says who can act: most of this is Roundhouse's own modeling debt.

Counts are how many tests are currently stopped by each cause, not how many will pass when it lands: a test is attributed to the first thing that stopped it, so clearing one cause routinely reveals another behind it. Each unpassed test carries its own message; a file that never ran contributes its whole count against its load error.

BlockedCauseOwner
407
Not yet triaged
unclassified
untriaged
No rule in bench/campfire/suite-causes.json matches these. Triage, then add a rule.
12 of 407 tests
  • test/account_joinable_test · (file did not run)
    /tmp/spinel_split_Vcf9Kr/sp_part7.c:3852: error: ‘_t25613’ undeclared (first use in this function); did you mean ‘_t25614’?
  • test/account_test · (file did not run)
    /tmp/spinel_split_mjfWCG/sp_part7.c:3612: error: ‘_t25577’ undeclared (first use in this function); did you mean ‘_t25578’?
  • test/accounts_bots_controller_test · (file did not run)
    /tmp/spinel_split_Edcuo3/sp_part7.c:3440: error: ‘_t25568’ undeclared (first use in this function); did you mean ‘_t25569’?
  • test/accounts_bots_keys_controller_test · (file did not run)
    /tmp/spinel_split_z4Tozm/sp_part7.c:3805: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
  • test/accounts_controller_test · (file did not run)
    /tmp/spinel_split_7gVLlm/sp_part7.c:3348: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
  • test/accounts_custom_styles_controller_test · (file did not run)
    /tmp/spinel_split_VyqPpy/sp_part7.c:3545: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
  • test/accounts_join_codes_controller_test · (file did not run)
    /tmp/spinel_split_2uGWLz/sp_part7.c:3744: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
  • test/accounts_logos_controller_test · (file did not run)
    /tmp/spinel_split_eQM42n/sp_part7.c:3373: error: ‘_t25568’ undeclared (first use in this function); did you mean ‘_t25569’?
  • test/accounts_users_controller_test · (file did not run)
    /tmp/spinel_split_jaIXz3/sp_part7.c:3570: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
  • test/action_text__attachment_test · (file did not run)
    /tmp/spinel_split_qjulNj/sp_part7.c:6633: error: ‘_t25930’ undeclared (first use in this function); did you mean ‘_t25931’?
  • test/action_text_attachment_opengraph_embed_test · (file did not run)
    /tmp/spinel_split_vEyN02/sp_part7.c:3169: error: ‘_t25477’ undeclared (first use in this function); did you mean ‘_t25478’?
  • test/action_text_attachment_test · (file did not run)
    /tmp/spinel_split_JhT8e9/sp_part7.c:3816: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?

Rules that matched nothing

A rule at zero is kept, not deleted: it is the tripwire that catches the fix coming undone. What it means depends on why it is at zero.

RuleWhy it reads zero
turbo-signed-stream-nameserved 2026-09-22 (room_messages_channel_test 6/6 + the stock-channel pair 2/2); the rule stays as a regression tripwire.
web-push-pinned-deliveryserved 2026-09-22 on both lanes (web_push_persistent_request_test 2/2 ruby and spinel, through campfire's own PersistentRequest over the real gem / the port); the rule stays as a regression tripwire.
cable-test-caseserved 2026-09-22 (test/channels 20/20 on the ruby lane); the rule stays as a regression tripwire for a harness method going missing.
view-test-caseserved 2026-09-22 (messages_helper_test 3/3); the rule stays as the tripwire for a `view` call no helper defines, which is ActionView::Base's own surface and still unmodeled.
uri-parse-conformancethe space case served upstream 2026-09-22 (matz/spinel#4806 + fd49be64); the rule stays as the tripwire for the colon-form divergences still open in the same parser, and for the guard itself being loosened again.
rails-test-support-classesserved 2026-09-22 (opengraph-embed 8/8, log_scrubbing 6/6); the rule stays as the tripwire for the next Rails test stand-in the corpus reaches for, and names the three it has needed so far.
kwargs-splat-forwardingserved 2026-09-21 (opengraph-embed 7/8, the eighth is `ActionDispatch::TestRequest`); the rule stays as a regression tripwire.
actiontext-fragment-mutationserved 2026-09-21 (Node writes, `Fragment#update`/`at_css`/`css`, and Rails' attachable-driven plain text; content_filters 12/14); the rule stays as a regression tripwire.
activesupport-string-core-ext`squish` served 2026-09-22; the rule stays as the tripwire, and names the three String core exts (`squish!`, `truncate_words`, `remove`) the corpus has not asked for yet.
ipaddr-octets-on-stdlibserved 2026-09-21 (guard 24/24 on the ruby lane); the rule stays as the tripwire for a runtime IPAddr method the stdlib facade does not mirror.
tempfile-stdlibserved 2026-09-22; the rule stays as the tripwire for the next caller that reaches for a temp file, and for the port's one real difference from Ruby's — it opens by name where Ruby opens O_EXCL and retries.
vips-policy-not-applied-in-testsserved 2026-09-22 (16/17, the last one is `skip`); the rule stays as the tripwire for the policy going unapplied again — and it is worth keeping loud, because the failure it catches is a security control that is configured, reported as on, and off.
test-harness-surfaceserved 2026-09-22; the rule stays as the tripwire for the next harness method the corpus reaches for — `file_fixture`, `fixture_file_upload`, `response`, `parsed_body` and the bare `assert` family are all named in the match because each hides an unknown number of assertions behind it.
attachable-partials-not-renderedboth halves landed: sgid attachables through the generated `Content.render_attachment` (fe2ce576), content-type attachables through their own `from_node` with the partial's local named `model_name.element` and `caption` delegated back through the node, plus the shared `auto_link` running Rails' body pass so the outer node is stripped around the partial on every lane; ruby 294/300, spinel 292/300. The rule stays as the tripwire for an attachment node reaching the page bare again.
test-helper-kwarg-defaultsthe skipped-slot fill landed 2026-09-19 (unfurl 7/7 both lanes); the rule stays as a regression tripwire.
direct-uploads-not-servedserved 2026-09-20 (4/4 both lanes; with the generated filter reopens deleted the anonymous POST creates a blob and the anonymous PUT is not a 401, so the guard is what the tests see); the rule stays as a regression tripwire.
mocha-stub-raisesserved 2026-09-19 (sessions 9/10 spinel, 10/10 ruby); the rule stays as a regression tripwire.
mocha-bare-mockserved 2026-09-20 (sessions 10/10 both lanes; a no-op `disconnect` fails the test with `expected 1 time(s), got 0`); the rule stays as a regression tripwire.
proc-call-lostspinel#4529 closed by PR #4530 (b93306b6, same day): the fast path's guard is arity-aware; spinel lane 286 -> 290/300 on the merge. The rule stays as the tripwire for the two guards disagreeing again.
sti-becomes`becomes!` landed in f2d42854; the rule stays as a regression tripwire.
actiontext-attachment-from-node`from_node`, `#attachable` and `MissingAttachable` landed with the generated `ActionText::Attachable.locate` (the includer set is the registry); the rule stays as a regression tripwire.
sgid-wire-formatthe wire format is Rails' and the tolerant list is read off the reopen; the rule stays as a regression tripwire for either end drifting (a salt, digest, padding or `?expires_in` change fails the pinned literal first).
socket-interceptionserved 2026-09-17 (sequential Resolv answers + the TcpSocketStub seam); the rule stays as a regression tripwire.
object-extendcampfire ed0f9a5d (2026-09-20) mints the sgid with `to_sgid(for:)` in action_text_attachment_test, and 91d294f4 (#280, 2026-09-24) does the same for action_text_attachables_test, both of which `lower::to_sgid` grounds; the construct itself is still outside the subset, so the rule stays as the tripwire for the next test that reaches for a per-object `extend` — owner `subset`, not a todo.
globalid-sgidminting served 2026-09-22; the rule stays as the tripwire for a mint whose model the pass cannot name, which is reported rather than guessed.
turbo-streams-channelthe constant landed in fd1a3259; the rule stays as a regression tripwire.
conditional-get`fresh_when` / `stale?` landed in 7ea262e2; the rule stays as a regression tripwire.
paginationlanded in 0ef8fb79; the rule stays as a regression tripwire.
id-zero-sentinelzero is the intended reading. This is a deliberate divergence rather than a gap, and the rule exists to catch the day it becomes visible again.
shared-cache-table-lockthe harness opens a per-test file database since 2026-09-17; the rule stays as the tripwire — a reappearance means a shim opened a shared-cache database again.
render-json-encoderthe monomorphized writer landed for the declared-readers case (campfire's only site); the rule stays as a regression tripwire, and names the shapes that would still reach the encoder.

Held at zero by the harness, not by the compiler — the stub ledger below covers what would otherwise fail here: belongs-to-autosave. Deleting the stub is what makes these counts real.

No explanation recorded, so these are the open question: either the cause is cleared and nobody wrote that down, or the failure's message changed and it is now being counted as untriaged above. vips-image-construction, fixture-accessors, params-object-representation, relation-vs-array, rails-module-facade, broadcast-assertions, view-helper-in-helper-module, active-storage-attachments, route-helper-takes-a-record, out-of-scope-gems, arity-divergence, allow-browser, params-hash-in-path, silent-divergence.

What the harness compensates for

Nothing: this run spliced no stubs (--no-stubs), so the numbers above are the emit's own.

By test file

A file that never ran is not the same as a file whose tests failed: it died at load, so its whole count is charged to one error and nothing behind that error has been seen yet.

And on this lane there is a third row: a file that never linked. Its tests are charged to its first compile error, and unlike a load failure it has not been observed to do anything at all — the emit may be perfectly correct behind it. Sort the work by asking which of the three a row is: didn't link, linked and diverged, linked and agreed.

FileTestsPassFailFirst error
test/restricted_http_private_network_guard_test24024never linked — /tmp/spinel_split_jzacRa/sp_part7.c:2311: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/messages_by_bots_controller_test23023never linked — /tmp/spinel_split_V3meoA/sp_part7.c:1548: error: ‘_t25618’ undeclared (first use in this function); did you mean ‘_t25619’?
test/content_filters_test19019never linked — /tmp/spinel_split_pwHLOP/sp_part7.c:2382: error: ‘_t25477’ undeclared (first use in this function); did you mean ‘_t25478’?
test/push_subscription_test17017never linked — /tmp/spinel_split_OgcTSL/sp_part7.c:2585: error: ‘_t25487’ undeclared (first use in this function); did you mean ‘_t25488’?
test/vips_loader_policy_test17017never linked — /tmp/spinel_split_G5SvtW/sp_part7.c:3199: error: ‘_t26776’ undeclared (first use in this function); did you mean ‘_t26777’?
test/messages_controller_test15015never linked — /tmp/spinel_split_k04eQg/sp_part7.c:1816: error: ‘_t25635’ undeclared (first use in this function); did you mean ‘_t25636’?
test/messages_boosts_by_bots_controller_test12012never linked — /tmp/spinel_split_3fSDHN/sp_part7.c:3391: error: ‘_t25491’ undeclared (first use in this function); did you mean ‘_t25492’?
test/opengraph_fetch_test11011never linked — /tmp/spinel_split_OVJmuD/sp_part7.c:2939: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/opengraph_metadata_test11011never linked — /tmp/spinel_split_gUhoyr/sp_part7.c:2877: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/sessions_controller_test10010never linked — /tmp/spinel_split_FwNsMj/sp_part7.c:2908: error: ‘_t25525’ undeclared (first use in this function); did you mean ‘_t25526’?
test/action_text_attachment_opengraph_embed_test909never linked — /tmp/spinel_split_vEyN02/sp_part7.c:3169: error: ‘_t25477’ undeclared (first use in this function); did you mean ‘_t25478’?
test/membership_test909never linked — /tmp/spinel_split_TpyxVX/sp_part7.c:3369: error: ‘_t25485’ undeclared (first use in this function); did you mean ‘_t25486’?
test/rooms_closeds_controller_test909never linked — /tmp/spinel_split_Rg7WoU/sp_part7.c:3124: error: ‘_t25587’ undeclared (first use in this function); did you mean ‘_t25588’?
test/rooms_opens_controller_test909never linked — /tmp/spinel_split_LnMgHa/sp_part7.c:3061: error: ‘_t25584’ undeclared (first use in this function); did you mean ‘_t25585’?
test/rooms_controller_test808never linked — /tmp/spinel_split_OAIIS9/sp_part7.c:3189: error: ‘_t25495’ undeclared (first use in this function); did you mean ‘_t25496’?
test/opengraph_location_test707never linked — /tmp/spinel_split_N7rkat/sp_part7.c:3348: error: ‘_t25483’ undeclared (first use in this function); did you mean ‘_t25484’?
test/unfurl_links_controller_test707never linked — /tmp/spinel_split_uvoTSp/sp_part7.c:3189: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/users_bans_controller_test707never linked — /tmp/spinel_split_4XH8U0/sp_part7.c:3432: error: ‘_t25568’ undeclared (first use in this function); did you mean ‘_t25569’?
test/accounts_logos_controller_test606never linked — /tmp/spinel_split_eQM42n/sp_part7.c:3373: error: ‘_t25568’ undeclared (first use in this function); did you mean ‘_t25569’?
test/log_scrubbing_formatter_test606never linked — /tmp/spinel_split_XQDtqX/sp_part7.c:3470: error: ‘_t25477’ undeclared (first use in this function); did you mean ‘_t25478’?
test/presence_channel_test606never linked — /tmp/spinel_split_ODHuDv/sp_part7.c:3448: error: ‘_t25788’ undeclared (first use in this function); did you mean ‘_t25789’?
test/room_messages_channel_test606never linked — /tmp/spinel_split_ABy4nI/sp_part7.c:3470: error: ‘_t25700’ undeclared (first use in this function); did you mean ‘_t25701’?
test/room_test606never linked — /tmp/spinel_split_rtDnQa/sp_part7.c:3549: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/rooms_directs_controller_test606never linked — /tmp/spinel_split_iv84Yo/sp_part7.c:3491: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/users_controller_test606never linked — /tmp/spinel_split_T7Y2t4/sp_part7.c:3427: error: ‘_t25479’ undeclared (first use in this function); did you mean ‘_t25480’?
test/users_push_subscriptions_controller_test606never linked — /tmp/spinel_split_bFTGhc/sp_part7.c:3440: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/webhook_test606never linked — /tmp/spinel_split_Hf1xsg/sp_part7.c:4429: error: ‘_t25835’ undeclared (first use in this function); did you mean ‘_t25836’?
test/accounts_bots_controller_test505never linked — /tmp/spinel_split_Edcuo3/sp_part7.c:3440: error: ‘_t25568’ undeclared (first use in this function); did you mean ‘_t25569’?
test/room_push_test505never linked — /tmp/spinel_split_CP4aAl/sp_part7.c:3404: error: ‘_t25482’ undeclared (first use in this function); did you mean ‘_t25483’?
test/rooms_involvements_controller_test505never linked — /tmp/spinel_split_m7QXpH/sp_part7.c:3474: error: ‘_t25572’ undeclared (first use in this function); did you mean ‘_t25573’?
test/searches_controller_test505never linked — /tmp/spinel_split_oXVB5K/sp_part7.c:3059: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/account_test404never linked — /tmp/spinel_split_mjfWCG/sp_part7.c:3612: error: ‘_t25577’ undeclared (first use in this function); did you mean ‘_t25578’?
test/accounts_controller_test404never linked — /tmp/spinel_split_7gVLlm/sp_part7.c:3348: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/active_storage_authentication_test404never linked — /tmp/spinel_split_xrR2NQ/sp_part7.c:3391: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/autocompletable_users_controller_test404never linked — /tmp/spinel_split_zKXLUu/sp_part7.c:3470: error: ‘_t25488’ undeclared (first use in this function); did you mean ‘_t25489’?
test/first_runs_controller_test404never linked — /tmp/spinel_split_NTW36J/sp_part7.c:3545: error: ‘_t25526’ undeclared (first use in this function); did you mean ‘_t25527’?
test/rich_text_helper_test404never linked — /tmp/spinel_split_PCU8PD/sp_part7.c:3688: error: ‘_t25477’ undeclared (first use in this function); did you mean ‘_t25478’?
test/user_bot_test404never linked — /tmp/spinel_split_VB9LXs/sp_part7.c:3587: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/user_test404never linked — app/models/message.rb:505: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/users_avatars_controller_test404never linked — /tmp/spinel_split_YVmcsN/sp_part7.c:3340: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/accounts_custom_styles_controller_test303never linked — /tmp/spinel_split_VyqPpy/sp_part7.c:3545: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/accounts_users_controller_test303never linked — /tmp/spinel_split_jaIXz3/sp_part7.c:3570: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/action_text__attachment_test303never linked — /tmp/spinel_split_qjulNj/sp_part7.c:6633: error: ‘_t25930’ undeclared (first use in this function); did you mean ‘_t25931’?
test/action_text_attachment_test303never linked — /tmp/spinel_split_JhT8e9/sp_part7.c:3816: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/application_cable_connection_test303never linked — /tmp/spinel_split_Oqc1KT/sp_part7.c:3816: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/block_banned_requests_test303never linked — /tmp/spinel_split_SvYIxr/sp_part7.c:3545: error: ‘_t25481’ undeclared (first use in this function); did you mean ‘_t25482’?
test/first_run_test303never linked — /tmp/spinel_split_0kCh5h/sp_part7.c:3752: error: ‘_t25523’ undeclared (first use in this function); did you mean ‘_t25524’?
test/message_attachment_test303never linked — /tmp/spinel_split_GwfQsZ/sp_part7.c:3716: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/message_searchable_test303never linked — /tmp/spinel_split_DcDYv0/sp_part7.c:3733: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/message_test303never linked — /tmp/spinel_split_LKt9Ua/sp_part7.c:3658: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/messages_helper_test303never linked — /tmp/spinel_split_C5QmLE/sp_part7.c:3775: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/opengraph_document_test303never linked — /tmp/spinel_split_mB5I9m/sp_part7.c:3816: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/rooms_direct_test303never linked — /tmp/spinel_split_zU1wQZ/sp_part7.c:3820: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/unread_rooms_channel_test303never linked — /tmp/spinel_split_ls9GfE/sp_part7.c:3616: error: ‘_t25794’ undeclared (first use in this function); did you mean ‘_t25795’?
test/user_avatar_test303never linked — /tmp/spinel_split_QvtsaU/sp_part7.c:3816: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/user_role_test303never linked — /tmp/spinel_split_nTChE2/sp_part7.c:3816: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/users_profiles_controller_test303never linked — /tmp/spinel_split_JCBAVh/sp_part7.c:3510: error: ‘_t25568’ undeclared (first use in this function); did you mean ‘_t25569’?
test/users_sidebars_controller_test303never linked — /tmp/spinel_split_rCUurb/sp_part7.c:3348: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/account_joinable_test202never linked — /tmp/spinel_split_Vcf9Kr/sp_part7.c:3852: error: ‘_t25613’ undeclared (first use in this function); did you mean ‘_t25614’?
test/accounts_join_codes_controller_test202never linked — /tmp/spinel_split_2uGWLz/sp_part7.c:3744: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/messages_boosts_controller_test202never linked — /tmp/spinel_split_TQ42MO/sp_part7.c:3816: error: ‘_t25487’ undeclared (first use in this function); did you mean ‘_t25488’?
test/room_messages_via_stock_turbo_channel_test202never linked — /tmp/spinel_split_K7qiQZ/sp_part7.c:3816: error: ‘_t25691’ undeclared (first use in this function); did you mean ‘_t25692’?
test/rooms_open_test202never linked — /tmp/spinel_split_BMUkVF/sp_part7.c:3877: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/sessions_transfers_controller_test202never linked — /tmp/spinel_split_Jf3oY8/sp_part7.c:3775: error: ‘_t25479’ undeclared (first use in this function); did you mean ‘_t25480’?
test/web_push_persistent_request_test202never linked — /tmp/spinel_split_FHXQ9d/sp_part7.c:3816: error: ‘_t25476’ undeclared (first use in this function); did you mean ‘_t25477’?
test/welcome_controller_test202never linked — /tmp/spinel_split_QI8dKY/sp_part7.c:3752: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/accounts_bots_keys_controller_test101never linked — /tmp/spinel_split_z4Tozm/sp_part7.c:3805: error: ‘_t25566’ undeclared (first use in this function); did you mean ‘_t25567’?
test/qr_code_controller_test101never linked — /tmp/spinel_split_8mWcgU/sp_part7.c:3877: error: ‘_t25478’ undeclared (first use in this function); did you mean ‘_t25479’?
test/rooms_refreshes_controller_test101never linked — /tmp/spinel_split_AsirDS/sp_part7.c:3071: error: ‘_t25482’ undeclared (first use in this function); did you mean ‘_t25483’?

Emit diagnostics

From the transpile that produced the tree under test: 1,264 files, 0 errors, 590 warnings. Warnings are a modeling-debt ledger rather than a failure — the Ruby target emits through its gaps — so the COUNTS are not comparable to the test failures above.

They are not independent of them either. send_dispatch_failed in particular names a call the analyzer could not resolve, and three of the fixes on this lane came out of those lines before the suite reached them at all — the analyzer had already written the diagnosis. Read the emit log before the fail log.

DiagnosticCount
gradual_untyped261
unresolved_type193
lower_residue132
blank_unlowered2
unsupported1
missing_preload1
Artifact: summary.json — every number on this page comes from it. Source: basecamp/once-campfire at 90b330024dec.