Skip to content

fix(web): align file icon with text in Read/Edit tool rows - #231

Merged
elkaix merged 1 commit into
mainfrom
fix/web-tool-file-icon-align
Aug 28, 2026
Merged

fix(web): align file icon with text in Read/Edit tool rows#231
elkaix merged 1 commit into
mainfrom
fix/web-tool-file-icon-align

Conversation

@elkaix

@elkaix elkaix commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

The file-type icon after the Read/Edit label sat above the text line. .bh-text aligns children by baseline, and .tl-ficon had line-height: 0, so its baseline collapsed to its bottom edge and the icon rode high. Dropped line-height: 0 and added align-self: center in ReadTool.vue / EditTool.vue; restaged dist-web.

Testing

  • pnpm run build:web
  • pythinker-web vitest: 85 files / 1012 tests green

Summary by CodeRabbit

  • Bug Fixes

    • Improved file-type icon alignment in Read and Edit tool rows so icons are vertically centered with their text.
  • Chores

    • Refreshed web assets and bundled editor, diagram, and language-support resources.

@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 22f893af-d984-4d2a-85d6-6eed56730d50

📥 Commits

Reviewing files that changed from the base of the PR and between 742be33 and 30857e4.

📒 Files selected for processing (98)
  • .changeset/web-tool-file-icon-align.md
  • apps/pythinker-code/dist-web/.web-bundle-manifest.json
  • apps/pythinker-code/dist-web/assets/CodeBlockNode-DUUxKNHt.js
  • apps/pythinker-code/dist-web/assets/DesignSystemView-B_5lCab_.js
  • apps/pythinker-code/dist-web/assets/Tooltip-BURaaNJx.js
  • apps/pythinker-code/dist-web/assets/abnfDiagram-VCTEODGH-DHIqKlMB.js
  • apps/pythinker-code/dist-web/assets/arc-Gyb_BMPM.js
  • apps/pythinker-code/dist-web/assets/architectureDiagram-5GKGNRK7-B8uLR-34.js
  • apps/pythinker-code/dist-web/assets/blockDiagram-NRAW4CY4-CiuYjwKR.js
  • apps/pythinker-code/dist-web/assets/c4Diagram-UCG6FXSJ-C-H-ewPQ.js
  • apps/pythinker-code/dist-web/assets/channel-BrPbwlu7.js
  • apps/pythinker-code/dist-web/assets/channel-DbAXcyo9.js
  • apps/pythinker-code/dist-web/assets/chunk-2Q5K7J3B-Db91u82P.js
  • apps/pythinker-code/dist-web/assets/chunk-5VM5RSS4-CxrZK0QP.js
  • apps/pythinker-code/dist-web/assets/chunk-F27PBJKO-EN7QE_07.js
  • apps/pythinker-code/dist-web/assets/chunk-G27WJ6UU-CZ9ylWYA.js
  • apps/pythinker-code/dist-web/assets/chunk-JWPE2WC7-BraWaQVT.js
  • apps/pythinker-code/dist-web/assets/chunk-LCL6LL3I-BreWYAMR.js
  • apps/pythinker-code/dist-web/assets/chunk-POPQ4Y6H-BGGRdlAh.js
  • apps/pythinker-code/dist-web/assets/chunk-SVP7TREG-CZS5sXzH.js
  • apps/pythinker-code/dist-web/assets/chunk-XXDRQBXY-DxaMGbGt.js
  • apps/pythinker-code/dist-web/assets/classDiagram-DTDB5LWJ-BlYPggM7.js
  • apps/pythinker-code/dist-web/assets/classDiagram-DTDB5LWJ-s3BqGYpE.js
  • apps/pythinker-code/dist-web/assets/classDiagram-v2-JRS7N3AN-BlYPggM7.js
  • apps/pythinker-code/dist-web/assets/classDiagram-v2-JRS7N3AN-s3BqGYpE.js
  • apps/pythinker-code/dist-web/assets/cose-bilkent-JH36ORCC-BZgPbq1U.js
  • apps/pythinker-code/dist-web/assets/cssMode-DcmT42mN.js
  • apps/pythinker-code/dist-web/assets/cynefin-OW5HDTMX-bXF9dhPA.js
  • apps/pythinker-code/dist-web/assets/cynefinDiagram-5FMLGOSQ-B8WEGszi.js
  • apps/pythinker-code/dist-web/assets/dagre-3AP2YEHR-Kt4Qf2LG.js
  • apps/pythinker-code/dist-web/assets/diagram-S7CK7UJ4-Bra6QzLO.js
  • apps/pythinker-code/dist-web/assets/diagram-UQ7AKVKN-DvOnyUKF.js
  • apps/pythinker-code/dist-web/assets/diagram-VSXAHHWV-BcQbbVu8.js
  • apps/pythinker-code/dist-web/assets/diagram-VX7I27RA-qKKTLlxG.js
  • apps/pythinker-code/dist-web/assets/diagram-Z3DM3KII-DlgmmUM3.js
  • apps/pythinker-code/dist-web/assets/ebnfDiagram-PWID7BFC-CVSwkOAw.js
  • apps/pythinker-code/dist-web/assets/editor.main-K9VCuso-.js
  • apps/pythinker-code/dist-web/assets/erDiagram-SSCWMZ5O-DbtQAv6p.js
  • apps/pythinker-code/dist-web/assets/flowDiagram-A5DVABFB-DuxA0_e3.js
  • apps/pythinker-code/dist-web/assets/freemarker2-BOBIp6In.js
  • apps/pythinker-code/dist-web/assets/ganttDiagram-EL5Y4UJY-DD8-DzAR.js
  • apps/pythinker-code/dist-web/assets/gitGraphDiagram-WWUBYQGX-Cdsq_0Wl.js
  • apps/pythinker-code/dist-web/assets/handlebars-D3QL_0lh.js
  • apps/pythinker-code/dist-web/assets/html-CoEODOFT.js
  • apps/pythinker-code/dist-web/assets/htmlMode-ChlCW0dU.js
  • apps/pythinker-code/dist-web/assets/index-BO4scgvj.css
  • apps/pythinker-code/dist-web/assets/index-C7gsw61T.js
  • apps/pythinker-code/dist-web/assets/index-CGYKYt8y.js
  • apps/pythinker-code/dist-web/assets/index-CP2TlhQH.js
  • apps/pythinker-code/dist-web/assets/index-CV-FRB5f.css
  • apps/pythinker-code/dist-web/assets/index-DKirk--h.js
  • apps/pythinker-code/dist-web/assets/index10-WewFh0EU.js
  • apps/pythinker-code/dist-web/assets/index11-DAXLSd2m.js
  • apps/pythinker-code/dist-web/assets/index5-DNv9aAMZ.js
  • apps/pythinker-code/dist-web/assets/index6-BtdxD3CE.js
  • apps/pythinker-code/dist-web/assets/index7-CFm3fp-6.js
  • apps/pythinker-code/dist-web/assets/index8-CfZeYDzu.js
  • apps/pythinker-code/dist-web/assets/infoDiagram-RXCK75RN-BxiiG-Tb.js
  • apps/pythinker-code/dist-web/assets/ishikawaDiagram-5VMMS53U-C6mmsgFW.js
  • apps/pythinker-code/dist-web/assets/javascript-DewqvQIj.js
  • apps/pythinker-code/dist-web/assets/journeyDiagram-EYS64GPL-n9CYRCQz.js
  • apps/pythinker-code/dist-web/assets/jsonMode-Ci_FGuNF.js
  • apps/pythinker-code/dist-web/assets/kanban-definition-3QL26DDD-DgIQdscJ.js
  • apps/pythinker-code/dist-web/assets/layout-C2RhI-c3.js
  • apps/pythinker-code/dist-web/assets/linear-Cv9QBueK.js
  • apps/pythinker-code/dist-web/assets/liquid-Cdett6Hc.js
  • apps/pythinker-code/dist-web/assets/lspLanguageFeatures-myGvOsfx.js
  • apps/pythinker-code/dist-web/assets/mdx-DAGArm8i.js
  • apps/pythinker-code/dist-web/assets/mermaid.core-BpW-QX-h.js
  • apps/pythinker-code/dist-web/assets/mindmap-definition-FBJOCRG2-CDy6077o.js
  • apps/pythinker-code/dist-web/assets/pegDiagram-XKGWAZYB-B8FWgRUQ.js
  • apps/pythinker-code/dist-web/assets/pieDiagram-E7YTZNPT-cZ9cPL9Q.js
  • apps/pythinker-code/dist-web/assets/python-f1nirtrK.js
  • apps/pythinker-code/dist-web/assets/quadrantDiagram-AXDQQJYC-B_uVc9jx.js
  • apps/pythinker-code/dist-web/assets/railroadDiagram-O6MQD6OU-Dn1K3Nou.js
  • apps/pythinker-code/dist-web/assets/razor-DpsDSy5t.js
  • apps/pythinker-code/dist-web/assets/requirementDiagram-EFPCY7ZU-CDG__R4S.js
  • apps/pythinker-code/dist-web/assets/sankeyDiagram-P5KCCOFB-B1cYOTOR.js
  • apps/pythinker-code/dist-web/assets/sequenceDiagram-WJ2MYXX4-BsIaOW-U.js
  • apps/pythinker-code/dist-web/assets/sizeCapture-X5ZJPWSS-DgSGg7tQ.js
  • apps/pythinker-code/dist-web/assets/stateDiagram-HBIQ2CUA-DjVS4IXX.js
  • apps/pythinker-code/dist-web/assets/stateDiagram-v2-4QOOHH4V-CWoQsfyx.js
  • apps/pythinker-code/dist-web/assets/stateDiagram-v2-4QOOHH4V-Dw9WIsdt.js
  • apps/pythinker-code/dist-web/assets/swimlanes-XN3QIQJK-CUpSEOB1.js
  • apps/pythinker-code/dist-web/assets/swimlanesDiagram-VK2B7HYN-ByMNMLVk.js
  • apps/pythinker-code/dist-web/assets/swimlanesDiagram-VK2B7HYN-CFCA-R5c.js
  • apps/pythinker-code/dist-web/assets/timeline-definition-24CTP7MA-BbBok-n7.js
  • apps/pythinker-code/dist-web/assets/tsMode-CX76x6MO.js
  • apps/pythinker-code/dist-web/assets/typescript-wCVpcqSv.js
  • apps/pythinker-code/dist-web/assets/vennDiagram-4TSXK5OY-DQfRXJfv.js
  • apps/pythinker-code/dist-web/assets/vue.runtime.esm-bundler-BwsUS0Ix.js
  • apps/pythinker-code/dist-web/assets/wardleyDiagram-VM6X3IG4-CtSLT1IP.js
  • apps/pythinker-code/dist-web/assets/xml-Bs1HwVGT.js
  • apps/pythinker-code/dist-web/assets/xychartDiagram-S5SC5T6Z-Dn2lvaWA.js
  • apps/pythinker-code/dist-web/assets/yaml-iWqKjSuc.js
  • apps/pythinker-code/dist-web/index.html
  • apps/pythinker-web/src/components/chat/tool-calls/EditTool.vue
  • apps/pythinker-web/src/components/chat/tool-calls/ReadTool.vue

