You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Maintainer questions filed inside a dev report's open_questions array are invisible to every sweep — one sat 17 days, and it is not the only one #16662
The os-dev report contract has an open_questions array. A dev that hits a
question only the maintainer can answer writes it there — with options and a
recommendation, exactly as intended.
Nothing sweeps that array. The decision inbox is label:needs-user-decision,
and a question inside a report comment's JSON body carries no label. So the
question is filed, well-formed, and unreachable: it is not in the inbox, not in
any candidate query, and not in any staleness alert. The card meanwhile keeps pm:dispatched and an assignee, which reads as in flight on every board.
The failure mode is the one this org keeps paying for: three success signals
and a wrong answer. The dev did its job, the report validated, the PM accepted
it — and a decision the maintainer was owed simply never arrived.
Two instances, both found on 2026-09-07, neither by design
cloud#1555 — 17 days. A P0 card split from cloud#1535. Its delivering
PR #1557 was closed unmerged on 2026-08-22, so the instrument that produced
its measurements (scripts/dev-local/bootstrap-curve.mjs) is not in the tree —
anyone re-running the analysis starts from zero. The card kept pm:dispatched
and an assignee from 2026-08-21 until the repo:cloud R37 board sweep healed it
at 2026-09-07T16:36Z. The two questions that sat unreachable:
whether to serve the previous complete kernel while a rebuild runs (a
staleness policy the card itself says is the maintainer's call), and
a one-SELECT prod reading only a maintainer can take, which separates "the
database is slow" from "the path to it is slow".
⚠️ The urgency was real and is not spent: jack.objectos.ai served 503 for a
day (134 s bootstrap against a 20 s waiter). It serves today only because its
kernel is cached — the next eviction repeats the outage, and the card's own
standing constraint is ⛔ do not delete or re-provision it, because it is the
reproduction.
objectstack#13973 — same shape, caught early. Its original question was
ruled B1 (narrow) on 2026-09-02 and executed (PR #16619). The execution then
raised three new residual questions, which the dev again wrote into open_questions (comment 5573240453, 2026-09-07T16:10Z). The engine seat routed
them by re-applying needs-user-decision to the already-ruled card — which
works, but produces a second problem: the box now holds a card whose ruled
question and whose open questions are different questions, and nothing in the
label says which is which. A reader who trusts the label re-presents a ruling
that has already been executed.
Why this is worth fixing rather than remembering
Both instances were found by humans-in-the-loop noticing something, not by any
mechanism. The repo:cloud seat found #1555 during a board sweep it runs for
other reasons; I found #13973 because the inbox count changed between two
check-ins. Neither route is reliable, and the inventory this hides in is large: label:pm:dispatched is:open is the lane's in-flight reading, and a card stuck
there for 17 days looks exactly like a card being worked on.
Shape of a fix (not a decision — a maintainer's call is not needed to start)
Three parts, roughly independent:
Sweep the array. A check:*-style script (or a PM-loop step) that scans os-dev-report comments on open cards for a non-empty open_questions and
reports any whose card does not carry needs-user-decision. This is the load-
bearing half — it converts an invisible state into a listable one.
Residual questions get their own card. When executing a ruling raises new
questions, they belong on a new card that links the ruled one — not on the
ruled card re-flagged. This keeps "what is open" answerable from the label
alone. ⭐ It also protects the standing rule that a card with a ruling comment
is executed or contradicted with a reason, never re-presented.
⛔ Nothing here proposes changing the os-dev report contract itself. The array
is the right place for a dev to put the question; what is missing is the reader.
Filed by the director seat while auditing the decision inbox, 2026-09-07T17:01Z.
Related: cloud#1555 (the 17-day instance) · objectstack#13973 (the re-flag
instance) · cloud#1535 (the parent of #1555).
The defect
The
os-devreport contract has anopen_questionsarray. A dev that hits aquestion only the maintainer can answer writes it there — with options and a
recommendation, exactly as intended.
Nothing sweeps that array. The decision inbox is
label:needs-user-decision,and a question inside a report comment's JSON body carries no label. So the
question is filed, well-formed, and unreachable: it is not in the inbox, not in
any candidate query, and not in any staleness alert. The card meanwhile keeps
pm:dispatchedand an assignee, which reads as in flight on every board.The failure mode is the one this org keeps paying for: three success signals
and a wrong answer. The dev did its job, the report validated, the PM accepted
it — and a decision the maintainer was owed simply never arrived.
Two instances, both found on 2026-09-07, neither by design
cloud#1555 — 17 days. A P0 card split from cloud#1535. Its delivering
PR #1557 was closed unmerged on 2026-08-22, so the instrument that produced
its measurements (
scripts/dev-local/bootstrap-curve.mjs) is not in the tree —anyone re-running the analysis starts from zero. The card kept
pm:dispatchedand an assignee from 2026-08-21 until the
repo:cloudR37 board sweep healed itat 2026-09-07T16:36Z. The two questions that sat unreachable:
staleness policy the card itself says is the maintainer's call), and
SELECTprod reading only a maintainer can take, which separates "thedatabase is slow" from "the path to it is slow".
jack.objectos.aiserved 503 for aday (134 s bootstrap against a 20 s waiter). It serves today only because its
kernel is cached — the next eviction repeats the outage, and the card's own
standing constraint is ⛔ do not delete or re-provision it, because it is the
reproduction.
objectstack#13973 — same shape, caught early. Its original question was
ruled B1 (narrow) on 2026-09-02 and executed (PR #16619). The execution then
raised three new residual questions, which the dev again wrote into
open_questions(comment 5573240453, 2026-09-07T16:10Z). The engine seat routedthem by re-applying
needs-user-decisionto the already-ruled card — whichworks, but produces a second problem: the box now holds a card whose ruled
question and whose open questions are different questions, and nothing in the
label says which is which. A reader who trusts the label re-presents a ruling
that has already been executed.
Why this is worth fixing rather than remembering
Both instances were found by humans-in-the-loop noticing something, not by any
mechanism. The
repo:cloudseat found #1555 during a board sweep it runs forother reasons; I found #13973 because the inbox count changed between two
check-ins. Neither route is reliable, and the inventory this hides in is large:
label:pm:dispatched is:openis the lane's in-flight reading, and a card stuckthere for 17 days looks exactly like a card being worked on.
Shape of a fix (not a decision — a maintainer's call is not needed to start)
Three parts, roughly independent:
check:*-style script (or a PM-loop step) that scansos-dev-reportcomments on open cards for a non-emptyopen_questionsandreports any whose card does not carry
needs-user-decision. This is the load-bearing half — it converts an invisible state into a listable one.
pm:dispatched. A card carryingpm:dispatchedwith nobranch activity and no live agent for N days is a half-state, not work in
flight. docs(agents): codify merge/worktree discipline + shared read-only permission allowlist #1555 sat 17 days; the threshold that would have caught it is
generous.
questions, they belong on a new card that links the ruled one — not on the
ruled card re-flagged. This keeps "what is open" answerable from the label
alone. ⭐ It also protects the standing rule that a card with a ruling comment
is executed or contradicted with a reason, never re-presented.
⛔ Nothing here proposes changing the
os-devreport contract itself. The arrayis the right place for a dev to put the question; what is missing is the reader.
Filed by the director seat while auditing the decision inbox, 2026-09-07T17:01Z.
Related: cloud#1555 (the 17-day instance) · objectstack#13973 (the re-flag
instance) · cloud#1535 (the parent of #1555).