Build1 distinct publisher3 min readPublished
One escalation loop got the wording right but sent it to the wrong person. No unit test could have caught that, because who gets paged and what stops the paging are both resolved outside the function under test.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
A unit test owns the process it runs in and mocks the world it talks to. That is what makes it fast, and it is also why an escalation loop is close to invisible to one. The ping is the only part that lives inside the function: it builds the string and returns it, and the test just asserts on the result. The two properties that decide whether the ping helps anyone are resolved elsewhere. The recipient comes from an identity lookup against a workspace the test does not have. The stop condition comes from state shared across ticks and, once you scale, across containers. So the defects that survived were joins rather than functions: a guard in the wrong function, a check-in written to one ledger and not the other, a critic that ran on one path and not another [12]. The terminal-state repair is the one worth reading twice. The author added the guard, the loop kept running, and the suite stayed green throughout [7]. The tested function checked membership in a terminal set; the loop called a second function whose guard fired only on ACCOUNTED [8]. An escalated person is not an accounted-for person, so the escalated person stayed actionable [6]. The comment sitting in the live path is the proof: `# ACCOUNTED only. not ESCALATED.` [8] The arithmetic is what makes it a paging problem rather than a logging problem. A 25 second interval is 3600 / 25 = 144 pages an hour about one missing teacher [1]. The tick guard was process-local, so at four instances every container ran its own tick N and one silent teacher was pinged four times [11]. With both defects live the warden's channel takes 576 pages an hour about a single person [2]. Ticks are now claimed with a create-if-absent lease in Firestore [11]. The reachability count is the line I would put in a review packet. A non-empty string only proves you have a string; it proves nothing about whether the person behind it can be reached. After ids are verified against the workspace, reachable falls to 4 of 34, which is 11.8 percent of the roster where the loop previously reported all of it [3]. The author's position is that the worse number is the true one, because unreachable is a fact a commander acts on rather than a gap to paper over [10]. The same shape appears outside the loop. A teacher asked for the fastest route out of the east wing during an active shooter and got corridor directions, because the movement policy that exists to prevent that ran inside the fan-out and a query answer never passed through it, with green tests on both the policy and the query desk [13]. Model Armor's pillar was marked managed while the deployed service ran the regex fallback, so the managed path had never executed in production [17]. The client was built against the global endpoint while templates are regional, every scan returned template not found, and both error paths returned `blocked: False` [18]. The config label was what got reviewed in that case, but a regex that failed open was what actually ran. Two caveats on transfer. This is one builder's field report on a hackathon entry, not a postmortem with incident data behind it [1]. And the failure mode needs two conditions to reach you: escalation targets resolved from a roster you do not own, and a loop that runs on more than one replica. Where both hold, the artefact to review is the test name that states who must not receive the page and what makes it stop [14].
Ranked by verification strength, evidence, and original report placement.
CrisisMesh was built for the All Things Agentic Hackathon, and the author wrote the post for the purpose of entering that hackathon.
CrisisMesh is a seven-agent fleet on Google ADK and Gemini 3.5 Flash that coordinates a school's response after a human reports an emergency; it detects nothing, and the trigger is a message someone would already have sent, such as a Slack command or a WhatsApp text.
A declared incident starts a scheduler; every tick it looks at whoever has not checked in, pings them, re-pings them, and at a configured cap stops pinging and hands that person to their floor warden by name, on the warden's own channel.
Four bugs lived in that one paragraph of behaviour, and every one of them passed its tests.
The system sent the escalation to the person it could not find: "Mrs. Rodriguez has not answered, please locate her" went to Mrs. Rodriguez. The message was correct and the recipient was the one person it could not help.
Once escalated, a person stayed actionable, so on a timer the same warden was paged about the same person every 25 seconds, forever.
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 30, 2026
Follow any of these and your For You feed starts watching them — no settings page required.
build
Splitting an ADK graph across A2A workers strands output_key in the worker's session1 distinct publisher
build
A prompt-injection filter at maximum sensitivity missed the real attack and caught the textbook one1 distinct publisher
build
OpenClaw makes the channel the architecture, and the reasoning loop a lodger1 distinct publisher
build
Your open rate counts mail scanners as readers, and the fix inverted on itself1 distinct publisher
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One engineer, his own code, quoted at length
The strongest thing here is textual: should_act and safe_should_act are printed side by side, the enum comment 'ACCOUNTED only. not ESCALATED.' is reproduced, and the four replacement tests are named in full — detail specific enough to be wrong in public. The weakest thing is everything around it. No repository, no deployment, no reviewer, no school; 4 of 34, the 25-second interval and 'Model Armor had never blocked anything' are all visible only from inside the author's console.
A hackathon entry with a production-shaped bug list
Usage begins and ends with the author. What lifts this off zero is that the thing was genuinely wired to live services — Firestore leases, Vertex Memory Bank, Model Armor templates — and the failures reported are deployment failures, not sketch failures. Nobody else is running it, no school is named, and the check-in path is still described as process-local and under-reporting.
Talks itself down more than it talks itself up
A post that replaces '34 of 34 reachable' with '4 of 34' and says of its safety layer 'the failure was mine' is not selling. It even insists the worse number is the useful one. The small overshoot is in the framing: something introduced as a seven-agent fleet coordinating a school's emergency response was, on the same page, paging a warden every 25 seconds forever, handing out corridor routes during an active shooter, and running a guardrail that had never blocked anything. The engineering is described honestly; the scope of the thing described flatters it.
Contest entry, declared in the first sentence
The post exists to be judged: it says so up front, hashtag included, which is the cleanest form of disclosure available and also a reason the failure-narrative shape is doing work — candour is the pitch here. dev.to's audience rewards exactly this genre. No vendor money is visible, but note whose stack is on display: every named dependency is Google's, and the two findings that travel furthest are criticisms of Google services rather than endorsements.
Believable mechanism, unverifiable specifics
We are confident about the shape of the lesson — connection defects between components that each pass in isolation is a failure mode with quoted code behind it — and much less confident about any individual figure. Nothing has been corroborated, the post stops mid-sentence on the audit bundle, and the same person is author, engineer, and only witness.