A blank page and a green test: the bug an agent can't see A developer building the @relax.js/core template engine documented how silent rendering failures — such as a mistyped path like {{user.naem}} rendering an empty string — can pass an agent-written test green while hiding the real error. The library routes all detected failures through a single reportError() function that produces structured RelaxError objects with message and context, and version 1.8.0 adds a captureRelaxErrors() testing helper so tests can assert on captured error messages rather than console output. The design rule, per the agent-facing docs, is that diagnostics go in values, not log lines, so an agent can read what a function returned or what a test printed. Fourth in a series on using @relax.js/core https://www.npmjs.com/package/@relax.js/core with a coding agent. This is about the failures that make no noise. A template engine has to decide what to do with {{user.naem}} when user has no naem . Throwing means one typo blanks the whole page, so like most engines this one renders an empty string and moves on. That is the right call for a user in a browser. It is the wrong default for an agent. The agent's only view of the page is a test. It writes the component, writes the test, runs it, and sees: js it 'passes on a blank element because nobody read the errors', = { const { content, render } = compileTemplate '