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
    A case cannot drive the common Open or Save dialog, so choosing a file through it has no case

    'choose file' fills the common Open or Save dialog's name box by id and confirms; a read absent proves it closed, and pick sets the type (design recorded in src/Winwright/Acting/Act.cs).

    WW551 · e826dc4
  2. winwright
    A case cannot drop a file from Explorer onto the application, so a drop zone has no case

    'drop file' drops a file onto the app by a real drag carrying CF_HDROP; a target that answers no effect is a named hole (design recorded in src/Winwright/Acting/FileDrop.cs).

    WW550 · e6c2602
  3. winwright
    A case first in its run cannot type: the window it launched never comes forward before any synthesised input

    A launch hands the started process the foreground first, so a case first in its run or soaked alone comes forward (design recorded in src/Winwright/Windowing/ForegroundLock.cs).

    WW549 · da0d785
  4. winwright
    A case cannot claim a window covers its monitor, so a full-screen mode that leaves a border or a pixel uncovered passes

    A step claims fillsMonitor: its element covers the whole monitor it is on, so a full screen leaving a border fails naming both rectangles and each edge left uncovered in pixels.

    WW548 · 7c853f3
  5. winwright
    Typing into a terminal substitutes the last character for an earlier one about once a send in fifty, unrepaired

    Typing into a terminal repairs the last-character substitution before Enter, proven by quickshell's tab case passing 300 of 300 guest runs on 1.1.2, the repair firing on two.

    WW545 · d87820d
  6. polyweave
    A flattened sphere creases at its rim whatever its steps

    A sphere's rings and meridians follow its normal, so a squashed or oval sphere reads no crease at its rim at the steps it declares (design recorded in src/polyweave/layers/geometry/solid.py).

    PW565 · 0b75d59
  7. polyweave
    A bevelled or carved piece loses its colours, and every built mesh is written faceted

    A solve keeps what each face wears, and a document's smooth welds and shades a mesh smooth by angle.

    PW564 · fb8b87a
  8. polyweave
    A bevel in a fresh process crashes with No module named bmesh

    A bevel loads Blender before bmesh, so a declaration with a bevel builds in a fresh process.

    PW563 · fb8b87a
  9. polyweave
    A sphere or torus declared with steps crashes the build with a TypeError

    Every primitive takes steps as a whole number, so a sphere or torus declared with steps builds.

    PW562 · fb8b87a
  10. polyweave
    A loop cut by sound.loop always opens on the track's first sample, even a dying beat

    sound.loop takes a start bar and rotates the loop to open on it, seamless still, and answers starts_at; Spinhold's intro now opens on bar 2, past the dying beat.

    PW561 · 1078fb1
  11. polyweave
    sound.loop fails an Ogg loop's seam that sound.measure reads as ordinary

    sound.loop judges its seam with sound.measure's seam_step and seam_flux under those names, and an encoded loop says how it read as cut (design recorded in src/polyweave/layers/sound/sound_loop.py).

    PW560 · 0f2969d
  12. polyweave
    A recorded track cannot become an editable music.toml score

    music.from_audio hears a recording's stems as notes and hits, drafts a valid score, and answers the calls that sit it by the original (design recorded in src/polyweave/layers/sound/music_heard.py).

    PW559 · 277c640
  13. polyweave
    A voice over a recorded music track cannot be removed through polyweave

    sound.stems splits a recorded track with Demucs into vocals and no_vocals, or four stems, each recorded and saying where it plays against the mix; Spinhold's intro lost its spoken tag through it.

    PW558 · 64dd88e
  14. polyweave
    the players kit copies no ui_accept or ui_cancel per player, so one player's menu cannot answer their own A and B alone

    Each joined player gets their own copy of the menu actions on their pad, and the first player's answer their pad alone once two play (design recorded in docs/specs/kit.md).

    PW557 · eea6655
  15. polyweave
    a pad whose name hides its maker is named in the wrong buttons, and the player cannot say which family it is

    A player chooses a pad's button names on the remap screen, kept by its name; every prompt and menu follows the choice at once (design recorded in docs/specs/kit.md).

    PW556 · af68216
  16. polyweave
    the remap kit offers no ready button maps, so a player changes a scheme only by rebinding each action

    Both remap screens carry a Map row: maps stepped and previewed on the pad, tried on a countdown and kept with a second press (design recorded in docs/specs/kit.md).

    PW555 · 7e65557
  17. polyweave
    a keyed timeline of a scene's own properties cannot be declared and built, only skeletal motion and camera shots

    clip.timeline builds a declared *.timeline.toml of keyed properties and marks into an AnimationPlayer scene the game plays or seeks (design recorded in docs/specs/motion.md).

    PW554 · eedbbaa
  18. polyweave
    game.open passes no arguments to the game, so a state the game opens by a flag is reached by calling private methods

    game.open passes the game's own flags, kept in its flows, and clip.shots opens the game with them itself: a world's cutscene is one call (design recorded in docs/specs/driving.md).

    PW553 · 7841a56
  19. polyweave
    the prompts kit's follow keeps a lambda whose node was freed, and the next refresh calls it on a null instance

    refresh asks each follower again just before calling it, so a screen freed mid-refresh is let go (design superseded: the freeing was mid-refresh) (design recorded in docs/specs/kit.md).

    PW552 · 89b7913
  20. polyweave
    a help line's {action} marks fill only as words; bbcode reads another mark, ignores the player and pad, and drops {move}

    fill_bbcode draws a help row's own {action} and {move} marks as each player's icons, words where none, and watch_bbcode keeps it filled (design recorded in docs/specs/kit.md).

    PW551 · 99fecd7
  21. polyweave
    a kit's copied records name the artefact inside polyweave's tree, so provenance.verify reports every kit icon missing

    kit.install and kit.update rewrite each copied record to name the file where it landed in the game, so verify finds every kit icon (design recorded in docs/specs/kit.md).

    PW550 · ba6bd79
  22. polyweave
    an accepted take cannot be placed at the path the game loads, so it is copied by hand with a record naming its old path

    verdict.place puts an accepted member where the game loads it, with a record naming that path, the take and the verdict (design recorded in docs/specs/acceptance-spec.md).

    PW549 · df1ac7f
  23. polyweave
    no measure reads a transparent picture's alpha edge, so a halo or a wide soft fringe round it passes every spec

    fringe_width, fringe_luma and fringe_delta_e read a transparent edge, so a spec holds a logo's outline free of a wide ramp or halo (design recorded in docs/specs/measurements.md).

    PW548 · 7fd4d4b
  24. polyweave
    a sitting of alternatives for one slot lets a person accept every one, with no way to pick just one

    A sitting family may be a pick of alternatives: the page asks which one, batch accept skips it, and voice.choose takes the pick from the answer (design recorded in docs/specs/acceptance-spec.md).

    PW547 · fa3d6fb
  25. polyweave
    a dialogue kit proof ends with no signal under the full gate's load, so its broken-box case fails with nothing to read

    The dialogue proof times typing by summed frame time, not a wall clock read before frame one; a proof cut short names its last KIT STEP (design recorded in docs/specs/kit.md).

    PW546 · 245cb3e
  26. polyweave
    the prompts kit starts on the keyboard before any input, so a game launched with a pad in hand shows keys

    Before any input the prompts kit takes the first connected pad's family, the keyboard where none is, so a game needs no boot code to name the pad (design recorded in docs/specs/kit.md).

    PW545 · 00a45cb
  27. polyweave
    kit.install writes the remap kit's own file into polyweave.toml even where the game declares a STORE

    A kit may name the project constant that says where it keeps its file; install then writes the game's STORE file and section into [kit.remap] (design recorded in docs/specs/kit.md).

    PW544 · 89261b0
  28. polyweave
    loading an older bindings file logs an engine error for every action the player never rebound

    The store asks for each action's key before reading it, so a file naming only rebound actions loads with no engine error; the remap proof listens for one (design recorded in docs/specs/kit.md).

    PW543 · 4b38c83
  29. polyweave
    the drawn pad screen shows raw action names, unfilled help and works only on ui_accept and ui_cancel

    The pad screen reads each action's declared label, its help names the buttons through the prompts kit, and both screens work on a declared CONFIRM and BACK (design recorded in docs/specs/kit.md).

    PW542 · 29a08bc
  30. polyweave
    the remap screen says nothing when it listens and rebuilds its rows on each bind, so a host game loses focus

    The remap screen says listening and listened, answers is_listening, and repaints its rows in place, so a host game keeps focus after a bind (design recorded in docs/specs/kit.md).

    PW541 · b747585
  31. winwright
    A run's summary says "1 case that ran say what they catch", plural verb and pronoun on a single case

    A run's two catches lines agree with one case in every word, saying "1 case that ran says what it catches", and the tests assert the whole singular sentence.

    WW547 · c40adc6
  32. winwright
    A case's type step drops the resend count, so a repaired substitution traces exactly like a clean send

    A case's type step that WW249 had to resend stays green and its trace line names how many resends it took, so the fault rate can be read off an adopter's own runs.

    WW546 · b871ebe
  33. roadkeep
    no writing verb can be asked what it would write, so an agent probes a replace with a real write

    section amend --check runs every refusal and prints the prose as it would read, writing nothing, on the CLI and the served tool (design recorded in plugin/src/roadkeep/sections.py).

    RK1713 · b09b009
  34. roadkeep
    show refuses a deferred id and only names where it sits, so a paused line's section is read by grep

    show joins a paused line from the deferred store with its reason and the resume door, alone or among other ids; brief still refuses one (design recorded in plugin/src/roadkeep/showing.py).

    RK1712 · 4cbaae4
  35. roadkeep
    section add --role strategy refuses every anchor on a fresh init --strategy scaffold, and its remedy is the refused call

    An id project's prose takes a non-id top-level anchor before the first block, so a scaffolded strategy file opens (design recorded in plugin/src/roadkeep/sections.py).

    RK1711 · 2860ae7
  36. roadkeep
    non-goal list elides entries past twelve, and neither --json nor any flag prints the rest

    non-goal list --all prints every entry, --json always carries every lead and reason, and the elided count names the flag (design recorded in plugin/src/roadkeep/briefing.py).

    RK1710 · 52f6a01
  37. roadkeep
    anchors --next names no free top-level when a family is not one numbering

    anchors names each numbering's free top-level with its family count where they differ, and a trailing colon no longer reads as a namespace (design recorded in plugin/src/roadkeep/history.py).

    RK1709 · c4ffc54
  38. polyweave
    the remap screen rebinds on a store of its own, so co-op pads lose their narrowing and the shared store goes stale

    The remap screens bind on the shared store, which says changed, and the players kit follows it, so a rebind keeps each pad on its own actions (design recorded in docs/specs/kit.md).

    PW540 · 39c64f9
  39. polyweave
    the players kit's proof expects a pad seated on its first join press, so a game declaring AUTO_JOIN false fails it

    The players proof holds AUTO_JOIN on while it proves seating and puts the game's value back, so a game that answers its own joins holds.

    PW539 · 1f7de80
  40. polyweave
    the players kit's proof resets bindings through the game's declared store, wiping a player's own controls

    The players proof rebinds and resets a store of its own run, so installing the kit leaves a game's declared store and a player's controls untouched.

    PW538 · 1f7de80
  41. polyweave
    the remap kit's proof reads the screen's words in the game's language, so a pt-BR game with its own rows fails it

    The remap proof reads in a language of its own, set again after the game's autoloads, and holds in Spinhold on a pt-BR machine with its pt_BR rows.

    PW537 · 1337aaf
  42. polyweave
    a kit's older-file adoption is a fixed user:// path, so a game's tests overwrite kit fields to keep off the real file

    A relative ADOPTED file is read beside the options file, and adopted(folder) gets the saves folder, so a test's store adopts its seed (design recorded in docs/specs/kit.md).

    PW536 · 90ea7ac
  43. polyweave
    the options kit requires the menus and prompts kits, so a game wanting only the store ships 69 unused icons

    kit.install options without screen lands the settings store alone, with no menus or prompts, and kit.prove proves a kit whole and without each part (design recorded in docs/specs/kit.md).

    PW535 · 2d35cf6
  44. polyweave
    the saves kit's proof writes slots 1 and 2 by number, so a game declaring one slot fails it

    The saves proof runs its corrupt, migration, newer-build and already-played cases on the last slot a game declares, so a game keeping one save proves as it is.

    PW534 · a328c3f
  45. polyweave
    a cube's settled frame comes out as a permutation on some CPUs, so CI's cube test fails now and then

    A near tie between world axes goes to x, y, z order, so a cube settles to the same frame whatever rounding the CPU's BLAS kernel leaves.

    PW533 · dd99a18
  46. polyweave
    kit.prove proves each fixture under its fixed project name, so a run that left state in its user:// fails the next proof

    kit.prove copies each fixture under a name of its run and removes that user:// after, so a marker left under the fixture's own name fails no proof.

    PW532 · cbe3ba8
  47. polyweave
    [layers] on proposed for a project leaves off a layer its records and *.camera.toml show it using

    init and migrate turn on a layer whose record kind the tree's provenance carries, and motion for a *.camera.toml, so Spinhold's camera clip stays served.

    PW531 · cf3a5f5
  48. polyweave
    migrate leaves the imports it rewrote out of sorted order, so an adopter's import lint fails until they fix it by hand

    migrate puts each run of polyweave imports it rewrote in isort's order, so Cottony's fixture passes its import lint once migrated (design recorded in docs/specs/adoption.md).

    PW530 · 07cfe52
  49. polyweave
    A polyweave.toml holding [voxels] reads as a geometry declaration, so a build of the tree refuses the project file

    A project's polyweave.toml is never read as a shape, so a [voxels] budget in it no longer breaks build_all, the notice's count or init's geometry signal.

    PW529 · 7329797
  50. polyweave
    the crash kit's mid-run kill races the game under load, so the full gate fails it and a lone run passes

    The kill waits for the game's own first log line, and each crash test proves under a name of its own; the file holds 10 of 10 on 12 workers, from 1 of 10.

    PW525 · 565aae2
  51. polyweave
    a Blender render test's xdist worker crashes under the full gate and passes when the file runs alone

    Measured at 1 crash in about 180 gate runs and 0 in ten render runs on 12 workers; the gate now names a crashed worker's test and keeps Blender's crash log (design recorded in tools/gate.py).

    PW524 · d238113
  52. polyweave
    the saves kit's proof writes to one fixed user:// folder, so two proofs at once empty each other's slots

    The saves, options, remap and launch proofs each write under user:// paths of their own run, so two proofs at once no longer empty each other's files.

    PW523 · 39f6092
  53. polyweave
    Spinhold still runs on the flat package, so the 443 records and 30 verdicts most at stake in the break are unchecked

    Spinhold runs on the layered package with its four reads identical, so 443 records and every verdict crossed; tools fell 201 to 183 (design recorded in docs/specs/adoption.md).

    PW522 · 96136f7
  54. polyweave
    Cottony still runs on the flat package and serves every layer, so the block is unproven on its first consumer

    Cottony runs on the layered package: its reads answer as before and its tools/list fell from 201 tools, 130,085 chars, to 181 and 114,489 (design recorded in docs/specs/adoption.md).

    PW521 · 8d3465f
  55. polyweave
    A project's polyweave.toml and the Python importing polyweave break on the new layout, with nothing to carry them over

    polyweave migrate rewrites a project's imports from a data table and adds [layers] on; Cottony and Spinhold copies map whole (design recorded in docs/specs/adoption.md).

    PW520 · 293b350
  56. polyweave
    An extension would hide the gap it fills, so a measure two games both wrote never becomes vocabulary

    Every extension carries why, project.adoption lists it as not_yet_polyweave with its use and first day, and the brief names it (design recorded in docs/specs/project-config.md).

    PW519 · bd552a6
  57. polyweave
    a camera move cannot be declared as a clip or played by the game, so a cutscene's shots are numbers in the project

    clip.shots frames each shot of a camera clip in the running game and lays them out to judge; Spinhold's five opening shots wait for review (design recorded in docs/specs/motion.md).

    PW372 · 005f78d
  58. polyweave
    Cottony keeps its own settings and save code where the kits provide them

    Cottony runs on the options and saves kits with its own files gone, and a save the last release wrote loads with nothing lost (Cottony 20f98c4).

    PW371 · 98ea6d5
  59. polyweave
    Starship keeps its own bindings and co-op code after the input kits were extracted from it

    Spinhold runs on the prompts, remap and players kits with its own input code gone, and a player's rebinds load unchanged (Spinhold 798845a).

    PW370 · 4c6e773
  60. winwright
    A case cannot press Alt alone, so a menu bar shown the Windows way by an Alt tap has no case

    A press of a modifier alone, such as Alt, is a tap sent down and up with nothing between, so a classic menu bar shown by an Alt tap has a case.

    WW544 · 01119e1
  61. polyweave
    Training a Scenario model and drawing from it each speak to Scenario from the picture layer

    Scenario is an adapter that style.train and a trained model's pictures buy through, with training's charge owed by buy() (design recorded in src/polyweave/services/scenario.py).

    PW528 · 528427b
  62. polyweave
    The picture operations each send their own requests to Ideogram, and a charge sent but never delivered goes uncounted

    Ideogram is an adapter the picture operations buy through, and buy() owes a charge from submit until it is captured (design recorded in src/polyweave/services/service.py).

    PW527 · 4271311
  63. polyweave
    Meshy, Tripo and Rodin each carry their own purchase flow inside the mesh domain

    Meshy, Tripo and Rodin are adapters under services/, bought through one buy() that alone allows and captures; mesh.buy speaks to no service (design recorded in src/polyweave/services/service.py).

    PW526 · b661a26
  64. polyweave
    A project's own generator can run as a job but is no operation, so no agent finds it, describes it or searches over it

    A project's generator under [extend.operations] is a described tool and command, runs apart or as a job, is swept and recorded (design recorded in docs/specs/project-config.md).

    PW518 · ced4e89
  65. polyweave
    A project cannot add a measure of its own, so a look only its game needs is a fork, a side script or a PW line

    A project declares a measure under [extend.measures]; a spec bounds it as x.<project>.<name>, it runs apart, is recorded and goes stale (design recorded in docs/specs/measurements.md).

    PW517 · 6e0c946
  66. polyweave
    Each paid service's HTTP client is written inside the domain that buys from it, so a new service copies a client

    Every paid provider is an adapter under services/, and one buy() alone allows, owes and captures; no layer spends by itself (design recorded in src/polyweave/services/service.py).

    PW516 · efccc0c
  67. polyweave
    A material's finish and fuzz are special-cased in the bake and in write, so a toon or metal look is a third case

    The bake, the mesh writer and the review iterate over looks, so a new look is one module reaching both targets (design recorded in src/polyweave/layers/geometry/looks/__init__.py).

    PW515 · c73bce7
  68. polyweave
    Voxels are a branch inside build.write and a voxel_* module beside each mesh one, so a third form has no place to go

    build.write hands a declaration to the representation its table claims; a third is one new module (design recorded in src/polyweave/layers/geometry/representations/__init__.py).

    PW514 · 6472f5c
  69. polyweave
    A geometry op is spread over BUILDS, FIELDS, review's elif chain and voxels' bounds and TRACED, four places per op

    Each geometry op is one module under ops/ and BUILDS, FIELDS, TRACED, the voxel chains and the review words are read off them (design recorded in docs/specs/geometry.md).

    PW513 · d7f38ef
  70. polyweave
    Nothing proves a new layer can be added without editing the kernel, so the block's whole claim goes unchecked

    A tone layer added from a fixture folder reaches every surface with no core file naming it, and each broken seam fails the proof (design recorded in tests/test_a_whole_layer.py).

    PW512 · 6c28a5c
  71. polyweave
    census.py classifies every public function in the package in one map, so each new helper module edits it

    Each layer classifies its own helpers in its layer.py, a module named _x is internal by name, and the census keeps only the core's (design recorded in src/polyweave/surface/census.py).

    PW511 · 333de7c
  72. polyweave
    The tool list's budget has been raised about 30 times in a row, so it stops no growth and names no layer that grew

    Each layer's tools are held to a figure in its own layer.py and a session to SESSION_BUDGET, which capabilities reports (design recorded in src/polyweave/surface/server.py).

    PW510 · 3c4dcaa
  73. polyweave
    A project gets all 200 operations as tools whatever it makes, so a 2D game's agent loads Blender, voxel and rig tools

    project.init proposes [layers] on from the tree and says why each layer is on or off, so a new project gets only what it uses (design recorded in docs/specs/project-config.md).

    PW509 · af80075
  74. polyweave
    Every table polyweave.toml may hold is declared in one config.py, so a layer's settings are kernel code

    Each layer's settings.py declares its polyweave.toml tables and the kernel's schema is the union, so config.py holds only shared tables (design recorded in docs/specs/project-config.md).

    PW508 · 7459a9a
  75. polyweave
    Every error code lives in one 2,611-line codes.py, touched by 61 of the last 200 commits to the package

    Nine layers hold their own codes.py and the kernel's table is the union, so the kernel file halved to the kernel and loop codes (design recorded in src/polyweave/kernel/codes.py).

    PW507 · c0cc5d2
  76. polyweave
    A kernel or loop module can import a layer and both gates still pass, so the direction the layout states is a hope

    Each layer declares the layers it uses and test_layering refuses an undeclared edge or a cycle, so the direction holds layer to layer (design recorded in tests/test_layering.py).

    PW506 · 5d832a7
  77. polyweave
    asset.brief, the review page and loop.report each import every medium they describe, so one new layer edits all three

    A layer adds its section to asset.brief, loop.report and the review page as named parts, so those three import no layer (design recorded in src/polyweave/kernel/layer.py).

    PW505 · a500c98
  78. polyweave
    search.sweep can only draw a sample through render.bake, so picture, engine and preset each wrote a search of their own

    A fifth medium declares a producer for search.sweep instead of writing a search (design superseded: picture.fit is no search; engine's two enumerate grids).

    PW504 · 935f16e
  79. polyweave
    accept.check reaches into sound, vfx, video, flashes, render and reference_concept to measure a subject

    A layer's Subject measures its own file for accept.check, contrast is the engine's picture measure, and accept and measure import no layer (design recorded in src/polyweave/kernel/layer.py).

    PW503 · e83130c
  80. polyweave
    provenance names words, world, kits and driving and keeps a closed KINDS tuple, so the record format knows every layer

    Record kinds, each role's staleness check, what ships and outdated's sections come from layer.py, so provenance imports none (design recorded in src/polyweave/kernel/layer.py).

    PW502 · 713a0b1
  81. polyweave
    A verdict's answer branches on each domain by name, so every layer a person judges edits verdict.py

    verdict.judge hands each member to the one judge its layer declares and reports what it kept under that judge's name, so verdict imports no layer (design recorded in src/polyweave/kernel/layer.py).

    PW501 · bbb5a98
  82. polyweave
    A layer exists only as a line in a hand-kept MODULES tuple, so nothing reads what it contributes or what it needs

    Each layer declares itself in a layer.py found by walking layers/, and describe and capabilities say each one's layer and state (design recorded in src/polyweave/kernel/layer.py).

    PW500 · 3ac13b0
  83. polyweave
    The package's 128 modules sit flat, so nothing says which are shared core and which belong to one layer

    The package is now kernel, loop, a layer per medium, services and surface, so an import path says which way a dependency runs (design recorded in src/polyweave/__init__.py).

    PW499 · 957aba2
  84. polyweave
    union joins parts at a hard crease, so a body whose parts flow into each other, as moulded plastic, cannot be declared

    A blend op joins primitives by a fillet of radius where they meet, a round union of their fields meshed closed, each face in its part's material (design recorded in geometry.md).

    PW498 · 5a2fb91
  85. polyweave
    nothing measures how round a model's edges are, so a hard-edged piece in a soft-toy style reaches a person's sitting

    A spec bounds sharp_edge_share and edge_radius_min off a .glb at a stated crease, no render, and a refusal names where the hard edges are (design recorded in acceptance-spec.md).

    PW497 · 1e3c758
  86. polyweave
    a mesh's squash and jiggle when struck cannot be declared, so a toy that wobbles on a hit is a game's own vertex shader

    A vfx kind = "struck" declares give, wobble, settle and falloff, built as a shader and a strike() script, filmed struck and measured for a spec (design recorded in vfx.md).

    PW496 · 58777fc
  87. polyweave
    a material declares only colour and roughness, so a glossy plastic with clear coat, sheen and soft rim cannot be asked

    A material takes coat, sheen, rim and subsurface, derived onto the Principled BSDF the bake builds, and reads back as "clear-coated, glossy" (design recorded in geometry.md).

    PW494 · 08a328b
  88. polyweave
    a solid round on every edge, a capsule or a soft box, has no op, since plate rounds only its outline's corners in XY

    capsule and rounded_box are primitives, closed meshes the voxel test agrees with, and bevel takes segments and a round or chamfer profile (design recorded in geometry.md).

    PW493 · 4c4a113
  89. polyweave
    inflate swells one face of a drawing, so a body puffed round on both sides, as an inflatable toy is, cannot be declared

    A drawing inflated with sides = 2 is a closed pillow, its rim on the outline and round: 79° across it against a mirrored relief's 124° (design recorded in geometry.md).

    PW492 · 0b81e5d
  90. polyweave
    four source files cite a line through a mis-encoded section sign, so a search for that citation misses them

    The four signs are repaired, and a test fails on any source holding the twice-read sign or a byte-order mark, naming its file and line.

    PW491 · 20e48ad
  91. polyweave
    panel.capture films a panel only at its declared size, so how its shader draws it grown is never seen

    panel.capture takes sizes and films each state at each, so a test holds the stitch pitch at twice the width (design recorded in panel.md).

    PW490 · 56726bb
  92. polyweave
    a capture whose shader failed to compile answers ok, so panel.capture hands back stills of the bare white rect

    A shader that won't compile now fails the run as script-error at the shader's line, so panel.capture refuses the film as compose.unfilmed (design recorded in engine.md).

    PW489 · fd19ed9
  93. polyweave
    a capture warns same settings, different picture when only a sprite the scene draws changed, as if it were noise

    A recorded capture runs verbose and reads Godot 4's load lines, so a re-take whose sprite changed names that sprite, not noise (design recorded in docs/specs/engine.md).

    PW488 · a83c8d1
  94. polyweave
    engine.sweep keeps only the matched text of a hit, and a run its frame budget ended reads as one that never printed

    engine.sweep keeps each hit's whole printed line, and a run whose count reached the budget answers budget, not no-signal (design recorded in docs/specs/engine.md).

    PW487 · 66a4cea
  95. polyweave
    a sitting member that failed a bound shows no accept, so a person who likes the look cannot see how to approve it

    On a card that failed a bound, number reads as Accept and move the bound, and the card says why there is no plain Accept (design recorded in docs/specs/acceptance-spec.md).

    PW486 · f48c1a2
  96. winwright
    A staged fixture file keeps its source's modification time, so a rule about how recent a file is fails a day later

    A staged copy is written now, or as old as a file's modified age says, so a rule about how recent a file is holds the day after the fixture.

    WW543 · f19b711
  97. winwright
    A step's with cannot name the project's root, so a case types a checkout's path whole and is red on any other desk

    A step's with fills {root}, {root/} and {files}, and fixtures fill {root} where {files} was, so a case reaches its checkout on any desk.

    WW542 · f19b711
  98. winwright
    A case cannot add an item to a selection or click with Ctrl or Shift held, so a list choosing several has no case

    A click takes holding ctrl or shift, sent in one batch with the click, so a list answering only the gesture adds a row or a range.

    WW540 · f19b711
  99. polyweave
    the prompts kit's proof fails in a game running in another language, reading its translated key names as wrong

    The prompts proof reads names in a locale of its own and hands the game's back, so a pt-BR game holds, and a failure names both languages (design recorded in docs/specs/kit.md).

    PW485 · 03707eb
  100. polyweave
    the input kits fail to parse in a game that has its own class named Bindings, Spinhold among them

    Every kit script names another by a _Pw constant, kit.prove fixtures declare the bare names as global classes, and a failed proof says where it broke (design recorded in docs/specs/kit.md).

    PW484 · ee8a696
  101. polyweave
    measure.take reports luma only at p1, p50 and p99, so a spread between other percentiles cannot be measured

    A distribution answers any percentile and a spread over the median, and a region may be a colour worn in, so a painting is measured by object (design recorded in docs/specs/measurements.md).

    PW483 · 43dc115
  102. polyweave
    voice.design sends a sample shorter than the service accepts and quote cannot price it from the entity

    voice.design refuses a sample under the service's least before the call, and purchase.quote prices a voice call from its sample or the entity's own (design recorded in docs/specs/world.md).

    PW482 · eaf1b29
  103. polyweave
    verdict.sitting crashes on an old picture named HEAD:<path>, a form sound.sitting reads from git

    verdict.sitting and verdict.sheet check a committed old picture out of git, say where it came from, and refuse a missing picture by name (design recorded in docs/specs/acceptance-spec.md).

    PW481 · 9e49f03
  104. polyweave
    a panel cannot declare a lit bevel, an inner hairline, a moving sweep, inset brackets or a glow by state

    A panel declares a lit bevel, a hairline, set-in brackets, a placed tick, a sweep, and states as glow, lift and drain, with a tint set per instance (design recorded in docs/specs/panel.md).

    PW479 · 14e7430
  105. polyweave
    picture.vector answers a layer that drew nothing like any other, so an empty layer is found only by opening it

    picture.vector refuses a layer that drew nothing, an id a selector or reference shares between elements, and a filter or mask on the wrong kind (design recorded in docs/specs/store.md).

    PW478 · 65fdf63
  106. polyweave
    a capture cannot be held to the concept painting it copies, region by region, at another size and aspect

    reference.concept measures, places and sheets each region of a capture against its painting, and a spec bounds any of its numbers as a predicate (design recorded in docs/specs/measurements.md).

    PW477 · f5a7efb
  107. polyweave
    picture.vector draws one still, so a vector layer that loops through an attribute needs a hand-made source per frame

    picture.vector sweeps one attribute over frames from one source, each frame recorded with the sweep, packs a strip, and can skip the whole (design recorded in docs/specs/store.md).

    PW476 · 6347c05
  108. polyweave
    port.run names a failed predicate but not what it measured, so the margin takes a second accept.check by hand

    A failed port.run member carries missed: each failed predicate's value, bound, limit and how far past, and the render it was measured on (design recorded in docs/specs/acceptance-spec.md).

    PW475 · 99f5a0e
  109. polyweave
    a panel cannot carry a sewn seam, so a craft-styled game draws its stitches in its own code

    A seam sews a panel on build and shader, and picture.sew lays it inside a picture's worn silhouette, its shadow and holes darkened from the picture beneath (design recorded in docs/specs/panel.md).

    PW474 · 4227a68
  110. polyweave
    a panel's fill is one flat colour, so a felt or candy body with light, shade and grain cannot be declared

    A panel's fill takes a material of declared numbers, lit top to foot in its own hue with core, gloss, vivid, grain and weave, same on build and shader (design recorded in docs/specs/panel.md).

    PW473 · 361e1e4
  111. polyweave
    a panel's outline is a box with cut corners, so a pill, a rounded card or a lobed banner cannot be declared

    A panel is cut, rounded, a pill or any geometry outline; a pill stretches lengthwise, an outline builds at its size or on the shader at any size (design recorded in docs/specs/panel.md).

    PW472 · 188f3aa
  112. polyweave
    engine.run_declared blames the frame budget when the script exited 1 on its own after printing why it failed

    A script that exits non-zero on its own is reported with its exit code and its last three lines after the engine banner; the frame-budget hint is kept for silent runs.

    PW471 · 1319367
  113. winwright
    A catches that is the case name with a word added passes WW537 and runs unnamed, so the claim diff reads the name

    A run names the cases whose catches begins or ends with their own name, quoting the claim and refusing nothing, so a pasted title past WW537 is seen.

    WW541 · af968ff
  114. winwright
    A case cannot claim an element is drawn inside another, so a control clipped or laid out empty passes every case

    A step claims within, its element drawn inside a second locator's and not empty, failing with both rectangles, so a control clipped or laid out empty has a case.

    WW539 · dcd5b7b
  115. winwright
    A case cannot click with the middle or right button, so a tab closed by a middle click has no case

    A click names its button, middle or right beside the default left, in its step and its rendered name, so a tab closed by a middle click has a case.

    WW538 · 31abf0f
  116. winwright
    A case whose catches is only its own name again loads, so the claim diff between runs turns back into a diff of names

    A catches that only repeats the case's own name, folded for case, spacing and punctuation, is refused where it is written, so the claim diff stays a diff of claims.

    WW537 · f99f58b
  117. winwright
    A fixture cannot open the window a drop lands in, so a drop onto Explorer needs code outside the case

    A fixture's opens puts an Explorer folder beside the window under test and closes it with the case, so a drop onto Explorer needs no code outside the case.

    WW536 · 953220b
  118. winwright
    A case cannot read a file on disk, so a drop onto Explorer cannot be checked by the case that made it

    A step naming a file takes read and claims sameBytesAs, waited for over the resolve timeout, so a drop onto Explorer is checked byte for byte by the case.

    WW535 · 953220b
  119. polyweave
    nothing exports a pack and lists what landed in it, so a project parses Godot's pack table itself

    game.pack exports a preset as a pack and lists its files, imports mapped to sources, so Cottony's export check parses no pack itself (design recorded in docs/specs/engine.md).

    PW470 · fcf8ec2
  120. polyweave
    nothing boots a game's main scene and reads its shutdown, so a project's boot check starts Godot itself

    game.boot boots a game's main scene and reads its shutdown against the leak [engine] leaks forgives, so Cottony's boot check starts no Godot itself (design recorded in docs/specs/engine.md).

    PW469 · eeb465c
  121. polyweave
    a mesh with two equal extents gets whatever frame the machine's SVD returns, so its orientation differs by CPU

    A tied subspace takes the mesh's own axes, so a cube or lathe-turned mesh gets one frame on every machine and a cube's ambiguity is reported on CI too.

    PW468 · 4a5b659
  122. polyweave
    a game's engine scripts and the line each prints are a table in a Python driver the game writes itself

    A game declares its engine runs as [run.<name>] and engine.run_declared runs them, so Cottony's perf driver is gone for a table in its config (design recorded in docs/specs/engine.md).

    PW467 · 4a22e4b
  123. polyweave
    Cottony's tests, boot check and export check still start Godot through subprocess, each with its own lookup

    No tool in Cottony starts Godot itself: its tests, boot check and export check run through game.test, game.boot and game.pack.

    PW466 · fcf8ec2
  124. polyweave
    an accept on the review page never reaches the loop ledger, so loop.pending reads an accepted family as still waiting

    A page answer on a sitting naming its ledger asset is a ledger verdict, and a family run's verdict marks the member it names judged (design recorded in docs/specs/adoption.md).

    PW465 · f6d6a1f
  125. polyweave
    sound.sitting takes no about, so a sound sitting cannot say what changed or what to listen for

    sound.sitting takes about as verdict.sitting does, kept under the summary, so a sound sitting says what changed and what to listen for (design recorded in docs/specs/acceptance-spec.md).

    PW464 · 001bc43
  126. polyweave
    a review server that sees polyweave changed refuses the answer, and only the agent that started it can restart it

    A review server on old code starts a fresh one on its port and the page resends, so the answer lands with no restart by hand (design recorded in docs/specs/acceptance-spec.md).

    PW463 · 3bf7467
  127. polyweave
    scrub reads a painted mark as darker in luma only, so the hammer's soft purple seam on pink survives it

    The scrub reads a mark as a darker shade of its ground's hue in Lab too, at a reach that follows the sheet (design in docs/specs/fetching.md).

    PW462 · 6fa44b9
  128. polyweave
    a family search hands back a passing rig on every range's edge while one inside them has three times the headroom

    Each pass tries its window's middle first, so a rig inside the ranges wins on headroom, and a pass on an edge says so (design recorded in docs/specs/acceptance-spec.md).

    PW461 · 942ea69
  129. polyweave
    the review page lets a person accept a family whose spec fails, and the bound stays, so the bake refuses it

    A failing card offers adjust-the-bound in place of accept, and accept-all skips it, so a yes on the page moves the bound the bake checks (design recorded in docs/specs/acceptance-spec.md).

    PW460 · 507ea33
  130. polyweave
    the review page opens a sitting only by a click, so no URL shows the agent or the owner one sitting

    verdict.sitting answers the address the page opens a sitting at, and review prints a link to each one waiting, so a screenshot lands on it (design recorded in docs/specs/acceptance-spec.md).

    PW459 · db2628c
  131. polyweave
    port.run builds a member's declaration beside the declaration, so in a game's tree the engine imports the mesh

    port.run builds a declared member into the work area, or the folder its mesh key names, so a port never writes into the engine's import tree (design recorded in docs/specs/adoption.md).

    PW458 · 4a9263f
  132. polyweave
    verdict.judge takes any sentence its caller passes as the person's, so an agent can write the verdict on its own work

    A tool's accept lands only with the code the review page shows for the sitting, so an agent cannot accept its own look (design recorded in docs/specs/acceptance-spec.md).

    PW443 · 4732519
  133. polyweave
    Cottony still makes its audio outside polyweave

    Cottony's effects render through polyweave as General MIDI scores held to specs, its music loops by sound.loop, both accepted by the owner (design in docs/specs/music.md).

    PW192 · ba76f97
  134. polyweave
    the two friends, their lean frames and the mascot take eleven constants apiece and nothing declares one

    The friends, their lean frames and the mascot bake through polyweave, the face drawn as a pass, accepted by the owner (design in docs/specs/adoption.md).

    PW81 · b33ab43
  135. polyweave
    the three booster objects each needed a scrub, a roll and a fill found by hand after the service returned them

    The boosters bake through polyweave, the fetched two ingested against their drawings and scrubbed clean of painted dashes, accepted by the owner (design in docs/specs/adoption.md).

    PW80 · 6fa44b9
  136. polyweave
    the three brand marks are exposed by a hand-found light and nothing states what the type should read as

    The brand marks bake through polyweave from their blends, held to today's sprites and to letter edges as crisp, which the owner accepted (design in docs/specs/adoption.md).

    PW79 · 4990bbc
  137. polyweave
    the two trays are framed by a world rectangle written out per asset so the game's grid lands on it

    Both trays bake through polyweave from their declarations, framed by the game's numbers, one rig each, on specs the owner accepted (design in docs/specs/adoption.md).

    PW78 · d6964a8
  138. polyweave
    nothing says how much of Cottony still does its own version of what the plugin does

    project.adoption reads a project's code for the four surfaces polyweave owns, and Cottony's CI fails on a file doing one it keeps with no reason (design recorded in docs/specs/project-config.md).

    PW59 · 49d7ed9
  139. polyweave
    twelve GDScript runners in Cottony each start Godot their own way, and a settings mismatch is silent

    All twelve of Cottony's GDScript runners start through polyweave, the seven perf scripts from tools/run_perf.py, and the board shot records the settings it was taken in.

    PW56 · a503450
  140. polyweave
    Cottony lights twelve models through fourteen constants of its own, and the search never sees one of them

    Every model Cottony's rig lit bakes through polyweave against its own spec, family by family from PW76 to PW81, and bake_model.py's MODELS is empty (design recorded in docs/specs/adoption.md).

    PW53 · 7d0109f
  141. winwright
    Two runners driving one guest VM interleave their windows, and neither says another run holds the desk

    A guest run claims the desk through a host mutex a second runner waits on and names, and a foreground lost to a process no case started says so (design recorded in README.md).

    WW534 · 6d81913
  142. winwright
    A case renamed and a claim no case makes any more read alike between runs, so a lost claim is one rename among many

    A run keeps each case's catches by its name, so a rename that kept its claim holds and a claim no case makes is named lost (design recorded in src/Winwright/Scenarios/RanBefore.cs).

    WW533 · 0239471
  143. winwright
    A case that ran last run and not this one goes unnoticed while the total holds, so a swap reads green

    With lastRun declared, a run names the cases that appeared and vanished since the last run over its selection (design recorded in src/Winwright/Scenarios/RanBefore.cs).

    WW532 · 81f9b84
  144. winwright
    A process that outlived its case is named by pid alone, never by the case that launched it

    A process that outlived its case, or left early, is named with the case it was launched for and whether that launch was lent, so a survivor in a long run can be traced.

    WW531 · 58d0fc7
  145. winwright
    A drag can only be released over an element of the window it started in, so a drop onto Explorer has no case

    A drag step with "toDesktop": true looks its to up from the desktop, so a case can drop onto another window, such as an Explorer folder (design recorded in README.md).

    WW530 · f7631f8
  146. polyweave
    a purchase ledger kept as a table by name reads as its bare names, so every total over it is wrong or crashes

    purchase.ledger reads a lock keyed by name as adopted entries with their credits, refuses any other shape, and refuses to write the lock (design recorded in docs/specs/adoption.md).

    PW457 · 75bf858
  147. polyweave
    provenance.generated cannot tell what a Godot build ships, so it counts excluded files and buries art among code

    Without paths a Godot project's provenance.generated reads what its export preset ships, and unrecorded lists only media apart from code (design recorded in docs/specs/provenance.md).

    PW455 · 5b752a7
  148. polyweave
    provenance.generated leaves an older purchase's service unnamed, so a disclosure cannot say which generator made a file

    provenance.generated reads an unnamed purchase's service off its ledger entry, task id or folder, and else answers null with a fix (design recorded in docs/specs/provenance.md).

    PW454 · 3ec1300
  149. polyweave
    picture.vector draws an SVG with live text as a PNG with no letters, and answers as if nothing were lost

    picture.vector and store.capsules outline live text in its resolved font before ThorVG draws, record the font, and refuse a run they cannot outline (design recorded in docs/specs/store.md).

    PW453 · 11d1e9a
  150. polyweave
    a canon holds approved pictures only, so a new 3D enemy is never checked against the meshes already approved beside it

    A .glb joins a canon by verdict, and style.drift holds it to the family's meshes through renders at its rig, naming the nearest (design recorded in docs/specs/project-config.md).

    PW451 · db05a64