SYSTEM_PROMPT, CIRCUIT_TOOLS and validateActions exist in two hand-maintained copies:
backend/server.js:126 onward (dead code, never called by the shipped app)
circuit3d/index.html:314 onward (about 130 lines of copy-paste, this is the one that runs)
They have already drifted. The clearest example: the server copy and the browser copy disagree with breadboard.js about how many columns the board has (see the board-geometry issue).
Should be
- One implementation, server-side, reached over
/api/ask.
- Delete the browser copy rather than trying to keep them in sync.
- This lands naturally as part of moving the Gemini key out of the client.
Found in the 2026-08-16 audit (30-agent sweep, 481 findings). Every line reference was verified against main at the time of filing.
SYSTEM_PROMPT,CIRCUIT_TOOLSandvalidateActionsexist in two hand-maintained copies:backend/server.js:126onward (dead code, never called by the shipped app)circuit3d/index.html:314onward (about 130 lines of copy-paste, this is the one that runs)They have already drifted. The clearest example: the server copy and the browser copy disagree with
breadboard.jsabout how many columns the board has (see the board-geometry issue).Should be
/api/ask.Found in the 2026-08-16 audit (30-agent sweep, 481 findings). Every line reference was verified against
mainat the time of filing.