# Agent Workbench changelog — Alegauss

What the Agent Workbench products shipped, read from their roadkeep ledgers, newest first.

- 2026-11-12 · winwright · WW623: The fixture died once with 0xC0000409 right after a file was chosen in the Open dialog, and nothing kept why
- 2026-11-12 · winwright · WW622: The README's -Carry example fence has prose after it on the same line, so GitHub renders what follows as code
- 2026-11-12 · roadkeep · RK1750: two branches that each added a block of their own are refused as prose both sides moved
- 2026-11-12 · roadkeep · RK1749: syncing main into a feature is refused when main shipped a line the feature waits on
- 2026-11-12 · roadkeep · RK1748: the renumber the merge driver names derives a destination the other branch already spent
- 2026-11-12 · roadkeep · RK1747: the prose merge refuses two branches that each shipped a decision
- 2026-11-12 · roadkeep · RK1746: declare leaves a new governed file out of a merge driver the project already wired
- 2026-11-12 · roadkeep · RK1745: the prose merge refuses or misplaces sections when one branch added a block
- 2026-11-12 · roadkeep · RK1744: no tested strategy keeps one backlog consistent across parallel long-lived branches
- 2026-11-12 · roadkeep · RK1743: merge refuses a branch that adds a block while the other only files lines under an existing one
- 2026-11-12 · roadkeep · RK1741: A vendored engine falls behind the checkout on the same machine, and nothing refreshes it until a session refuses a line
- 2026-11-12 · roadkeep · RK1740: install --vendor deletes the whole .roadkeep/ tree, so the capture reports kept under .roadkeep/reports are lost
- 2026-11-12 · roadkeep · RK1739: A file that fails the grammar wholesale is blamed on its author, even when the running engine predates the format
- 2026-11-12 · roadkeep · RK1736: The distributed plugin only declares a Claude installation
- 2026-11-12 · roadkeep · RK1735: Install, check and uninstall cannot manage Codex project wiring
- 2026-11-12 · roadkeep · RK1734: Bundled workflows assume Claude command syntax and tool names
- 2026-11-12 · roadkeep · RK1733: Engine discovery and installation diagnostics only recognize Claude wiring
- 2026-11-12 · roadkeep · RK1732: MCP startup does not establish the Codex workspace it governs
- 2026-11-12 · roadkeep · RK1731: Shell refusals return a decision that Codex does not support
- 2026-11-12 · roadkeep · RK1730: The guard ignores Codex apply_patch calls that edit governed files
- 2026-11-12 · roadkeep · RK1729: Both product sites run a prerender script of their own, and neither is registered with the design system
- 2026-11-12 · askround · AR43: The site is not built to be read by assistants, and askround never measures whether they name askround itself
- 2026-11-12 · askround · AR42: There are no docs pages: install, a first session in Claude Code, the MCP tools and the CLI reference live nowhere
- 2026-11-12 · askround · AR41: Nothing builds and deploys the site when it changes
- 2026-11-12 · askround · AR40: askround has no public site: nowhere to see what a round reports, install it or read the docs
- 2026-11-12 · askround · AR38: askround is not wired into a project the way roadkeep is: one install that every clone and every surface gets
- 2026-11-12 · askround · AR37: Nothing measures how many tokens each MCP response costs the agent, so outputs grow unnoticed
- 2026-11-12 · askround · AR36: An agent asking the same question again the same day pays for the same round twice
- 2026-11-12 · askround · AR35: A round takes minutes of searched calls, longer than an MCP call should block the agent
- 2026-11-12 · askround · AR34: An agent could spend the user's API money on rounds without the user ever agreeing to the amount
- 2026-11-12 · askround · AR33: A bad round is discovered after it is paid for: a leading question, personal data or a cost over budget
- 2026-11-12 · askround · AR32: Output is meant for a person to read, with no stable schema an agent or a script can rely on
- 2026-11-12 · askround · AR31: A round hands the agent every raw answer, so one check of a product spends tens of thousands of tokens of context
- 2026-11-12 · askround · AR30: No written laws bind askround's design, so the agent-first rules can erode one feature at a time
- 2026-11-12 · askround · AR29: Tests would call live APIs, costing money and breaking on every provider change
- 2026-11-12 · askround · AR27: No Claude Code skill tells an agent when to use askround instead of asking the user to test a prompt
- 2026-11-12 · askround · AR26: Disagreements between assistants on a fact, such as a model's licence, are not flagged for a check at the source
- 2026-11-12 · askround · AR25: Researching a question across assistants means reading each answer and merging the sources by hand
- 2026-11-12 · askround · AR24: An agent in Claude Code cannot ask other assistants mid-analysis; it has to stop and ask the user
- 2026-11-12 · askround · AR23: A round cannot be exported to a dashboard or another project's data
- 2026-11-12 · askround · AR22: The cost of a round is unknown before it runs, and web search is billed apart from tokens
- 2026-11-12 · askround · AR21: Nothing compares a round with the previous one: a new rival, a rank lost, a product dropped
- 2026-11-12 · askround · AR20: Rounds are not kept as a series, so a product entering or leaving the answers goes unnoticed
- 2026-11-12 · askround · AR19: A question could carry personal data, an email or a person's name, to every provider at once
- 2026-11-12 · askround · AR18: Nothing warns when a question names the product it tests, which makes its answer worthless
- 2026-11-12 · askround · AR17: Finding which question leads an assistant to a product took four manual tries
- 2026-11-12 · askround · AR16: Questions live in chat history; there is no prompt set per product to run again next week
- 2026-11-12 · askround · AR15: Claims about the product are not checked against what is true, so a wrong 'needs NVIDIA' goes unnoticed
- 2026-11-12 · askround · AR14: A cited link or picture may belong to another product, like a Store page of a different app shown for Modelado
- 2026-11-12 · askround · AR13: A product an answer names may not exist, like two Windows apps no search could find
- 2026-11-12 · askround · AR12: There is no short report of a round; reading it means opening every raw answer
- 2026-11-12 · askround · AR11: What an answer claims about the product is not captured, such as 'CPU only: Check build' in a table
- 2026-11-12 · askround · AR10: The links an answer cites are not collected, so which page brought the product (site, repo, store) is unknown
- 2026-11-12 · askround · AR9: The rivals an answer recommends are not listed, so a competitor like Modly is found only by reading
- 2026-11-12 · askround · AR8: Whether a product is named, and in which position, is read by eye in each answer
- 2026-11-12 · askround · AR7: A rate limit, timeout or provider error aborts the round instead of being retried and reported
- 2026-11-12 · askround · AR6: A question cannot be asked as someone in a given country and language would ask it
- 2026-11-12 · askround · AR5: The model, tools and settings behind an answer are not recorded, so a change cannot be told from drift
- 2026-11-12 · askround · AR4: One answer is taken as the answer, though the same question gives a different list on the next run
- 2026-11-12 · askround · AR3: Which providers can run depends on keys in the environment, and nothing says which ones are there
- 2026-11-12 · askround · AR2: Providers are called without web search, so an answer cannot name a product newer than the model's training
- 2026-11-12 · askround · AR1: No code exists to send one question to several assistants and keep their answers side by side
- 2026-11-09 · polyweave · PW691: voice.lines plans again takes sound.speak bought with the same words, voice and model, and cannot take them over
- 2026-11-09 · polyweave · PW690: No capture records a web page, so a product video films its browser scenes with a project script around Playwright
- 2026-11-08 · winwright · WW617: An invoke whose handler exits the application can throw, since the process dies while UI Automation is returning
- 2026-11-08 · winwright · WW616: An in-app render of a window is sized to its frame but drawn to its client area, so its right and bottom edges are blank
- 2026-11-08 · winwright · WW615: The file-arrives case writes its file from the pool 300 ms in and waits 3 s, so a loaded guest reds it
- 2026-11-08 · winwright · WW614: A locator's order written as a number parses, so [order=1] means left and [order=9] an order that does not exist
- 2026-11-08 · winwright · WW611: An in-app render of a window whose background is the system backdrop draws dark-theme text on white
- 2026-11-08 · winwright · WW610: A case cannot put focus on an element before a press, so Enter or Space on a row goes wherever focus already is
- 2026-11-08 · winwright · WW608: A read after an invoke can run before the handler, and no step waits for a reading to pass through a value
- 2026-11-08 · winwright · WW607: A hung guest run brings back only its largest dump, so the application's own dump stays in the guest
- 2026-11-08 · winwright · WW606: A case cannot start the application again after it exits, to read what a clean close left for the next run
- 2026-11-08 · winwright · WW605: A press of a bare digit loads and then breaks: Enum.TryParse reads it as a traversal key's number
- 2026-11-08 · winwright · WW604: A drag cannot hold Ctrl, Alt or Ctrl+Alt, so a drop whose edit depends on the key held has no case
- 2026-11-08 · winwright · WW603: A click lands only on an element's clickable point, so a spot on a canvas is reached by a drag
- 2026-11-08 · winwright · WW602: A case cannot double-click, though the engine's pointer can, so what opens on a double click has no case
- 2026-11-08 · winwright · WW601: A locator miss lists every shut menu and tab in the window with a bare state word that reads as their current state
- 2026-11-08 · winwright · WW600: The note after a red run on a 'shell' desk says the tree is not broken, whatever the run excused
- 2026-11-06 · roadkeep · RK1717: The README has never been held to the five-second first-screen test the visibility repository applies
- 2026-11-05 · winwright · WW613: The readings case needs seven polls inside a 200 ms budget, so a loaded host sees only two of its three readings
- 2026-11-05 · winwright · WW612: The settles-late case gives the act 400 ms before the box commits, so a slow guest reads the settled value
- 2026-11-05 · winwright · WW609: The code is named Paneproof while every published package, plugin, site page and adopter still says winwright
- 2026-11-05 · winwright · WW599: A red guest run prints the guest's log whole but never names the file it kept on the host
- 2026-11-05 · Claude Code Tray · T447: T447 made every counted string that can reach one a .one/.many pair, and the self-test now sweeps en.json for a count before a plural noun, each remaining match allowed with its reason.
- 2026-11-05 · Claude Code Tray · T446: A repository check that throws is reported as one failure naming the claim and the exception, and the rest of the suite runs on to its summary.
- 2026-11-05 · Claude Code Tray · T445: A status-line command that names a ClaudeTray no longer installed reads as stale: Settings says so and offers the entry to paste again, instead of calling it set up.
- 2026-11-05 · Claude Code Tray · T444: settings.json is saved through a temp file and a move, a file that does not parse is kept aside before defaults are used, and one that cannot be opened is never overwritten with them.
- 2026-11-05 · Claude Code Tray · T443: A .claude.json caught mid-rewrite is read again a moment later, and a read still torn keeps the identity last read for that dir, so the profile's store key and alarms stay put.
- 2026-11-05 · Claude Code Tray · T442: A project whose context has not changed in the drift window reads as unchanged against the value it has held since, and pruning keeps each project's newest history line however old.
- 2026-11-05 · Claude Code Tray · T441: The never-invoked advice counts a plugin:skill call for its skill, dates each call by its own line, and treats a transcript that could not be read as an incomplete pass rather than a zero.
- 2026-11-05 · Claude Code Tray · T440: Session dates follow the display language's field order through Dates.MonthDayTime, and every yyyy-MM-dd stamp is Gregorian on any system calendar through Dates.Iso, the fixtures included.
- 2026-11-05 · Claude Code Tray · T439: The Statistics outage banner paints its wash, border and glyph with the theme's critical-severity brushes, so it reads in a light theme as in a dark one.
- 2026-11-05 · Claude Code Tray · T438: The Sessions rows, the live chart's project strip and the Context overview's rows open from the keyboard: the rows take focus and answer Enter or Space, and the overview rows are named buttons.
- 2026-11-05 · Claude Code Tray · T437: Settings renews its opened snapshot from the page's own values after each Save, so a second Save in one visit leaves a toggle the tray menu moved since the first.
- 2026-11-05 · Claude Code Tray · T436: The Sessions pane keeps its list through a poll that found nothing new, and a rebuild keeps every call tree the user opened, re-walking only a conversation that moved.
- 2026-11-05 · Claude Code Tray · T435: A Context rescan keeps the panes on screen, the All projects selection and the list's scroll, and a rescan asked for mid-scan runs once more instead of being dropped.
- 2026-11-05 · Claude Code Tray · T434: Encode-Clip stops with ffmpeg's exit code instead of reporting a failed encode as written, and closing --main or --settings-tray ends the process, which the self-test holds for every WinForms-pumped preview.
- 2026-11-05 · Claude Code Tray · T433: The build's fallback publishes build/release-notes.md and refuses notes for another version, and the installer's tasks, shortcuts and finish page read from per-language messages, so an English install reads English.
- 2026-11-05 · Claude Code Tray · T432: The thirteen counted strings T432 named read in the singular at one in all five languages through L.N, the two hand-rolled 1/N pairs included, and the self-test refuses a .one copied from its .many or a code-side == 1 choice.
- 2026-11-05 · Claude Code Tray · T431: The About page names the Apache License 2.0 in all five languages, and the self-test holds every disclaimer to the licence LICENSE declares.
- 2026-11-05 · Claude Code Tray · T430: The consent banner says analytics waits for a choice while the house ad loads either way, and the privacy copy names both requests the app makes: the rate-limit call at its real cadence and the Releases check.
- 2026-11-05 · Claude Code Tray · T429: The site nav's In depth link lands on the feature index, the Privacy section carries its id and the shared wrap, and a site test fails any in-page link whose id is missing.
- 2026-11-05 · Claude Code Tray · T428: The resume-hour pair runs on a fixed working-morning clock with no allowed skip, a blind case-run desk prints its hole and fails on CI, and AGENTS.md says ObservingTray reads the real tree.
- 2026-11-05 · Claude Code Tray · T427: The self-test's PowerShell and junction helpers run through ChildRun and the case run's --profiles count reads both streams alongside its wait, so a hung child fails at its bound.
- 2026-11-05 · Claude Code Tray · T426: The WSL listing and the claude auth status check run through ChildRun, which drains stdout and stderr alongside a bounded wait and kills the whole tree on timeout (design §CXI.8 recorded in `src/Core/ChildRun.cs`).
- 2026-11-05 · Claude Code Tray · T425: --context exits 1 when its fixture, report or project filter fails, and a leaf name several projects share is refused with each candidate's full path.
- 2026-11-05 · Claude Code Tray · T424: --profiles prints each profile's CLAUDE_CONFIG_DIR action and launch cwd, built by ProfilesCli.LaunchLine with the ternary bound before ??, and the self-test reads both cases back.
- 2026-11-05 · Claude Code Tray · T423: A credentials file read mid-refresh is shared, retried, and reported as a transient poll so the last good reading stays; every ApiClient shares one HttpClient.
- 2026-11-05 · Claude Code Tray · T422: UsageInsights, the Context page and the Settings heartbeat estimate weight tokens through ListPrices.Card, the one rate card, and the self-test holds it to the list-price totals.
- 2026-11-05 · Claude Code Tray · T421: Usage insights, the Context scan, its watcher and its usage pass read the monitored profile's own tree, and the scan's history and nudges file under the key taken with it.
- 2026-11-05 · Claude Code Tray · T420: SessionIndex asks whether a cached entry is its own of the walked root's real path too, so behind a junctioned projects tree a deleted conversation is kept and marked gone, and Forget empties it.
- 2026-11-05 · Claude Code Tray · T419: Every transcript and store reader opens through SharedRead, sharing ReadWrite and Delete, so the conversation being written counts in tokens, insights, sessions, activity and context; a read that fails is never cached as a counted file (design §CXI.1 recorded in `src/Core/SharedRead.cs`).
- 2026-11-05 · Claude Code Tray · T418: Release notes are written once in build\release-notes.md and reach both the GitHub release and the en-US winget manifest, the installer manifest keeps AppsAndFeaturesEntries at the manifest level, and --selftest fails a manifest that loses either or carries another version's notes.
- 2026-11-05 · roadkeep · RK1728: Every init choice is a flag to discover, and nothing asks a person or an agent for it
- 2026-11-05 · roadkeep · RK1727: init without --prefix gives every project roadkeep's own RK ids
- 2026-11-05 · roadkeep · RK1726: init scaffolds the least it can, so a working setup is four more commands nobody is shown
- 2026-11-05 · roadkeep · RK1725: Filing into a sibling project is spelled by each friction skill and needs a local checkout
- 2026-11-05 · roadkeep · RK1724: Shipping a task says nothing about the sibling tasks it unblocks
- 2026-11-05 · roadkeep · RK1723: A line filed from another project reads exactly like one filed at home
- 2026-11-05 · roadkeep · RK1722: A ledger entry carries no date, so every site re-derives one from git by hand
- 2026-11-05 · roadkeep · RK1720: A release still waits on a manual dispatch, so PyPI and the README's Action pin fall behind the plugin
- 2026-11-05 · roadkeep · RK1719: A lock whose holder died refuses every write for up to a minute, until its age reaps it
- 2026-11-05 · roadkeep · RK1718: A defer refused for length blames the line's structure and names a budget read that does not price the reason
- 2026-11-05 · roadkeep · RK1716: A dep on another repository's task is free text, so nothing can tell whether it shipped
- 2026-11-05 · roadkeep · RK1715: block add opens a label the ledger already declares under another title
- 2026-11-05 · roadkeep · RK1714: The pitch and the roadkeep-gui landing each keep their own copy of the template eight product sites share
- 2026-11-04 · polyweave · PW689: store.too-small says give a larger key art, and nothing in the plugin can make one
- 2026-11-04 · polyweave · PW688: a Scenario account that trains nothing cannot buy a picture, since picture.buy draws only from a trained model
- 2026-11-04 · polyweave · PW687: the item view has no way to mark where a picture is wrong, so a change asked from it carries words alone
- 2026-11-04 · polyweave · PW686: the project screen is a narrow centred column, so a wide window leaves most of itself blank
- 2026-11-04 · polyweave · PW685: the item view draws a picture at its real size, so a tall capture runs far past the request box
- 2026-11-04 · polyweave · PW684: the window's inventory reads all 2,019 of Spinhold's items before it shows any, in one column with no tab per kind
- 2026-11-04 · polyweave · PW683: a level field's help reaches a game's editor in the schema's language only, outside the string table
- 2026-11-04 · polyweave · PW682: picture.buy on Ideogram 4.0 answers a 16x9 request in 4:5, and neither answer nor record warns (PW659 is back)
- 2026-11-04 · polyweave · PW681: a level set's curve cannot bound how much harder a level may get as a ratio, so Spinhold's peak_step stays in check.gd
- 2026-11-04 · polyweave · PW680: No way to see which pictures a batch would buy, why each one, and what it costs, before it spends
- 2026-11-04 · polyweave · PW679: picture.buy buys a picture a person already approved again when the prompt that asks for it is reworded
- 2026-11-04 · polyweave · PW678: a file borrowed after sound.loop cut it records only its scratch path: no origin service, original or derivation step
- 2026-11-04 · polyweave · PW677: engine.preset_search answers no sheet for the presets that lose quality, though it writes one
- 2026-11-04 · polyweave · PW659: picture.buy on Ideogram 4.0 returns another aspect ratio than asked, and the record holds both with no warning
- 2026-11-04 · polyweave · PW609: an accepted reference transcription cannot become a draft level, so its rows are retyped into the level file by hand
- 2026-11-04 · polyweave · PW608: a declared level schema gives the engine no typed reader and gives a game's tools no field bounds, units or help
- 2026-11-04 · polyweave · PW480: reference.objects counts a background of the enemies' own hue as enemies, so a busy reference cannot be counted
- 2026-11-04 · polyweave · PW205: A shooter's waves have no measure of threat, so the level contract is proven on one genre only
- 2026-11-04 · polyweave · PW204: A level's difficulty has no bar a search can aim at, and a level set has no curve to hold
- 2026-11-03 · polyweave · PW641: after PW480, reference.objects still counts a parallax city as moving enemies, so Resogun's phase 1 cannot be counted
- 2026-11-03 · polyweave · PW582: a mesh cannot be prepared before it is rendered, so Cottony keeps prep.py and three exporters outside the record
- 2026-11-03 · polyweave · PW495: a declared finish reaches the game only through glTF import, so a look a person accepted is rebuilt in a game shader
- 2026-11-03 · polyweave · PW203: A level declared as data cannot reach the engine without each game's own converter
