Skip to content
Changelog

What Agent Workbench shipped.

The latest 150 entries, read at build time from each product's roadkeep ledger in its public repository and dated by the commit that wrote them. Newest first.

Atom feed
  1. winwright
    The fixture died once with 0xC0000409 right after a file was chosen in the Open dialog, and nothing kept why

    A red guest run brings back each WER report written during it and prints what faulted, read by position so a localized guest still says it (design recorded in tools/blame-gather.ps1).

    WW623 · eefb201
  2. winwright
    The README's -Carry example fence has prose after it on the same line, so GitHub renders what follows as code

    The -Carry example's fence stands alone again, its sentence joined the -Name paragraph, and ReadmeTests refuses any block closed by a fence with text after it.

    WW622 · 605bbaa
  3. roadkeep
    two branches that each added a block of their own are refused as prose both sides moved

    Block headings each side inserted under labels the other does not use join one frame verbatim, and their lines and sections land under them.

    RK1750 · a994c3f
  4. roadkeep
    syncing main into a feature is refused when main shipped a line the feature waits on

    The driver composes the other side's ledger and store from git's GITHEAD, resolves deps against them and re-derives the annotations the merge moved.

    RK1749 · fb75a57
  5. roadkeep
    the renumber the merge driver names derives a destination the other branch already spent

    renumber --past REV derives past the ids that revision spent, read through git, and the driver's refusal names it.

    RK1748 · 49b0e21
  6. roadkeep
    the prose merge refuses two branches that each shipped a decision

    The prose merge decides record lines by id with the roadmap's rule and keeps them out of the frame, so decisions merge like sections.

    RK1747 · d7149c1
  7. roadkeep
    declare leaves a new governed file out of a merge driver the project already wired

    declare extends .gitattributes to the new file wherever a governed file already merges through the driver, and names the line.

    RK1746 · 55c8f7e
  8. roadkeep
    the prose merge refuses or misplaces sections when one branch added a block

    The prose skeleton folds blank runs like the roadmap's, and a section arriving in a block-organised file goes to the end of its own block.

    RK1745 · 0da6b39
  9. roadkeep
    no tested strategy keeps one backlog consistent across parallel long-lived branches

    Twenty-one merge scenarios ran against the driver, seven defects were fixed as their own tasks, and the strategy is in the skill.

    RK1744 · a244e9a
  10. roadkeep
    merge refuses a branch that adds a block while the other only files lines under an existing one

    The merge skeleton folds blank-line runs, so a block added on one side merges with lines filed under an existing one on the other.

    RK1743 · 38de24a
  11. roadkeep
    A vendored engine falls behind the checkout on the same machine, and nothing refreshes it until a session refuses a line

    SessionStart re-vendors a copy older than the engine install --vendor would pick and names both versions (design recorded in plugin/src/roadkeep/installing.py).

    RK1741 · 6b58c47
  12. roadkeep
    install --vendor deletes the whole .roadkeep/ tree, so the capture reports kept under .roadkeep/reports are lost

    install --vendor keeps .roadkeep/reports through the engine swap, every capture byte-identical and counted (design recorded in plugin/src/roadkeep/installing.py).

    RK1740 · e19a269
  13. roadkeep
    A file that fails the grammar wholesale is blamed on its author, even when the running engine predates the format

    A wholesale grammar failure names this engine and the newer wired one, with the restart; an empty [grammar] reads as declared (design recorded in plugin/src/roadkeep/linting.py).

    RK1739 · c640420
  14. roadkeep
    The distributed plugin only declares a Claude installation

    The plugin ships a portable plugin.json and stdio mcp.json for Codex, stamped with one version; Codex reuses its hooks and marketplace, never twice (design recorded in tests/test_plugin.py).

    RK1736 · 138d16e
  15. roadkeep
    Install, check and uninstall cannot manage Codex project wiring

    install --host codex wires .codex/hooks.json, the config.toml server and .agents/skills, names the /hooks review; check and uninstall follow (design recorded in plugin/src/roadkeep/installing.py).

    RK1735 · 6a49bb6
  16. roadkeep
    Bundled workflows assume Claude command syntax and tool names

    codex_skills renders the four commands as roadkeep-<verb> Codex skills with the real launcher and no Claude-only spelling; one main skill (design recorded in plugin/src/roadkeep/installing.py).

    RK1734 · 13da96e
  17. roadkeep
    Engine discovery and installation diagnostics only recognize Claude wiring

    engines judges the enabled Codex copy beside the Claude plugin, names Codex's remedy and launcher, and a write pinned behind either is refused (design recorded in plugin/src/roadkeep/installing.py).

    RK1733 · 5610c52
  18. roadkeep
    MCP startup does not establish the Codex workspace it governs

    The MCP server binds to -C, then ROADKEEP_PROJECT, then cwd, says which on stderr, and refuses calls when started inside its own install (design recorded in plugin/src/roadkeep/serving.py).

    RK1732 · cff4545
  19. roadkeep
    Shell refusals return a decision that Codex does not support

    Under Codex (turn_id or guard --host codex) a governed shell mention is denied, not asked; staging, history and roadkeep stay allowed (design recorded in plugin/src/roadkeep/guarding.py).

    RK1731 · 864411d
  20. roadkeep
    The guard ignores Codex apply_patch calls that edit governed files

    The guard decodes every apply_patch target, both ends of a move included, and denies a governed one; undecodable input gets the mention test (design recorded in plugin/src/roadkeep/guarding.py).

    RK1730 · 800519b
  21. roadkeep
    Both product sites run a prerender script of their own, and neither is registered with the design system

    The gui site prerenders through prerenderSite 2026.3.26, its Markdown link via headTags, output byte-identical; both sites registered (design recorded in gui/site/scripts/prerender.mjs).

    RK1729 · f17b592
  22. askround
    The site is not built to be read by assistants, and askround never measures whether they name askround itself

    The site ships a checked llms.txt and JSON-LD, and shows askround's own dated round: named by no assistant yet.

    AR43 · d8e135c
  23. askround
    There are no docs pages: install, a first session in Claude Code, the MCP tools and the CLI reference live nowhere

    site/docs builds the docs at /askround/docs/, its MCP and CLI reference generated from the package.

    AR42 · 3205896
  24. askround
    Nothing builds and deploys the site when it changes

    site.yml deploys the site to Pages; alegauss.github.io/askround/, its docs and llms.txt answer 200.

    AR41 · ad343d5
  25. askround
    askround has no public site: nowhere to see what a round reports, install it or read the docs

    site/ prerenders the page at /askround/ with a real recorded round; Lighthouse scores 100.

    AR40 · 6e4b939
  26. askround
    askround is not wired into a project the way roadkeep is: one install that every clone and every surface gets

    The plugin, askround install and a vendored copy for the web wire every clone.

    AR38 · 32beff6
  27. askround
    Nothing measures how many tokens each MCP response costs the agent, so outputs grow unnoticed

    Every MCP tool's response is counted on the recorded rounds against a budget in budgets/mcp-tokens.json, and askround_run returns one brief per question.

    AR37 · 647a056
  28. askround
    An agent asking the same question again the same day pays for the same round twice

    A question asked again the same way within the day returns the stored round with its age and calls no provider; --fresh asks anew, and a round with failures is asked again.

    AR36 · 7d06a8c
  29. askround
    A round takes minutes of searched calls, longer than an MCP call should block the agent

    With background: true a round or set starts as a job and returns at once with its estimate; askround_job reads its progress and result, and each answer is kept as it lands.

    AR35 · bf4c5d6
  30. askround
    An agent could spend the user's API money on rounds without the user ever agreeing to the amount

    The person sets a day and month budget in a config no tool writes; a run past it is refused before any call as an approval request, and spending comes with every paid result.

    AR34 · 296d9fc
  31. askround
    A bad round is discovered after it is paid for: a leading question, personal data or a cost over budget

    Every pre-call check runs first and a refusal lists all problems with a code and its fix; askround explain covers each code, and MCP schemas carry the limits.

    AR33 · f24f009
  32. askround
    Output is meant for a person to read, with no stable schema an agent or a script can rely on

    Every command's JSON names a versioned schema published in schema/ and validated in tests; each fact carries its answer id and passage range; exit codes are documented.

    AR32 · 04c6e61
  33. askround
    A round hands the agent every raw answer, so one check of a product spends tens of thousands of tokens of context

    Agents get a brief: a round in a few hundred tokens with answer ids on every fact; askround_answer returns one answer or just the passage around a quote.

    AR31 · 760b955
  34. askround
    No written laws bind askround's design, so the agent-first rules can erode one feature at a time

    askround's six laws open IMPROVEMENTS.md as §0.1, from context is cost to the person sets the money, and the project skill says a rationale names the law it serves.

    AR30 · 6607611
  35. askround
    Tests would call live APIs, costing money and breaking on every provider change

    The suite runs with no key and fails any network call; adapters are tested on a recorded live round, and ASKROUND_LIVE=1 runs each keyed adapter against its API.

    AR29 · d011e62
  36. askround
    No Claude Code skill tells an agent when to use askround instead of asking the user to test a prompt

    A skill tells an agent when to run askround itself (visibility, discovery, research), how to ask neutrally and within budget; a validated plugin installs it with the MCP server.

    AR27 · 47048f4
  37. askround
    Disagreements between assistants on a fact, such as a model's licence, are not flagged for a check at the source

    Research mode reports where the assistants disagree on a fact first, with both sides, their passages and the primary sources to settle it; one provider's own sources are not read.

    AR26 · 412d3b7
  38. askround
    Researching a question across assistants means reading each answer and merging the sources by hand

    askround research asks every provider with search, merges the answers' verified statements into claims ranked by provider support, with passages and sources primary first; also an MCP tool.

    AR25 · 6f711a3
  39. askround
    An agent in Claude Code cannot ask other assistants mid-analysis; it has to stop and ask the user

    askround mcp serves ask, answer, run, report, diff and doctor over stdio with every refusal and the cost cap; a stdio client asked two providers and read an answer.

    AR24 · dc20d1c
  40. askround
    A round cannot be exported to a dashboard or another project's data

    askround export writes a product's rows from the series per day, provider and question as CSV, JSON or a daily.json shape, and the README shows a weekly schedule on Windows and cron.

    AR23 · c2fb2ed
  41. askround
    The cost of a round is unknown before it runs, and web search is billed apart from tokens

    A run prints its estimate from a dated price table, refuses one above --max-cost before any call, and reports the actual cost per provider from each API's usage.

    AR22 · a4f3f48
  42. askround
    Nothing compares a round with the previous one: a new rival, a rank lost, a product dropped

    askround diff compares two rounds or set runs per question and provider, naming share and rank changes, rivals and cited pages that appeared or left, and claims made or dropped.

    AR21 · dc8fe96
  43. askround
    Rounds are not kept as a series, so a product entering or leaving the answers goes unnoticed

    Every saved round appends a row per answer to series.jsonl, rebuildable from the rounds; askround series gives a product's share per week, day or month per provider.

    AR20 · 78d9113
  44. askround
    A question could carry personal data, an email or a person's name, to every provider at once

    Every question, seed, variant and lookup is scanned for emails, phones, CPFs, IPs, API keys and the person's private names, and stops before any call naming what it found.

    AR19 · 859982c
  45. askround
    Nothing warns when a question names the product it tests, which makes its answer worthless

    A question naming the product, an alias, a place or a listed phrase is refused before any call; a brand question (--brand, brand = true) runs, marked and reported apart.

    AR18 · 6b972a6
  46. askround
    Finding which question leads an assistant to a product took four manual tries

    askround discover writes variants of a seed that never name the product, runs them and ranks them by rank and frequency; a 1-run live test ranked the seed first.

    AR17 · cc82580
  47. askround
    Questions live in chat history; there is no prompt set per product to run again next week

    A product file's [[question]] entries form a prompt set; askround run asks them all as one set with a question-by-provider table, and examples/modelado.toml holds the four 12/11 questions.

    AR16 · a75b9f9
  48. askround
    Claims about the product are not checked against what is true, so a wrong 'needs NVIDIA' goes unnoticed

    A product file holds a product's facts and pages; with --extract the answers' claims are judged against them, and a contradicted or doubted fact is reported with the page that should say it.

    AR15 · b32ac56
  49. askround
    A cited link or picture may belong to another product, like a Store page of a different app shown for Modelado

    --check-links follows each link and image an answer gives beside a product and flags those landing on another product's page or broken; Modelado's real Store, site and repo pass.

    AR14 · a216930
  50. askround
    A product an answer names may not exist, like two Windows apps no search could find

    askround lookup and --check-rivals check a rival on GitHub, then a searched call; both 12/11 'invented' names exist (design superseded: they exist).

    AR13 · a3d2c31
  51. askround
    There is no short report of a round; reading it means opening every raw answer

    askround report turns a stored round (the latest by default) into one Markdown or JSON report: frequency and ranks per provider, claims, cited pages and rivals, without the answers' text.

    AR12 · 133a5cb
  52. askround
    What an answer claims about the product is not captured, such as 'CPU only: Check build' in a table

    With --extract each answer's claims about every product (table cells and prose) are read as attribute and value with a verified quote, and a product's claims are aggregated per provider.

    AR11 · 22e6df6
  53. askround
    The links an answer cites are not collected, so which page brought the product (site, repo, store) is unknown

    Each answer's cited pages are normalised; given its domains, a product's cited pages are counted per provider by kind, and third-party domains and rivals' pages are counted too.

    AR10 · 8eb6517
  54. askround
    The rivals an answer recommends are not listed, so a competitor like Modly is found only by reading

    With --extract a round lists every rival the answers recommend, with answer counts, ranks, providers and a quote; on 12/11 Modly led, but a live round today ranks it lower.

    AR9 · 29d139c
  55. askround
    Whether a product is named, and in which position, is read by eye in each answer

    --extract lists each answer's recommendations in order with quotes, checked against its text, so a product ranks by "Best fit" or prose; live and synthetic answers checked, 12/11 originals not kept.

    AR8 · 4d5805d
  56. askround
    A rate limit, timeout or provider error aborts the round instead of being retried and reported

    Rate limits, server errors and timeouts are retried with backoff and Retry-After; a call that still fails is recorded with its attempts and the round finishes, listing failures.

    AR7 · f9777a8
  57. askround
    A question cannot be asked as someone in a given country and language would ask it

    --locale COUNTRY:LANG asks each provider as that locale through its search settings, records what its API ignored, and repeated locales are compared side by side.

    AR6 · 29d9738
  58. askround
    The model, tools and settings behind an answer are not recorded, so a change cannot be told from drift

    Every answer records the requested and served model id, search tool, temperature, locale, settings, run and time; --model pins a model and frequency groups by served model.

    AR5 · be499da
  59. askround
    One answer is taken as the answer, though the same question gives a different list on the next run

    A round asks each provider three times by default (--runs) and --product reports per provider the share of runs naming it and its position in each, raw answers kept.

    AR4 · 20b6ab1
  60. askround
    Which providers can run depends on keys in the environment, and nothing says which ones are there

    askround doctor lists each provider's key variable (never its value), model, search tool and a free check call, telling rejected keys from missing models.

    AR3 · 9f822bf
  61. askround
    Providers are called without web search, so an answer cannot name a product newer than the model's training

    Every adapter searches with its provider's own tool and keeps queries and cited sources, with --no-search to compare; OpenAI and Gemini were checked live.

    AR2 · c5ce2a8
  62. askround
    No code exists to send one question to several assistants and keep their answers side by side

    askround ask sends one question to every provider with a key (OpenAI, Gemini, Anthropic) in parallel, prints the answers together and saves each raw response with the date.

    AR1 · f47df19
  63. polyweave
    voice.lines plans again takes sound.speak bought with the same words, voice and model, and cannot take them over

    voice.lines lists matching sound.speak takes as adoptable, and adopt=true writes the line into their records so they count current (design recorded in docs/specs/world.md).

    PW691 · 9af51ed
  64. polyweave
    No capture records a web page, so a product video films its browser scenes with a project script around Playwright

    capture.web films a declared visit in Chromium as a WebM for video.cut, recording the URL and step marks, and refuses a broken page (design recorded in docs/specs/video.md).

    PW690 · bd6ffd2
  65. winwright
    An invoke whose handler exits the application can throw, since the process dies while UI Automation is returning

    An act whose application exits during the call or its read-back lands, saying the application exited, so the exit claim after it is what checks it (design recorded in README.md).

    WW617 · 324b037
  66. winwright
    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

    An in-app render of a window draws its client area at its client size, so no blank band runs down the right and bottom where its frame is (design recorded in README.md).

    WW616 · 75c9e3f
  67. winwright
    The file-arrives case writes its file from the pool 300 ms in and waits 3 s, so a loaded guest reds it

    The file-arrives case writes from a thread of its own and gives the step 15 s, so a loaded guest still sees the file and the case reds only when it never comes.

    WW615 · 7a9c104
  68. winwright
    A locator's order written as a number parses, so [order=1] means left and [order=9] an order that does not exist

    A locator's order is read by name only, so [order=1], [order=9] and [order=-1] are refused with the four orders there are.

    WW614 · 5145182
  69. winwright
    An in-app render of a window whose background is the system backdrop draws dark-theme text on white

    An in-app render of a backdrop window composes what shows there: the capture key, the theme's ApplicationBackgroundBrush, or the Mica base (design recorded in src/Winwright.InApp/Renders.cs).

    WW611 · bc10b8d
  70. winwright
    A case cannot put focus on an element before a press, so Enter or Space on a row goes wherever focus already is

    A "focus" act puts the keyboard focus on its element through UI Automation and reads it back, so the press after it lands on that row (design recorded in README.md).

    WW610 · b7d4d69
  71. winwright
    A read after an invoke can run before the handler, and no step waits for a reading to pass through a value

    An act takes "passes": a key whose string must show after it, watched by UIA events and looks armed before it, so a flash is seen (design recorded in src/Winwright/Asserting/Passing.cs).

    WW608 · 3e6c95a
  72. winwright
    A hung guest run brings back only its largest dump, so the application's own dump stays in the guest

    A red guest run brings back every dump: the test host's as hangdump.dmp, each other under its own name and process, and what a size cap left is named (design recorded in tools/blame-gather.ps1).

    WW607 · 9825676
  73. winwright
    A case cannot start the application again after it exits, to read what a clean close left for the next run

    A process step "launched again" starts the app the way its fixture did after a claimed exit, without restaging files, so later steps read what the close kept (design recorded in README.md).

    WW606 · 55b75dc
  74. winwright
    A press of a bare digit loads and then breaks: Enum.TryParse reads it as a traversal key's number

    A press of a bare digit is a chord and reaches the window as that digit; the press reads traversal keys by name only, never by number.

    WW605 · 8173733
  75. winwright
    A drag cannot hold Ctrl, Alt or Ctrl+Alt, so a drop whose edit depends on the key held has no case

    A drag takes "holding" (ctrl, shift, alt, ctrl+alt), down from the press to after the release, with Alt's release masked by a Ctrl tap so no menu opens (design recorded in README.md).

    WW604 · 92f3404
  76. winwright
    A click lands only on an element's clickable point, so a spot on a canvas is reached by a drag

    A click step takes "at": "x,y" in drag's point grammar and presses there; a point past the element is refused naming its size, and nothing is pressed (design recorded in README.md).

    WW603 · 1860f1e
  77. winwright
    A case cannot double-click, though the engine's pointer can, so what opens on a double click has no case

    A click step takes "clicks": 2 and double-clicks in one batch at one point; other counts are refused, and the fixture's strip opens a tab on a double click only (design recorded in README.md).

    WW602 · aa05516
  78. winwright
    A locator miss lists every shut menu and tab in the window with a bare state word that reads as their current state

    A miss names each shut door by its state ('not selected', 'collapsed') and lists only the doors under the step that resolved (design recorded in README.md).

    WW601 · c976aac
  79. winwright
    The note after a red run on a 'shell' desk says the tree is not broken, whatever the run excused

    A red run on a 'shell' or 'stale' desk no longer calls the tree fine: the note quotes vm-run.log's excused count, or says the runner cannot tell (design recorded in tools/desk-note.ps1).

    WW600 · 137f807
  80. roadkeep
    The README has never been held to the five-second first-screen test the visibility repository applies

    The README's first screen leads with the site's token pitch and the measured cost, approved by Alexandre on 2026-11-06; the CI gate moved to its own section.

    RK1717 · 222f51f
  81. winwright
    The readings case needs seven polls inside a 200 ms budget, so a loaded host sees only two of its three readings

    The readings case polls for a second, so even a loaded host reaches the seventh poll and the case reds only when a change of reading is lost.

    WW613 · cbb3eff
  82. winwright
    The settles-late case gives the act 400 ms before the box commits, so a slow guest reads the settled value

    The settles-late box commits 1500 ms after the write, so a loaded guest's act still reads what it wrote and the case reds only when the read-back is wrong.

    WW612 · 0559a8f
  83. winwright
    The code is named Paneproof while every published package, plugin, site page and adopter still says winwright

    The code is Winwright again: WW590, WW591 and WW597 are reverted with no paneproof alias, since no Paneproof release ever shipped, and renaming is now a non-goal.

    WW609 · 92f4b12
  84. winwright
    A red guest run prints the guest's log whole but never names the file it kept on the host

    A guest run's last lines, after the verdict, name the host path of the guest's log and of each file it brought back this run, so any tail of the console still points at the evidence.

    WW599 · 97e267b
  85. Claude Code Tray
    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.
    T447 · bebea05
  86. Claude Code Tray
    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.
    T446 · 4d38049
  87. Claude Code Tray
    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.
    T445 · 99cece2
  88. Claude Code Tray
    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.
    T444 · b0a67dd
  89. Claude Code Tray
    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.
    T443 · ad878f6
  90. Claude Code Tray
    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.
    T442 · 4f27b49
  91. Claude Code Tray
    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.
    T441 · 5a6d3eb
  92. Claude Code Tray
    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.
    T440 · 5bb6094
  93. Claude Code Tray
    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.
    T439 · 5074465
  94. Claude Code Tray
    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.
    T438 · 029d54a
  95. Claude Code Tray
    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.
    T437 · c25a1d0
  96. Claude Code Tray
    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.
    T436 · 98c3f8f
  97. Claude Code Tray
    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.
    T435 · 47aa0b4
  98. Claude Code Tray
    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.
    T434 · 2e9d91f
  99. Claude Code Tray
    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.
    T433 · e4a78d7
  100. Claude Code Tray
    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.
    T432 · d26a9ef
  101. Claude Code Tray
    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.
    T431 · 9ab0ce6
  102. Claude Code Tray
    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.
    T430 · f02a7bd
  103. Claude Code Tray
    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.
    T429 · 6dfba7a
  104. Claude Code Tray
    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.
    T428 · 6b26e26
  105. Claude Code Tray
    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.
    T427 · 8a13ba6
  106. Claude Code Tray
    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).
    T426 · 9f70e3a
  107. Claude Code Tray
    --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.
    T425 · ff8618f
  108. Claude Code Tray
    --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.
    T424 · f858ad5
  109. Claude Code Tray
    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.
    T423 · ad2366b
  110. Claude Code Tray
    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.
    T422 · 6ad6612
  111. Claude Code Tray
    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.
    T421 · fce9127
  112. Claude Code Tray
    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.
    T420 · 5e3d7fd
  113. Claude Code Tray
    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).
    T419 · 52d7d2b
  114. Claude Code Tray
    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.
    T418 · 765932f
  115. roadkeep
    Every init choice is a flag to discover, and nothing asks a person or an agent for it

    init --questions lists every choice init takes with a default for the directory; a bare init on a terminal asks them and prints the equivalent command, and the skill reads the list.

    RK1728 · 02af73f
  116. roadkeep
    init without --prefix gives every project roadkeep's own RK ids

    init with no --prefix and no ids derives one from the origin remote's name, else the directory, says so with the override, and asks for --prefix when the name gives none.

    RK1727 · 8d7f4bc
  117. roadkeep
    init scaffolds the least it can, so a working setup is four more commands nobody is shown

    init names every step it left unset with the verb that adds it, and --install, --merge and --gate run those verbs once the scaffold lands.

    RK1726 · df51875
  118. roadkeep
    Filing into a sibling project is spelled by each friction skill and needs a local checkout

    The skill ships filing.md, opened when a write targets a declared sibling: add -C into a checkout, or a shallow clone, rebase with the driver and a merge request, then the dep.

    RK1725 · 805a69a
  119. roadkeep
    Shipping a task says nothing about the sibling tasks it unblocks

    A ship names each sibling line it unblocked, and the sibling's session start names each ready line whose foreign dep shipped, offline from a checkout or the cache.

    RK1724 · be89a0c
  120. roadkeep
    A line filed from another project reads exactly like one filed at home

    An add from another governed project writes (from: <project>) on the line; list --foreign lists those lines, and amend --reviewed drops the clause.

    RK1723 · 847076b
  121. roadkeep
    A ledger entry carries no date, so every site re-derives one from git by hand

    list --dated answers each line's proposing and shipping commit and date, and --history <bare clone> --at <rev> dates a git archive extract that has no history of its own.

    RK1722 · 4028bda
  122. roadkeep
    A release still waits on a manual dispatch, so PyPI and the README's Action pin fall behind the plugin

    A weekly schedule publishes the version main already carries when it has no tag, the v0 tag follows every release, and the README pins the Action at @v0.

    RK1720 · d2019d7
  123. roadkeep
    A lock whose holder died refuses every write for up to a minute, until its age reaps it

    A lock whose holder process is gone is taken on the next write and said so, on POSIX and Windows; a live holder is still refused, with how long it has held the lock.

    RK1719 · fb16591
  124. roadkeep
    A defer refused for length blames the line's structure and names a budget read that does not price the reason

    A defer refused for length names the reason as the field to shrink, with the room budget --defer reports, and its foresee door is budget <id> --defer.

    RK1718 · 8b3b6d0
  125. roadkeep
    A dep on another repository's task is free text, so nothing can tell whether it shipped

    A <name>: <id> dep resolves against the sibling's ledger from its checkout or a shallow cached fetch of its git remote at ref, with a timeout, and lint never fetches.

    RK1716 · f432152
  126. roadkeep
    block add opens a label the ledger already declares under another title

    block add refuses a label any governed file titles differently, writing nothing and offering the next free label as the retry; block list's door now carries the declared title.

    RK1715 · 600069b
  127. roadkeep
    The pitch and the roadkeep-gui landing each keep their own copy of the template eight product sites share

    Both sites draw their nav, hero, buttons, sponsor and footer from the design system, the gui landing its theme toggle, copy button and feature index too, with analytics after consent.

    RK1714 · 7624d23
  128. polyweave
    store.too-small says give a larger key art, and nothing in the plugin can make one

    picture.upscale buys a larger picture from a Scenario upscaler, recorded against its source, and store.too-small names that call (design recorded in docs/specs/fetching.md).

    PW689 · 1904f96
  129. polyweave
    a Scenario account that trains nothing cannot buy a picture, since picture.buy draws only from a trained model

    picture.buy draws from a public Scenario model with no training, shaped by what the model declares and dry-run priced first (design recorded in docs/specs/fetching.md).

    PW688 · c78be44
  130. polyweave
    the item view has no way to mark where a picture is wrong, so a change asked from it carries words alone

    The item view takes Decide's drawn boxes, sent as revision.ask's marks, kept as a mask on the picture's digest, named in the first message (design recorded in docs/specs/acceptance-spec.md).

    PW687 · daced59
  131. polyweave
    the project screen is a narrow centred column, so a wide window leaves most of itself blank

    An open project takes the window's whole width, its list a share a person drags or moves by key, the item filling the rest with prose kept to reading length (design recorded in gui/README.md).

    PW686 · e0a9edb
  132. polyweave
    the item view draws a picture at its real size, so a tall capture runs far past the request box

    A picture fits the item panel beside its request box, says its real size, toggles to it in one click and opens alone at full size (design recorded in gui/README.md).

    PW685 · fbf12c0
  133. polyweave
    the window's inventory reads all 2,019 of Spinhold's items before it shows any, in one column with no tab per kind

    A project opens on its first inventory page, with a tab per kind counted by the payload, a path search and a list drawing only rows in view (design recorded in gui/README.md).

    PW684 · 0ba38bc
  134. polyweave
    a level field's help reaches a game's editor in the schema's language only, outside the string table

    Each level field's help has a key from its path, and level.fields appends missing ones to the string table untranslated, naming changed ones (design recorded in docs/specs/engine.md).

    PW683 · 2de6fb5
  135. polyweave
    picture.buy on Ideogram 4.0 answers a 16x9 request in 4:5, and neither answer nor record warns (PW659 is back)

    A picture drawn at another shape than asked is named in the answer, in its record as mismatch.aspect_ratio, and in a batch's mismatches (design recorded in docs/specs/fetching.md).

    PW682 · fdb2d84
  136. polyweave
    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

    A level set's most_rise bounds each level to a ratio of the one before; Spinhold's phases hold its owner's 1.5 there (design recorded in docs/specs/measurements.md).

    PW681 · 879f947
  137. polyweave
    No way to see which pictures a batch would buy, why each one, and what it costs, before it spends

    picture.batch says per entry why it would be bought and the cost against the ceiling, buying nothing, then buys exactly what that plan named (design recorded in docs/specs/fetching.md).

    PW680 · 42d3ea2
  138. polyweave
    picture.buy buys a picture a person already approved again when the prompt that asks for it is reworded

    A bought picture a person accepted keeps their verdict in its record, so picture.buy answers kept and spends nothing when its prompt is reworded (design recorded in docs/specs/fetching.md).

    PW679 · 0a80b76
  139. polyweave
    a file borrowed after sound.loop cut it records only its scratch path: no origin service, original or derivation step

    sound.loop records its track, and a borrowed file keeps its maker, original and step, which provenance.credits says as one chain (design recorded in docs/specs/provenance.md).

    PW678 · 353a853
  140. polyweave
    engine.preset_search answers no sheet for the presets that lose quality, though it writes one

    engine.preset_search now answers the sheet of lossy presets by its path, so a person is handed them to judge; a test holds it with no engine.

    PW677 · 1bccf81
  141. polyweave
    picture.buy on Ideogram 4.0 returns another aspect ratio than asked, and the record holds both with no warning

    picture.buy sends a 4.0 ratio as the resolution of that shape, which 4.0 draws by, and refuses one it has no size of before spending.

    PW659 · 633dbce
  142. polyweave
    an accepted reference transcription cannot become a draft level, so its rows are retyped into the level file by hand

    reference.draft turns a transcription a person accepted into a draft level by the project's mapping, recorded and held to its schema (design recorded in docs/specs/fetching.md).

    PW609 · d19c65c
  143. polyweave
    a declared level schema gives the engine no typed reader and gives a game's tools no field bounds, units or help

    level.reader writes a typed GDScript reader from the level schema; Cottony's 20 levels and Spinhold's 3 phases read through it with no error (design recorded in docs/specs/engine.md).

    PW608 · 841ee9f
  144. polyweave
    reference.objects counts a background of the enemies' own hue as enemies, so a busy reference cannot be counted

    Motion, samples and the warp-in gate count Resogun's phase 1 well enough for Spinhold, the owner judged; telling the ship's shots from pods is dropped.

    PW480 · 4509c2c
  145. polyweave
    A shooter's waves have no measure of threat, so the level contract is proven on one genre only

    Spinhold's phases pass level.validate, compile, probe and curve with no polyweave change, its probe reading waves by analysis: peak alive 39, 54, 75.

    PW205 · 5567259
  146. polyweave
    A level's difficulty has no bar a search can aim at, and a level set has no curve to hold

    level.curve holds a level set to its declared shape, and search.sweep's level producer turns a level's keys, compiled and probed, toward its spec (design recorded in docs/specs/measurements.md).

    PW204 · 4cee490
  147. polyweave
    after PW480, reference.objects still counts a parallax city as moving enemies, so Resogun's phase 1 cannot be counted

    A kind's warp keeps only tracks born at a flash just before, so Resogun's lull counts none (79 before) and its phase 282 tracks (design recorded in docs/specs/fetching.md).

    PW641 · 593fe1a
  148. polyweave
    a mesh cannot be prepared before it is rendered, so Cottony keeps prep.py and three exporters outside the record

    Every Cottony family renders from its source mesh with dedust, settle, fill or its own cloth step inside the bake, and the exporters and prep.py are gone.

    PW582 · ccec25a
  149. polyweave
    a declared finish reaches the game only through glTF import, so a look a person accepted is rebuilt in a game shader

    render.in_game draws a bake's model in the game at its rig beside the bake: a cone overlaps by 0.996, its light 1.07 of the bake's (design recorded in docs/specs/geometry.md).

    PW495 · ec9aabf
  150. polyweave
    A level declared as data cannot reach the engine without each game's own converter

    level.compile holds a level source to its schema, runs the project's own command and records the file the game loads, or the source the game reads (design recorded in docs/specs/engine.md).

    PW203 · b3c4687