Skip to content
Changelog

What Windows Native 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. Quickshell
    The 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.

    QS369 · 7d4fcf1
  2. Quickshell
    Winwright 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.

    QS368 · 00a82b3
  3. Quickshell
    In 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.

    QS367 · 6533daf
  4. Quickshell
    A 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.

    QS366 · 7d14260
  5. Quickshell
    The 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.

    QS365 · fe69a45
  6. Quickshell
    The 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.

    QS364 · 26aee1e
  7. Quickshell
    Choosing 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.

    QS349 · d40640f
  8. Quickshell
    That 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.

    QS348 · 81b35c3
  9. Quickshell
    The 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.

    QS363 · eebcb65
  10. Quickshell
    The 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.

    QS361 · 7d14b26
  11. Quickshell
    An 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.

    QS359 · 8e0b91f
  12. Quickshell
    On 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).

    QS358 · 7975315
  13. Quickshell
    The 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.

    QS357 · a33b93f
  14. Quickshell
    exec 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.

    QS356 · 57990f5
  15. Quickshell
    Every 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.

    QS354 · 894c751
  16. Quickshell
    A 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.

    QS353 · 4f69916
  17. Quickshell
    Whether 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.

    QS350 · 1255719
  18. Quickshell
    A 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.

    QS347 · 845c66a
  19. Quickshell
    Wiring 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.

    QS343 · 4b94970
  20. Quickshell
    Asking 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.

    QS342 · bcae1bc
  21. Quickshell
    An 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.

    QS341 · 9cc9fac
  22. Quickshell
    A 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.

    QS340 · 2b00401
  23. Quickshell
    An 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).

    QS339 · 8c7f3e6
  24. Quickshell
    Text 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).

    QS338 · 9d004cb
  25. Quickshell
    A 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).

    QS337 · 165ba39
  26. Quickshell
    Every 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).

    QS336 · 9758de9
  27. Quickshell
    What 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).

    QS335 · 39fe5ab
  28. Quickshell
    CI 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.

    QS355 · f40c0a7
  29. Quickshell
    The 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.

    QS352 · 3b65301
  30. Quickshell
    Only 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).

    QS351 · a7cf15e
  31. Quickshell
    Reading 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.

    QS346 · 69f90ab
  32. Quickshell
    An 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).

    QS345 · 3516aaf
  33. Quickshell
    A person who sees an agent going wrong on a server has no single act that stops it everywhere at once

    Ctrl+Shift+F12 stops every agent: each gateway cancels its jobs, closes its connections and refuses calls until let run again (design recorded in docs/design/agent-gateway/README.md).

    QS334 · b9783f2
  34. Quickshell
    Nothing records what an agent ran on which server, who approved it, or what came back, once the session scrolls away

    Each gateway call is a hash-chained audit line, and quickshell --audit prints a run's changes and names a removed line (design recorded in docs/design/agent-gateway/README.md).

    QS333 · ddf8155
  35. Quickshell
    With the gateway installed an agent can still run ssh, plink, scp or paramiko from its own shell and skip every rule

    quickshell --agent-hook denies an agent's ssh, scp, rsync, git or paramiko call, naming the gateway tool to use instead (design recorded in docs/design/agent-gateway/README.md).

    QS332 · 3385506
  36. Quickshell
    A saved session carries nothing that tells production from staging, to the person or to anything reading the store

    A tab holding a session tagged prod, by its own tag or a folder's, shows prod in the danger colour, and every tag is the tab's item type (design recorded in docs/SESSIONS.md).

    QS331 · ee63734
  37. Quickshell
    A secret printed by a remote command, an .env or a token, goes straight into the agent's transcript and its provider

    Every gateway answer passes a redactor that hides keys, tokens and password assignments and counts them (design recorded in docs/design/agent-gateway/README.md).

    QS330 · fb912ab
  38. Quickshell
    A large command output lands whole in the agent's context, so one journalctl costs the rest of the session's room

    exec answers within a byte budget, head and tail kept and the cut named, and output_page and output_grep reach the rest (design recorded in docs/design/agent-gateway/README.md).

    QS329 · 8a610c2
  39. Quickshell
    A long remote command dies at the agent's timeout, or with its connection, and leaves no way to look back in on it

    job_start runs a command detached, kept on the server, so a later gateway reads its output by cursor and its exit code (design recorded in docs/design/agent-gateway/README.md).

    QS328 · ee36eb0
  40. Quickshell
    A sudo password, a pager or an apt dialog hangs an agent's command until its timeout, with no word of what it waited for

    exec runs with no input, pager or apt dialog, so nothing waits for a person, and a sudo password or y/N is named (design recorded in docs/design/agent-gateway/README.md).

    QS327 · b65f070
  41. Quickshell
    An agent edits a remote file by heredoc or sed -i, blind, with no diff for the person and no copy to go back to

    read_file and edit_file read a remote text file and change one exact piece of it, the original kept beside it, the diff returned (design recorded in docs/design/agent-gateway/README.md).

    QS326 · 78ef66d
  42. Quickshell
    An agent reaches a saved session only through raw ssh, quoting through four shells and paying a handshake per command

    quickshell --mcp serves hosts_list and exec: argv byte-exact on a kept connection, streams apart, off unless agentGateway (design recorded in docs/design/agent-gateway/README.md).

    QS325 · 3a79ff5
  43. Quickshell
    Approving an agent's commands one prompt at a time trains the person to click yes, the 41st one included

    The approval section settles plans bound to a hash, a dialog the agent cannot fake, a measured ask budget, and both open questions (design recorded in docs/design/agent-gateway/README.md).

    QS324 · f0ab2e2
  44. Quickshell
    Nothing says how a remote command is judged read-only, so a regex blocklist is the only idea on the table

    The judging section picks a small managed parser, an argument-checked allowlist, narrow unwrapping and a zero-false-allow gate (design recorded in docs/design/agent-gateway/README.md).

    QS323 · 8d1ee36
  45. Quickshell
    No policy format exists to say what an agent may do on which host, for how long, or who may change it

    The policy section fixes tags, three levels, grants that must end, a file only the person writes, an example and three open questions (design recorded in docs/design/agent-gateway/README.md).

    QS322 · d38d062
  46. Quickshell
    Nothing decides whether an agent gateway fits a client sold as "an SSH client, not a suite"

    The agent gateway is in scope on the owner's answer: off by default, its own process, no network, nothing on the terminal's path (design recorded in docs/design/agent-gateway/README.md).

    QS321 · 3e8aa9d
  47. Quickshell
    Nothing written says what an agent driving SSH from this desk can harm, nor which layer stops which harm

    docs/design/agent-gateway/README.md opens with the threat model: six harms, who causes them, three layers and what each honestly stops (design recorded in docs/design/agent-gateway/README.md).

    QS320 · 4d2ac1e
  48. Quickshell
    Two tabs on the same host carry the same title, so the strip gives nothing to tell them apart by

    Every tab shows its place on the strip before its title, the Alt digit that reaches it, renumbered when a tab is added, closed or moved (design recorded in docs/KEYS.md).

    QS319 · 287c78c
  49. Quickshell
    The session bar's Split button always splits side by side, with no way to split one above the other

    The session bar's Split keeps its click beside and has a chevron offering Split right and Split down, each naming its chord (design recorded in docs/SESSIONS.md).

    QS318 · 841733d
  50. Quickshell
    A pane opened by Split has no button, chord or palette entry that closes it, only closing the whole tab

    A split tab's panes each carry a close cross above them, Ctrl+Shift+W closes the focused pane before the tab, and Close pane is in the palette (design recorded in docs/KEYS.md).

    QS317 · 0686e58
  51. Quickshell
    Each split prints a new prompt line in every pane already open, as if Enter had been pressed in it

    A resize to the size a pane already has tells the far end nothing, and none writes input, so a split no longer prompts a pane it did not resize.

    QS316 · a4ac7ed
  52. Quickshell
    How a set of sessions is configured, with jump hosts, keys and forwards, can be documented only by copying it by hand

    Document as PDF, in the sidebar's menu and the palette, writes the chosen sessions with every value's origin, jump hops, forwards and key fingerprints, and no secret.

    QS315 · aafc3a2
  53. Quickshell
    The sidebar selects one row at a time, so nothing can act on several chosen sessions at once

    Ctrl+click, Shift+click and Ctrl+A choose several sidebar rows, and the window reports the set, a chosen folder standing for every session under it (design recorded in docs/SESSIONS.md).

    QS314 · 48819bb
  54. Quickshell
    A recent card says Connected now and its Connect opens a second connection, with no way from Home to the open tab

    A card or sidebar row whose session is open offers Go to tab, which puts that tab on screen, and New connection beside it (design recorded in docs/SESSIONS.md).

    QS313 · 924bc77
  55. Quickshell
    A tab's close button is in the tree but a user looking at the strip does not find it, so a tab seems unclosable

    A tab's close cross is drawn at 10 points after every title, inside its tab; the theme's button padding had left it no room to paint.

    QS312 · c3a1b82
  56. Quickshell
    A right click on a tab offers nothing, so closing every tab but one is a close per tab

    A tab's menu offers Close, Close other tabs and Close tabs to the right, asking once for every live session it would end; the last two are palette commands too (design recorded in docs/KEYS.md).

    QS311 · f45d4dd
  57. Quickshell
    A middle click on a tab does nothing, where every browser and terminal on Windows closes it

    A middle click on a tab closes that tab, asking first for a live session, and leaves the tab on screen, or Home, where it was (design recorded in docs/KEYS.md).

    QS310 · a7ede8f
  58. Quickshell
    Splitting a pane opened on a saved session opens a local Command Prompt instead of another shell on that server

    A split of a server's pane opens the same saved session in the new pane over a connection of its own, and a split of a local pane is still a local shell.

    QS309 · c597600
  59. Quickshell
    A new machine starts with no remembered password, because DPAPI does not travel and nothing reads a vault back

    Import saved passwords reads a KDBX 4 or 3.1 vault, ours or KeePassXC's, and remembers each matching session's password, asking before replacing one (design recorded in docs/SESSIONS.md).

    QS308 · 4b8c234
  60. Quickshell
    An exported vault goes stale the moment a password is saved or changed, so the file consulted is not the one in use

    With Keep this file up to date ticked, the vault is rewritten on every password or session change, from a DPAPI-kept key (design recorded in docs/SETTINGS.md).

    QS307 · 6213cd7
  61. Quickshell
    A forgotten password can be read only by connecting with this client on this machine, so there is nothing to consult

    Export saved passwords, in the palette, writes every session and its saved password to a KDBX 4 vault after Windows Hello (design recorded in docs/SESSIONS.md).

    QS306 · 21b80f0
  62. Quickshell
    Nothing in the client can write a KeePass KDBX 4 file, so no saved secret can leave it in a form another tool opens

    KdbxWriter writes KDBX 4 vaults, key file and attachments included, that keepassxc-cli 2.7.12 opens field for field (design recorded in src/Quickshell.Transport/Kdbx.cs).

    QS305 · a71adda
  63. Quickshell
    The sessions sidebar opens with every folder unfolded, so a large store is a long list before it is a tree

    The sessions sidebar opens with every folder folded, one click opens one, and a copy or a move opens the folder it put its session in.

    QS304 · 30862c2
  64. Quickshell
    The Explorer drop is proven by a test that drives the desk by hand instead of by a UI case

    The Explorer drop is a UI case in browser.cases.json: a file dragged from the host's pane lands in an Explorer folder and is read back byte for byte, and the hand-driven test is gone.

    QS292 · d74c140
  65. FreeWilly
    A silent install on a blocked machine exits 1 at the preflight page instead of 7, and /MERGETASKS is overwritten

    Silent Setup skips the tasks and preflight pages, so a blocked machine exits 7 from PrepareToInstall and /MERGETASKS holds; measured exit 7, nothing installed, on the test guest.

    DD284 · 704a856
  66. FreeWilly
    A release never reaches winget-pkgs: the manifests stay in the repository unsubmitted

    publish-release.ps1 runs wingetcreate submit after the release exists when WINGET_TOKEN is set, and skips without failing on a draft, stale manifests or a missing token.

    DD282 · e7a49b1
  67. FreeWilly
    No winget manifest exists, so winget install cannot find FreeWilly

    build\winget carries manifests for alegauss.FreeWilly, rewritten from the built installer by update-winget.ps1 during update-release; winget validate passes on v1.0.15.

    DD281 · d2192d9
  68. Quickshell
    The UI cases run on winwright 1.0.2, so CasesRun guesses a survivor's case that 1.1.0 names itself

    The UI cases run on winwright 1.1.0, and a survivor's red names its case from the engine instead of a pairing guessed by launch order.

    QS303 · dbd994b
  69. Quickshell
    A guest run starts while another project's run is driving the same VM, and its UI cases lose the foreground

    Every guest tool takes winwright's desk mutex before it touches the VM, and a second run waits naming the holder, so two suites never share the desk.

    QS302 · db7d320
  70. Quickshell
    The client crashes on every start after a window maximised from its first paint is closed

    A window maximised from its first paint is remembered without a rectangle, and a file already holding -2147483648 opens maximised instead of crashing.

    QS301 · 4e5fd00
  71. Quickshell
    A folder in the sessions sidebar opens or closes only on a double-click

    A folder in the sessions sidebar folds on one click, the second press of a double-click is ignored, and a session still connects on a double-click.

    QS300 · 4499d04
  72. Quickshell
    The Explorer drop run sometimes goes red waiting for the host's file list, without saying what the browser showed

    The UI-case assembly runs one class at a time, so the drop run's real input no longer shares the desk with CasesRun's windows.

    QS299 · 3b86055
  73. Quickshell
    A UI case's client sometimes outlives its case and turns a green run red, without saying which case

    A survivor's red also says whether it went soon after the kill or Windows could not end it, which is what a stop that failed after a kill can mean.

    QS298 · 05b0687
  74. Quickshell
    An imported MobaXterm jump host drops its user and port, and a chain of two jumps becomes one unusable name

    A MobaXterm jump comes across as user@host:port from its three fields, two jumps as an OpenSSH chain; JumpHost takes that chain, and the guest opens a session through two hops.

    QS297 · 3f1f74f
  75. Quickshell
    A MobaXterm import drops jump hosts, flattens nested folders, and finds no portable edition's file

    A MobaXterm import carries the jump host into the session's own, keeps nested folders nested, and asks for the file where none is where MobaXterm keeps it.

    QS296 · aa73048
  76. Quickshell
    PuTTY's sessions cannot be imported from the window, though the import reads them

    The window's import reads PuTTY's sessions as well as MobaXterm's, each previewed and written on its own under a folder named for its client.

    QS295 · aa73048
  77. Quickshell
    The import preview says each setting left behind is named beside its session, and names none

    The import preview names what each session left behind, grouped with the sessions that had it, and the store carries it as a comment above each session that later writes keep.

    QS294 · aa73048
  78. Quickshell
    A session never asks Pageant for a key, so a PuTTY or MobaXterm user's loaded keys are not offered

    A session offers Pageant through its window after the OpenSSH agent; in the guest a saved session with no key opens on the sshd with a key only Pageant 0.77 holds.

    QS293 · 6020c9a
  79. Quickshell
    A host run is over the skip budget, because the tests that only the guest can run count as its skips

    A skip naming a tools/provision-guest-*.ps1 script is waived and listed off the guest, and counted in it, where run-tests-vm sets QUICKSHELL_GUEST.

    QS291 · 190707d
  80. Quickshell
    This client has never met Windows OpenSSH, where the far side is cmd under the console host

    Windows OpenSSH 9.5 in the guest negotiates curve25519, ed25519, aes128-ctr and hmac-sha2-256, and cmd draws through the console host: a row in the matrix.

    QS290 · 464091f
  81. Quickshell
    A guest run after one that was cut off cannot sync, because the old run's test processes still hold the tree

    A guest run ends what a cut-off run left running, its batch and then this client's processes, each said by name and pid, before it syncs.

    QS289 · 0bb05cd
  82. Quickshell
    The repository declares no licence, so "free and open" cannot be said of it to anyone it is shown to

    quickshell is MIT: LICENSE at the root, PackageLicenseExpression set, the README and site say so, and the bundled MIT and ISC libraries are credited in the archive.

    QS285 · 2ddca86
  83. Quickshell
    The tab strip is the stock control: no Home tab, no status dot, no close or new-tab button, no accent underline

    tabs.cases.json finds each tab by its published state, TabItem[status="Local"], left behind and right on screen, read in the guest on winwright 1.0.2.

    QS278 · ea3cb2f
  84. Quickshell
    No UI case reads the session bar's state or forward chips, since no case fixture reaches an SSH server

    connected.cases.json reads a live tab's session bar, Connected, forward chip and status in the guest, over a Windows sshd on 127.0.0.1:2240 that provision-guest-sshd.ps1 sets up.

    QS273 · 44eef4e
  85. Quickshell
    The window opens on a local Command Prompt, and nothing on screen says this client connects to servers

    A new window opens on Home and starts no shell, startWith Shell or --tabs, --panes, --session open a shell; a Home start is timed at Home's first frame.

    QS272 · e3bb78d
  86. Quickshell
    Nothing can be dragged out of the host's pane, so a file on the server reaches Explorer only through a copy

    In the guest a file dragged from the host's pane onto an Explorer folder lands there byte for byte, by real input; a C# test until a case can drop on another window (QS292).

    QS188 · ccb962a
  87. Quickshell
    A PuTTY user on Pageant older than 0.78 has an agent this client cannot reach at all

    A real Pageant 0.77 in the guest lists the key through its window, signs what the key verifies, and opens a session on the guest's sshd with nothing else offered.

    QS114 · 23d144b
  88. Quickshell
    A user weighing the switch has nothing that says what they will and will not get

    docs/SWITCHING.md says what comes across, what quickshell does and refuses with what to use instead, and compares it with MobaXterm 26.5 from a documented guest run.

    QS81 · d8c4020
  89. Quickshell
    The contrast test's Direct2D reference still draws blank in the guest after every redraw, and the run goes red

    A Direct2D reference still blank after its redraws is drawn on a device built from scratch, and where that is blank too the pass is a skip with its reason, not a failure.

    QS287 · ba74f07
  90. Quickshell
    The site and llms.txt describe features as shipped that the client lacks, so a visitor arriving from a post is misled

    The site and llms.txt say what has shipped: pre-release 0.1.0, unsigned, no release yet, 160 MB, golden images on NVIDIA and WARP, no agent forwarding, reconnect as delivered.

    QS286 · 745310e
  91. Quickshell
    A guest run with no failing test goes red on the skip budget when a bitmap is copied on the host during it

    A guest run turns VMware's clipboard sharing off for its whole length and back on after, so a picture copied on the host mid-run no longer skips the clipboard case.

    QS284 · c846347
  92. Quickshell
    The window, taskbar, Alt+Tab and Start menu show Windows' generic application icon

    The executable carries the client's own mark at 16 to 256 px, drawn per size by tools\make-icon.py, so the window, taskbar, shortcut and uninstall entry show it.

    QS283 · 14f2a6b
  93. Quickshell
    A local tab and the window are titled C:\WINDOWS\system32\cmd.exe instead of naming the shell

    A local tab whose shell wrote its own executable's path is named as the shell: Command Prompt, Windows PowerShell, PowerShell or WSL; any other title shows as written.

    QS282 · ffb9d52
  94. Quickshell
    The terminal's text touches the sidebar's divider and the window's top edge, with no inset around the grid

    The terminal sits 18 in from the sides and 14 from top and bottom, in the focused pane's own background, repainted with a new scheme or OSC 11, and the grid shrinks to fit inside.

    QS281 · d510cd5
  95. Quickshell
    Home has the design's content in another layout: quick connect in three rows, other start-point copy and shape

    Home is the design's: the 26px heading and its line, quick connect in one row with a Sign in with drop-down that asks for a key file, and three start-point cards.

    QS280 · c120ea3
  96. Quickshell
    Home's recent sessions are forgotten on every restart and their cards cannot say when each was last used

    Home's cards are the design's: Recent with Show all sessions, three columns, a server tile, name over address, folder and tag chips, the time and a 28-high Connect.

    QS279 · 0a36c23
  97. Quickshell
    The sidebar is not the approved one: a filled hamburger, Command Prompt icons on SSH rows, an opaque selection

    The sidebar is the design's: a ghost panel fold, 32-high rows indented 8 plus 22 a level, a drawn terminal glyph on sessions, the accent at a tenth when selected, a Files and Tunnels rail.

    QS277 · d62f0c9
  98. Quickshell
    An imported key path keeps MobaXterm's _ProfileDir_ placeholder, so the key file is never found or offered

    MobaXterm's _ProfileDir_, _MyDocuments_, _AppDataDir_ and _CurrentDrive_ expand on import and when a key is offered, and a named key that is not there is said in the pane.

    QS276 · 02421cc
  99. Quickshell
    A store whose root node has a name opens none of its sessions: every row says there is no such session

    A store whose root node has a name opens every session the sidebar lists: the root's name is kept in the file and is never part of a path.

    QS275 · 937112f
  100. Quickshell
    A green guest run brings no reports back, so which UI cases ran cannot be read on the host

    Every guest run brings its reports back, green or red, and the summary says how many of the declared UI cases ran; a short count is red.

    QS274 · 564dd1a
  101. Quickshell
    A host nobody has saved cannot be reached without filling and saving the session dialog first

    Connect to an address takes user@host[:port] or an ssh_config host, saves it as a session unless unticked, and opens it by the path a saved session takes.

    QS271 · 2802c62
  102. Quickshell
    The session dialog decides how to sign in by which text box was filled, and cannot test a session

    The session dialog offers Sign in with as three segments over Key and Credential, folds the rest into summarised groups, and Test connection signs in and says why not, unsaved.

    QS270 · 2fb136f
  103. Quickshell
    A connected tab shows nothing of its connection: where it goes, whether it is up, which forwards it holds

    A remote tab shows a session bar (name, user@host:port via its jump host, a Connected/Reconnecting/Disconnected chip, a chip per forward, Files, Split, More) and a status bar under it.

    QS269 · 0ff06ce
  104. Quickshell
    Saved sessions are reached only by typing in the palette, so nobody sees what is saved or what is connected

    A sidebar lists saved sessions as a tree, searches them, marks the ones a tab holds Connected, and folds to a remembered rail (design recorded in docs/design/friendly-shell/README.md).

    QS268 · c168074
  105. PPortal
    nothing in the tree can configure a Qt build carrying WebEngine, so PP46's before cannot be produced at all

    reference-build-msvc.ps1 builds the WebEngine Qt client from e4e482e7; measure-startup exits 0 on it, 208.6 MB of Chromium present (design recorded in tools/measure-startup/README.md).

    PP63 · 80cf9bf
  106. Quickshell
    The tab-strip UI case fails on CI's elevated runner, where cmd puts Administrator before every title

    The tab-strip case accepts cmd's own Administrator prefix before the first tab's title, so it passes on an elevated runner and on an ordinary desk.

    QS267 · 7ccaed0
  107. Quickshell
    The nightly fuzz job fails on its own script before the campaign says anything

    fuzz.ps1 and release.ps1 hash with .NET's SHA256, so they reach their verdict when CI's pwsh starts them under Windows PowerShell.

    QS266 · 3620411
  108. Quickshell
    The UI cases have never run in CI: they launch a Debug client the Release build does not make

    A Release run launches the Release client: the UI cases point winwright at the configuration their own assembly was built in.

    QS265 · 816cb99
  109. Quickshell
    The settings-reference test fails on every CI push and passes in the guest

    The settings-reference test finds the same headings on a CRLF checkout as on an LF one, and a test now checks both.

    QS264 · 7fd9216
  110. Quickshell
    The echo-delay test times out in the guest waiting for sixteen megabytes and never says how far it got

    The echo-delay test reads at two and eight megabytes, keeping its four-to-one ratio, and a timeout now says how many megabytes were parsed.

    QS263 · 59151b9
  111. Quickshell
    The text an input method is composing vanishes every time the blinking cursor goes dark

    A composition is placed by where the cursor is and only its caret blinks, so the text being typed stays on screen and its blink is one cell.

    QS262 · d516fd1
  112. Quickshell
    Where a read ends decides how wide a character is, so a keycap split by the network leaves the cursor a column off

    A mark starting a read joins the cell just written where they make one cluster, so a byte-at-a-time stream leaves the screen a whole one does.

    QS261 · 00de5b4
  113. PPortal
    the rumble intensity and haptic override sliders change nothing in a session

    A stream run reads the Controllers tab's rumble intensity and haptic override from the store and hands them to the haptics player and the actuator matrix.

    PP858 · d132e07
  114. PPortal
    a console set to haptics Off still drives the pad, because the intensity it raises is held and never read

    The console's haptic intensity reaches the haptics player as it arrives, and Off now silences both the rumble fold and the actuator waveform, stopping a rumbling pad once.

    PP857 · 1b654b4
  115. PPortal
    no workflow builds the installer or attaches it to a GitHub release, so every installer comes off one desk

    release.yml builds through compile.cmd and package.cmd on a runner, refuses a tag the exe disagrees with, and drafts the release with the installer and SHA256SUMS.txt.

    PP856 · 2dba27c
  116. PPortal
    the picture smears for the rest of a scene and nothing asks for a keyframe, because no loss the port counts occurred

    The live video receiver now gets the slice parser and the run's IDR flag, so a P-frame without its reference is dropped, its gap reported and a FEC failure asks for a keyframe.

    PP855 · 2cf56c5
  117. PPortal
    RawBody reads a block-commented function as a real one, and nothing checks that the C contains none

    CFunction now finds block-commented definitions and bodies whose comment braces do not balance, and a test sweeps lib/src and shim for both on every run.

    PP852 · 4974aed
  118. Quickshell
    A remote forward whose local service stops reading freezes every channel on the connection

    Remote forward channels are answered here with a 2 MB window granted as bytes are delivered, so an unread one leaves the shell up (design recorded in src/Quickshell.Transport/RemoteChannels.cs).

    QS259 · 84774fa
  119. Quickshell
    A session's whole path parses near 54 MB/s where the budget now asks for 100, the rate the transport delivers

    Printable ASCII is written a row's worth at a time, and emulate on cat-log reads about 190 MB/s where it read 31 to 43 that day (design recorded in benchmarks/results/replay-xps.md).

    QS258 · 19ebf5c
  120. Quickshell
    One local pane holds 172 MB and a connected session 211 MB, where the budget allows 120 MB for the connected one

    Figure 6 is 160 MB, argued from the account: 126 MB is the window and the device, and a connected session now settles at 142 to 145 MB (design recorded in docs/PERFORMANCE.md).

    QS256 · f0d7a28
  121. Quickshell
    A session field written in the wrong place in the store is silently ignored, so the session connects with defaults

    A field the store does not have is refused by name and line, and a setting beside the host is told to move under settings, so nothing connects on defaults.

    QS254 · 1fa539b
  122. Quickshell
    A forwarded port whose local tool stops reading freezes every channel on the connection, the shell included

    A local or SOCKS forward nobody reads no longer freezes the connection: its window is granted as bytes reach the user (design recorded in src/Quickshell.Transport/ChannelWindow.cs).

    QS252 · 2ac10cb
  123. Quickshell
    An echo in a window covering its whole monitor has never been timed, the one case offered independent flip

    A monitor-covering chain flips independently on the reference desk, echoing at a 24 ms median against 33 windowed; the non-goal names it (design recorded in benchmarks/results/photon-h.md).

    QS225 · 227b338
  124. Quickshell
    The parse figure spreads by a fifth between runs on the reference machine, so the gate lets a regression that big pass

    Parse is pinned to one P-core with eight streams a pass, and the baseline retaken on 2026-10-07 derives a parse threshold of 1.5 % where it was 20.9.

    QS197 · 18d3634
  125. Quickshell
    Feed runs near 4 MB/s where the budget asks for 400, and the budget measures a different arm

    The whole path has a figure argued from the transport: emulate at least 100 MB/s on cat-log, the rate one SSH session delivers over loopback.

    QS141 · 6f1404f
  126. Quickshell
    A host sending faster than the parser consumes buffers gigabytes inside the channel

    A fast host now waits for the reader: the shell's 2 MB window is granted back as read, and ten unread seconds hold 1.4 MB, not 3 GB (design recorded in src/Quickshell.Transport/ChannelWindow.cs).

    QS139 · 31c63d9
  127. Quickshell
    The idle figure is measured on a window with no session and no render loop in it

    A connected client is measured idle: one pane 0.62 % of a core and 172 MB, a session 0.96 % and 211 MB, GPU time read too (design recorded in benchmarks/results/idle-h.md).

    QS137 · 1f875e3
  128. Quickshell
    Nothing has been measured starting, so the cold start figure is an aspiration

    Timed beside MobaXterm on the reference machine by one observer, quickshell's window is up at 612 ms warm against 894; its prompt reads 657 ms (design recorded in benchmarks/results/startup-h.md).

    QS75 · cd4133d
  129. Quickshell
    The site's build pulls source-map-js 1.2.1, which Dependabot flags high for an event-loop denial of service

    The site's lockfile resolves source-map-js 1.2.2 for both vite and tailwind, npm audit finds nothing, and the site builds.

    QS251 · 72685dd
  130. Quickshell
    A tab cannot be dragged along the strip, and there is no way back to the tab used before this one

    A tab dragged along the strip moves under the pointer, and the palette's Go to the last tab used switches by order of use, which Ctrl+Tab leaves positional.

    QS250 · 87d635c
  131. Quickshell
    Keys typed before a new pane's shell has started are dropped, so a fast first command loses its start

    Keys typed while a pane's session opens are kept, bounded, and handed over first and in order once it attaches, so a fast first command no longer loses its start.

    QS249 · bdd5c00
  132. Quickshell
    An SGR in the last column cancels the owed wrap, so the next character overwrites that column

    Only sequences that move the cursor or change the grid cancel an owed wrap, as xterm's ResetWrap sites do, so a full-width line that changes colour at its end still wraps.

    QS248 · 3938f7a
  133. Quickshell
    A copy started a moment before an install is not found running, so the install is not refused

    The running check reads the kernel's image path, so a copy started a moment before an install or uninstall is found and refused instead of being missed.

    QS247 · 909a542
  134. Quickshell
    Reverse screen mode DECSCNM is not drawn, so a visual bell never flashes

    Mode 5 swaps the default colours in the palette lookup and redraws on each edge, so the visual bell vim and readline send now flashes; esctest went from 465 to 466 passed.

    QS246 · 6b48f1b
  135. Quickshell
    A session's scheme, font size, terminal type, scrollback and credential are stored and inherited but never applied

    A session's credential name now keys its remembered password and FontSize is a non-goal out of the dialog, so no session field is shown and then ignored.

    QS245 · 7c84d2d
  136. Quickshell
    Seventeen esctest failures in eleven classes have no family of their own

    Every class the line listed now passes or is named by a non-goal, DECSCL's levels by a new one; esctest went from 458 to 465 passed across the parts.

    QS244 · a2c28cb
  137. Quickshell
    DECRQSS answers invalid for settings the client holds, and DA, DA2 and DECID answer another identity

    DECSCUSR is drawn and reported, DECRQSS answers every setting held, DECID answers, and the VT220 identity is kept by a non-goal; esctest went from 454 to 458 passed.

    QS243 · 2136161
  138. Quickshell
    Reverse wraparound does not follow a backspace back across a wrapped line as xterm does

    BS and CUB follow xterm's CursorBack: 45 walks back through a wrapped line, 1045 crosses any row, and an owed wrap is honoured; esctest went from 444 to 454 passed.

    QS242 · a6eaed0
  139. Quickshell
    HPR and VPR move the cursor nowhere

    HPR and VPR move the cursor right and down to the screen's edge, ignoring margins and origin mode; esctest went from 436 to 444 passed.

    QS241 · 850282e
  140. Quickshell
    Most DSR variants and the checksum report get no answer

    Every private DSR is answered, hardware this client lacks reported as absent, and DECXCPR's shape follows the claimed VT level; esctest went from 425 to 436 passed.

    QS240 · 1f29a1f
  141. Quickshell
    The saved cursor is one for both screens, and XTSAVE, XTRESTORE and DECSTR leave saved state behind

    Each screen has its own saved cursor, DECRC with nothing saved homes and resets DECOM, DECSTR does xterm's list, and XTSAVE/XTRESTORE work; esctest went from 407 to 425 passed.

    QS239 · c97d1c5
  142. Quickshell
    The rectangular area operations DECCRA, DECFRA and DECERA do nothing

    DECFRA fills, DECERA erases and DECCRA copies a rectangle, clipped and origin-relative as xterm's, and DECSACE is held and reported; esctest went from 388 to 407 passed.

    QS238 · 07a0e57
  143. Quickshell
    DECRQM answers not recognised for modes xterm reports as permanently reset or as set

    DECRQM answers xterm's ignored modes as permanently reset, KAM and SRM by decision, and DECNKM and DECBKM as real modes; esctest went from 373 to 388 passed.

    QS237 · 33d3532
  144. Quickshell
    Window operations through CSI t neither report the window nor say they are refused

    Every CSI t report is answered from the pane, titles read back empty, the title stack works, and moves and resizes are refused by a non-goal; esctest rose from 359 to 373 passed.

    QS236 · 419af4a
  145. Quickshell
    Character protection is not modelled, so selective erase and protected fields erase everything

    DECSCA, SPA and EPA protect cells; DECSED, DECSEL and DECSERA skip them as xterm does, ED, EL and ECH respect ISO protection, and esctest rose from 323 to 359 passed.

    QS235 · 8681d20
  146. Quickshell
    Asking for a colour with OSC 4, 5 or 10 to 19 gets no answer, and their resets are ignored

    OSC 4, 5 and 10 to 19 answer a colour query in xterm's form, 104, 105 and 110 to 119 reset to the session's scheme, and XTGETTCAP answers Co; esctest passes 323.

    QS234 · d76aa37
  147. Quickshell
    No left or right margin can be set, so everything esctest checks inside a column region fails

    DECLRMM and DECSLRM set a column region every cursor, edit, scroll and wrap respects, with DECIC, DECDC, DECBI and DECFI; esctest passes 299 where it passed 231.

    QS233 · 524e710
  148. Quickshell
    Dark text on a light theme carries 12 to 17 % less ink than Windows draws, while light-on-dark carries more

    Dark text on a light theme carries Direct2D's ink within 1 % in both antialiasing modes, and light-on-dark is drawn as before (design recorded in docs/measurements/contrast.md).

    QS212 · f40821f
  149. Quickshell
    The fuzzing campaign runs only when somebody types run-fuzz.cmd

    A nightly CI workflow runs the fuzz campaign with its corpus cached between runs, and CI warns on every push once the last campaign is over a week old.

    QS210 · 46d49a9
  150. Quickshell
    A tab cannot be dragged into a new order or out into its own window, so the workspace is fixed as it was opened

    A tab moves out into a window of its own with its sessions connected, and closing one of several windows ends only its own sessions.

    QS160 · b5d26a2