What every product 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.
- winwrightWW551 · e826dc4A 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). - winwrightWW550 · e6c2602A 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). - winwrightWW549 · da0d785A 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). - winwrightWW548 · 7c853f3A 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.
- winwrightWW545 · d87820dTyping 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.
- QuickshellQS369 · 7d4fcf1The UI cases still carry a synthesised-input workaround for a foreground winwright 1.1.3 now takes itself
The UI cases run on winwright 1.1.3, which takes the foreground at launch, so the nudge is gone and the tab case soaked alone passed 20 of 20.
- QuickshellQS368 · 00a82b3Winwright 1.1.2's repair of the tab case's typed substitution is unproven, so winwright's WW545 stays blocked
The tab case passed 300 of 300 guest runs on winwright 1.1.2, the repair firing on two; run-tests-vm -Soak repeats any one case on one build.
- polyweavePW565 · 0b75d59A 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). - polyweavePW564 · fb8b87aA 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.
- polyweavePW563 · fb8b87aA 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.
- polyweavePW562 · fb8b87aA 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.
- polyweavePW561 · 1078fb1A 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.
- polyweavePW560 · 0f2969dsound.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). - polyweavePW559 · 277c640A 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). - polyweavePW558 · 64dd88eA 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.
- polyweavePW557 · eea6655the 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). - polyweavePW556 · af68216a 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). - polyweavePW555 · 7e65557the 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). - polyweavePW554 · eedbbaaa 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). - polyweavePW553 · 7841a56game.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). - polyweavePW552 · 89b7913the 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). - polyweavePW551 · 99fecd7a 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). - polyweavePW550 · ba6bd79a 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). - polyweavePW549 · df1ac7fan 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). - polyweavePW548 · 7fd4d4bno 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). - polyweavePW547 · fa3d6fba 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). - polyweavePW546 · 245cb3ea 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). - polyweavePW545 · 00a45cbthe 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). - polyweavePW544 · 89261b0kit.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). - polyweavePW543 · 4b38c83loading 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). - polyweavePW542 · 29a08bcthe 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). - polyweavePW541 · b747585the 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). - winwrightWW547 · c40adc6A 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.
- winwrightWW546 · b871ebeA 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.
- roadkeepRK1713 · b09b009no 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). - roadkeepRK1712 · 4cbaae4show 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). - roadkeepRK1711 · 2860ae7section 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). - roadkeepRK1710 · 52f6a01non-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). - roadkeepRK1709 · c4ffc54anchors --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). - QuickshellQS367 · 6533dafIn a split tab every pane blinks its cursor and nothing marks which pane has the keyboard
Only the focused pane blinks; the others draw a steady hollow cursor and ask for no blink frames, and in a split tab the focused pane is framed in the accent.
- QuickshellQS366 · 7d14260A default window hides the menu bar until Alt is tapped, so a person who does not know the tap never finds it
A default window shows the menu bar under the title bar, menuBar now defaulting to Always; Alt and Hidden stay, and Block G's criterion names the menu bar as part of a default window.
- QuickshellQS365 · fe69a45The palette's Document sessions as PDF writes only the connected session instead of every saved one
Document all sessions as PDF, in the palette, writes every saved session whatever the sidebar selected; the sidebar's own menus still document the session, folder or rows chosen there.
- QuickshellQS364 · 26aee1eThe UI cases still work around three winwright gaps that 1.1.2 closed
The cases name the checkout by {root/}, stage the agent feed and request as written now, and bring the menu bar up by an Alt tap, all on winwright 1.1.2.
- QuickshellQS349 · d40640fChoosing several sidebar rows is proven by automation peers in a unit test, not by a UI case
A UI case Ctrl+clicks two sessions and a folder, Shift+clicks a range and reads each row chosen; the set they stand for is still read in process.
- QuickshellQS348 · 81b35c3That a tab's close cross is drawn inside its tab is proven by an in-process render, not by a UI case
A UI case retitles a tab short and then long and claims its close cross is drawn inside it and not empty, so QS312's geometry is proven in the guest.
- polyweavePW540 · 39c64f9the 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). - polyweavePW539 · 1f7de80the 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.
- polyweavePW538 · 1f7de80the 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.
- polyweavePW537 · 1337aafthe 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.
- polyweavePW536 · 90ea7aca 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). - polyweavePW535 · 2d35cf6the 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). - polyweavePW534 · a328c3fthe 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.
- polyweavePW533 · dd99a18a 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.
- polyweavePW532 · cbe3ba8kit.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.
- polyweavePW531 · cf3a5f5[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.
- polyweavePW530 · 07cfe52migrate 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). - polyweavePW529 · 7329797A 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.
- polyweavePW525 · 565aae2the 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.
- polyweavePW524 · d238113a 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). - polyweavePW523 · 39f6092the 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.
- polyweavePW522 · 96136f7Spinhold 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). - polyweavePW521 · 8d3465fCottony 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). - polyweavePW520 · 293b350A project's polyweave.toml and the Python importing polyweave break on the new layout, with nothing to carry them over
polyweave migraterewrites a project's imports from a data table and adds [layers] on; Cottony and Spinhold copies map whole (design recorded indocs/specs/adoption.md). - polyweavePW519 · bd552a6An 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). - polyweavePW372 · 005f78da 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). - polyweavePW371 · 98ea6d5Cottony 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).
- polyweavePW370 · 4c6e773Starship 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).
- winwrightWW544 · 01119e1A 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.
- polyweavePW528 · 528427bTraining 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). - polyweavePW527 · 4271311The 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). - polyweavePW526 · b661a26Meshy, 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). - polyweavePW518 · ced4e89A 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). - polyweavePW517 · 6e0c946A 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). - polyweavePW516 · efccc0cEach 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). - polyweavePW515 · c73bce7A 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). - polyweavePW514 · 6472f5cVoxels 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). - polyweavePW513 · d7f38efA 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). - polyweavePW512 · 6c28a5cNothing 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). - polyweavePW511 · 333de7ccensus.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). - polyweavePW510 · 3c4dcaaThe 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). - polyweavePW509 · af80075A 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). - polyweavePW508 · 7459a9aEvery 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). - polyweavePW507 · c0cc5d2Every 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). - polyweavePW506 · 5d832a7A 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). - polyweavePW505 · a500c98asset.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). - polyweavePW504 · 935f16esearch.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).
- polyweavePW503 · e83130caccept.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). - polyweavePW502 · 713a0b1provenance 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). - polyweavePW501 · bbb5a98A 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). - polyweavePW500 · 3ac13b0A 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). - polyweavePW499 · 957aba2The 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). - polyweavePW498 · 5a2fb91union 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). - polyweavePW497 · 1e3c758nothing 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). - polyweavePW496 · 58777fca 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). - polyweavePW494 · 08a328ba 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). - polyweavePW493 · 4c4a113a 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). - polyweavePW492 · 0b81e5dinflate 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). - polyweavePW491 · 20e48adfour 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.
- polyweavePW490 · 56726bbpanel.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). - polyweavePW489 · fd19ed9a 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). - polyweavePW488 · a83c8d1a 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). - polyweavePW487 · 66a4ceaengine.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). - polyweavePW486 · f48c1a2a 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). - winwrightWW543 · f19b711A 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.
- winwrightWW542 · f19b711A 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.
- winwrightWW540 · f19b711A 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.
- QuickshellQS363 · eebcb65The Claude Code plugin names quickshell.exe by its Windows path, which a Claude Code inside WSL2 cannot start
Install into WSL in Settings finds a distribution's claude and installs a plugin naming quickshell.exe by its /mnt path, measured answering tools/list.
- QuickshellQS361 · 7d14b26The tab-strip UI case's typed "first-tab-marker" once reached cmd as "first-tabrmarker"
Traced to winwright: both typos are WW310's last-character substitution, which its resend cannot repair on a terminal; filed there as WW545, nothing for the client.
- QuickshellQS359 · 8e0b91fAn agent account set up from the session menu cannot be removed from it
Remove the agent account from the session menu: the removal shown, run in the person's tab under their sudo, and the session's own identity and key forgotten.
- QuickshellQS358 · 7975315On native Windows nothing below the shell stops an agent's own script from opening SSH around the gateway
On Windows the wall is WSL2 with its sandbox and the Windows gateway as MCP server, measured; firewall rules by program or user lost (design recorded in
docs/design/agent-gateway/README.md). - QuickshellQS357 · a33b93fThe echo-delay pipeline test goes red in the guest when ConPTY prints under 300 KB/s for thirty seconds
The echo-delay test reads until a byte count or its patience, skips naming cmd's rate when too little printed, and still fails a parser that falls behind.
- QuickshellQS356 · 57990f5exec quotes every argument for a POSIX shell, so on a Windows server a word with a space or a quote arrives altered
On a Windows server exec goes through PowerShell to CreateProcess, quoted as Windows reads it back, so a space, quote, % or & arrives byte for byte.
- QuickshellQS354 · 894c751Every action is reached only by a hotkey or the palette, so a user who has not learned them cannot find a feature
An Alt tap shows a menu bar built from the palette's own bindings, every action under a heading with its keys; a default window still holds no menu.
- QuickshellQS353 · 4f69916A connected recent card on Home clips its New connection and Go to tab buttons when the window is not maximised
A connected recent card gives its when a row of its own and wraps Go to tab under New connection, so a restored window cuts neither button.
- QuickshellQS350 · 1255719Whether a narrowed bash pane's extra prompt line on a split is bash's or this client's reflow was never traced
Traced on the fixture's bash: it redraws its prompt in place with no line feed; the prompt moves down only by lines the client's reflow wraps, and shows once.
- QuickshellQS347 · 845c66aA middle click closing a tab is proven by routed events raised in a unit test, not by a UI case
UI cases in the guest middle-click a tab closed and right-click Close tabs to the right, now that winwright 1.1.1 names a click's button.
- QuickshellQS343 · 4b94970Wiring the gateway into Claude Code means hand-editing MCP config, hooks and sandbox rules, so few will
Settings offers a Claude Code plugin quickshell writes itself: the gateway, the hook and a skill installed in one answer, refused by a gateway of another version.
- QuickshellQS342 · bcae1bcAsking a local Claude Code about what a pane shows means copying the scrollback by hand into another window
Open Claude Code runs it in a local pane wired to the gateway and hook; Send to Claude types a pane's selection or screen into it under its session and tags.
- QuickshellQS341 · 9cc9facAn agent's key on a server is valid until someone removes it, so a key that leaks works for months
The agent signs in on a certificate quickshell signs for minutes per connection; its key alone and an expired certificate are refused by the server.
- QuickshellQS340 · 2b00401A client-side policy is advice the server never hears, and nothing helps set up an account that limits an agent there
Set up an agent account from the session menu: the exact script shown, run in the person's tab under their sudo, and the identity recorded on the session.
- QuickshellQS339 · 8c7f3e6An agent able to write files can rewrite the very policy that limits it, and grant itself whatever it wants
The hook keeps an agent's tools off its policy and approvals; a policy changed outside quickshell holds every call until accepted (design recorded in
docs/design/agent-gateway/README.md). - QuickshellQS338 · 9d004cbText an agent read from a server can steer its next command, and the policy treats that command as if nothing happened
After an agent reads server text, every change asks, even a granted one, until the person trusts it again in the palette (design recorded in
docs/design/agent-gateway/README.md). - QuickshellQS337 · 165ba39A call the policy says to ask about has nowhere to be asked, so the gateway can only allow or refuse it
An ask shows in a quickshell dialog, each call as its words with session, tags and diff; the answer binds to the batch hash, may grant (design recorded in
docs/design/agent-gateway/README.md). - QuickshellQS336 · 9758de9Every call an agent makes through the gateway is allowed, whatever the host and whatever the command
Each gateway call is judged first: a read runs, a mutation asks or is refused by tag level, and a grant or break-glass admits it (design recorded in
docs/design/agent-gateway/README.md). - QuickshellQS335 · 39fe5abWhat an agent runs on a server is invisible to the person until it reports back, if it reports at all
Each gateway run shows in quickshell as a read-only tab badged agent, every call and its result in it, behind the tab in use (design recorded in
docs/design/agent-gateway/README.md). - polyweavePW485 · 03707ebthe 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). - polyweavePW484 · ee8a696the 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). - polyweavePW483 · 43dc115measure.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). - polyweavePW482 · eaf1b29voice.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). - polyweavePW481 · 9e49f03verdict.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). - polyweavePW479 · 14e7430a 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). - polyweavePW478 · 65fdf63picture.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). - polyweavePW477 · f5a7efba 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). - polyweavePW476 · 6347c05picture.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). - polyweavePW475 · 99f5a0eport.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). - polyweavePW474 · 4227a68a 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). - polyweavePW473 · 361e1e4a 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). - polyweavePW472 · 188f3aaa 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). - polyweavePW471 · 1319367engine.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.
- winwrightWW541 · af968ffA 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.
- winwrightWW539 · dcd5b7bA 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.
- winwrightWW538 · 31abf0fA 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.
- winwrightWW537 · f99f58bA 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.
- winwrightWW536 · 953220bA 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.
- winwrightWW535 · 953220bA 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.
- QuickshellQS355 · f40c0a7CI is red on every push: the app tests skip three on a clean runner against a budget of two
The app tests may skip three on a clean desk, PuTTY's and MobaXterm's two real-file readers, so CI is held to what a runner without either has.
- QuickshellQS352 · 3b65301The recording test stops its recording on the first byte, ConPTY's mode sequences, before the line it reads back
The recording test waits until the echoed line is on the pane's screen before stopping, so a fast run no longer records only ConPTY's escapes.
- QuickshellQS351 · a7cf15eOnly the prod tag has a look on the strip, and no import brings tags in from MobaXterm or PuTTY
A MobaXterm folder named exactly prod, production or prd imports tagged prod, named in the preview first (design recorded in
docs/SESSIONS.md). - QuickshellQS346 · 69f90abReading a KDBX 4 vault encrypted with ChaCha20, or derived with AES-KDF, is proven by no vault
A ChaCha20 vault and a KDBX 4 AES-KDF vault written here open in keepassxc-cli and read back through KdbxReader.
- QuickshellQS345 · 3516aafAn exported vault restores the passwords but not the key files sessions name, so a new machine still lacks the keys
An export can carry each key file sessions name, once with its .pub, read back unchanged by KeePassXC, and a kept vault keeps them (design recorded in
docs/SESSIONS.md).