📝 Walkthrough

Walkthrough

The PR centers file icons in Read and Edit tool rows, records a patch changeset, and regenerates web assets with updated dependencies and bundled diagram, editor, language, and Vue runtime modules.

Changes

Tool alignment and web bundle

Layer / File(s) Summary
Center Read and Edit file icons
.changeset/web-tool-file-icon-align.md, apps/pythinker-web/src/components/chat/tool-calls/EditTool.vue, apps/pythinker-web/src/components/chat/tool-calls/ReadTool.vue
The file icons use align-self: center instead of line-height: 0. The changeset records the patch release.
Update generated bundle references
apps/pythinker-code/dist-web/.web-bundle-manifest.json, apps/pythinker-code/dist-web/index.html, apps/pythinker-code/dist-web/assets/*
Generated manifests, entry references, and module imports now target regenerated hashed JavaScript and CSS assets.
Add regenerated diagram runtime modules
apps/pythinker-code/dist-web/assets/*Diagram*.js, apps/pythinker-code/dist-web/assets/channel-*.js, apps/pythinker-code/dist-web/assets/sizeCapture-*.js
The bundle adds Sankey, state, swimlanes, timeline, Venn, Wardley, XY chart, and related Mermaid modules, plus size-capture and channel helpers.
Add regenerated editor and Vue modules
apps/pythinker-code/dist-web/assets/tsMode-*.js, apps/pythinker-code/dist-web/assets/typescript-*.js, apps/pythinker-code/dist-web/assets/xml-*.js, apps/pythinker-code/dist-web/assets/yaml-*.js, apps/pythinker-code/dist-web/assets/vue.runtime*.js, apps/pythinker-code/dist-web/assets/python-*.js
The bundle adds editor language definitions, TypeScript language services, the Vue runtime export surface, and the type Python keyword.

Estimated code review effort: 3 (Moderate) | ~20 minutes

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

Warning

Some tools did not complete. Review the errors below.

🔧 ast-grep (0.45.2)
apps/pythinker-code/dist-web/assets/cynefin-OW5HDTMX-bXF9dhPA.js

ast-grep timed out on this file

apps/pythinker-code/dist-web/.web-bundle-manifest.json

ast-grep did not scan this file: retry isolation stopped after a systemic timeout or after exhausting the retry isolation budget

apps/pythinker-code/dist-web/assets/CodeBlockNode-DUUxKNHt.js

ast-grep did not scan this file: retry isolation stopped after a systemic timeout or after exhausting the retry isolation budget

  • 20 others

Comment @coderabbitai help to get the list of available commands.

@pkg-pr-new

pkg-pr-new Bot commented Aug 28, 2026

Copy link
Copy Markdown
pnpm dlx https://pkg.pr.new/@pymodel/pythinker-code@30857e4
npx https://pkg.pr.new/@pymodel/pythinker-code@30857e4

commit: 30857e4

Comment thread apps/pythinker-code/dist-web/assets/chunk-G27WJ6UU-CZ9ylWYA.js
Comment thread apps/pythinker-code/dist-web/assets/chunk-G27WJ6UU-CZ9ylWYA.js
@elkaix
elkaix merged commit 26cd4ac into main Aug 28, 2026
34 of 37 checks passed
@elkaix
elkaix deleted the fix/web-tool-file-icon-align branch August 28, 2026 02:44
elkaix pushed a commit that referenced this pull request Aug 28, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @pymodel/pythinker-code@1.6.0

### Minor Changes

- [#239](#239)
[`fdaf83d`](fdaf83d)
Thanks [@elkaix](https://github.com/elkaix)! - The Dynamic Workflow card
shows each subagent's profile, model, thinking effort, elapsed time, and
routing source, groups rows by phase with failures first, and notes when
running subagents were created under an earlier routing.

- [#241](#241)
[`b891de7`](b891de7)
Thanks [@elkaix](https://github.com/elkaix)! - AgentDynamicWorkflow
accepts a `tasks` list where each entry sets its own subagent type,
model, and thinking effort. Pass `tasks` instead of `items`, with
optional `defaults.subagent_type`.

- [#235](#235)
[`03d9835`](03d9835)
Thanks [@elkaix](https://github.com/elkaix)! - The Lab settings show
when an experimental flag is controlled by the environment and when the
saved setting is overridden.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Attach files from
server-local paths in Web prompts.

- [#240](#240)
[`55d12a2`](55d12a2)
Thanks [@elkaix](https://github.com/elkaix)! - Settings gains a Subagent
Model Routing control with Inherit, Default, Pool, and Force modes and
shows the saved policy next to the routing that currently applies.

- [#236](#236)
[`faeb195`](faeb195)
Thanks [@elkaix](https://github.com/elkaix)! - Add a subagent model
policy setting with inherit, default, pool, and force modes that rejects
models that are not configured.

- [#237](#237)
[`a60a427`](a60a427)
Thanks [@elkaix](https://github.com/elkaix)! - Subagent tasks and
Dynamic Workflow results now record the profile, model, and routing
source of each subagent, and a resumed subagent keeps the binding it was
created with.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Show file, folder, image,
and video attachments as compact composer pills with media previews.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Add word-wrap and
line-number toggles to every code block and diff block in the web chat.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Add a Message folding
settings section that turns off auto-folded turns and the tool call
summary row.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Open multiple detail
views as tabs in the Web panel.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Add selected conversation
or panel text to the composer as quoted context.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Move a running Bash
command or foreground subagent to the background from its row in the web
chat.

### Patch Changes

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Remind the agent about
unfinished background tasks when work continues in a later turn.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Redact service
credentials and raw configuration from config API responses.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Accept MCP tool results
that contain text content or structured content.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Refresh model
authentication readiness after provider configuration changes.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Show the complete
remote-control link after startup.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Keep configured secondary
model aliases unchanged when provider catalogs refresh.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Warn before sending
arguments to a slash command that does not accept them.

- [#234](#234)
[`8959522`](8959522)
Thanks [@elkaix](https://github.com/elkaix)! - Subagent model settings
no longer keep stale force or pool values after a change.

- [#232](#232)
[`974da73`](974da73)
Thanks [@elkaix](https://github.com/elkaix)! - Keep the file preview
close button in the top-right corner at every panel width, remove the
unused download action, and stop the running-task indicator from
overlapping a collapsed Task row title.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Resize the web panels
with the arrow keys, and show the description for a question's free-text
answer.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Keep each Web session's
permission mode separate when switching sessions.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Show the Web session list
after its first workspace-group page loads.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Show a subagent's
originating prompt above its transcript, centre the transcript, and add
a Back to bottom shortcut.

- [#231](#231)
[`26cd4ac`](26cd4ac)
Thanks [@elkaix](https://github.com/elkaix)! - Align the file-type icon
with the text in Read and Edit tool rows.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Recover from a crashed
view instead of a blank screen, name a cancelled sign-in, keep the
composer toolbar readable at very narrow widths, and stop the sidebar
settings label from pushing the footer row.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Resolve renamed
workspaces correctly after restarting the server.
## @pymodel/pythinker-desktop@0.4.0

### Minor Changes

- [#243](#243)
[`d389e4d`](d389e4d)
Thanks [@elkaix](https://github.com/elkaix)! - The desktop app ships the
updated web workspace: the Dynamic Workflow card with per-subagent
routing details, Subagent Model Routing settings, attachment previews,
panel tabs, message folding, and session permission controls.

- [#239](#239)
[`fdaf83d`](fdaf83d)
Thanks [@elkaix](https://github.com/elkaix)! - The Dynamic Workflow card
shows each subagent's profile, model, thinking effort, elapsed time, and
routing source, groups rows by phase with failures first, and notes when
running subagents were created under an earlier routing.

- [#241](#241)
[`b891de7`](b891de7)
Thanks [@elkaix](https://github.com/elkaix)! - AgentDynamicWorkflow
accepts a `tasks` list where each entry sets its own subagent type,
model, and thinking effort. Pass `tasks` instead of `items`, with
optional `defaults.subagent_type`.

- [#235](#235)
[`03d9835`](03d9835)
Thanks [@elkaix](https://github.com/elkaix)! - The Lab settings show
when an experimental flag is controlled by the environment and when the
saved setting is overridden.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Attach files from
server-local paths in Web prompts.

- [#240](#240)
[`55d12a2`](55d12a2)
Thanks [@elkaix](https://github.com/elkaix)! - Settings gains a Subagent
Model Routing control with Inherit, Default, Pool, and Force modes and
shows the saved policy next to the routing that currently applies.

- [#236](#236)
[`faeb195`](faeb195)
Thanks [@elkaix](https://github.com/elkaix)! - Add a subagent model
policy setting with inherit, default, pool, and force modes that rejects
models that are not configured.

- [#237](#237)
[`a60a427`](a60a427)
Thanks [@elkaix](https://github.com/elkaix)! - Subagent tasks and
Dynamic Workflow results now record the profile, model, and routing
source of each subagent, and a resumed subagent keeps the binding it was
created with.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Show file, folder, image,
and video attachments as compact composer pills with media previews.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Add word-wrap and
line-number toggles to every code block and diff block in the web chat.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Add a Message folding
settings section that turns off auto-folded turns and the tool call
summary row.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Open multiple detail
views as tabs in the Web panel.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Add selected conversation
or panel text to the composer as quoted context.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Move a running Bash
command or foreground subagent to the background from its row in the web
chat.

### Patch Changes

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Remind the agent about
unfinished background tasks when work continues in a later turn.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Redact service
credentials and raw configuration from config API responses.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Accept MCP tool results
that contain text content or structured content.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Refresh model
authentication readiness after provider configuration changes.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Show the complete
remote-control link after startup.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Keep configured secondary
model aliases unchanged when provider catalogs refresh.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Warn before sending
arguments to a slash command that does not accept them.

- [#234](#234)
[`8959522`](8959522)
Thanks [@elkaix](https://github.com/elkaix)! - Subagent model settings
no longer keep stale force or pool values after a change.

- [#232](#232)
[`974da73`](974da73)
Thanks [@elkaix](https://github.com/elkaix)! - Keep the file preview
close button in the top-right corner at every panel width, remove the
unused download action, and stop the running-task indicator from
overlapping a collapsed Task row title.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Resize the web panels
with the arrow keys, and show the description for a question's free-text
answer.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Keep each Web session's
permission mode separate when switching sessions.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Show the Web session list
after its first workspace-group page loads.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Show a subagent's
originating prompt above its transcript, centre the transcript, and add
a Back to bottom shortcut.

- [#231](#231)
[`26cd4ac`](26cd4ac)
Thanks [@elkaix](https://github.com/elkaix)! - Align the file-type icon
with the text in Read and Edit tool rows.

- [#238](#238)
[`7b00f1f`](7b00f1f)
Thanks [@elkaix](https://github.com/elkaix)! - Recover from a crashed
view instead of a blank screen, name a cancelled sign-in, keep the
composer toolbar readable at very narrow widths, and stop the sidebar
settings label from pushing the footer row.

- [#242](#242)
[`254be65`](254be65)
Thanks [@elkaix](https://github.com/elkaix)! - Resolve renamed
workspaces correctly after restarting the server.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant