Skip to content

πŸ“¦ Release v0.4.0 - #24

Merged
FernandoCelmer merged 13 commits into
masterfrom
feature/21
Aug 15, 2026
Merged

FernandoCelmer merged 13 commits into
masterfrom
feature/21

Conversation

@FernandoCelmer

Copy link
Copy Markdown
Member

PR #22 merged before these follow-up commits landed on the branch, so they never made it to master. This picks up the rest:

.tool-icon/.tool-status/.tool-open-file sized themselves via
plain single-class selectors, but codicon.css's own base rule
(.codicon[class*='codicon-']) is an attribute selector β€” strictly
higher specificity β€” and always won regardless of stylesheet load
order, silently resetting font-size back to the library's 16px/1
default and leaving line-height unconstrained against the row.
Scoped the sizing rules under .tool-card-header to out-specify it,
pinned line-height:1 explicitly, and added overflow:hidden on the
header as a hard clamp. Also dropped the leftover thinking-pulse
opacity animation on .tool-status.pending β€” the pending status now
renders via codicon-loading + codicon-modifier-spin, so the old
animation was silently fighting it for the same CSS property.
codicon-modifier-spin's rotate animation applies to the whole
element box it's set on β€” but that same .tool-status element also
gets .auto-approved's `::after { content: " (auto)" }` text. Since a
transform rotates everything rendered in the element's box, the
"(auto)" label was spinning in a circle right along with the loading
glyph. Split the icon into its own inner .tool-status-icon span so
only the glyph carries the spin/codicon classes; .tool-status stays
a plain, non-rotating wrapper for the color state and the auto-
approved label.
…age payload

openFile() resolved a relative path against the workspace root with
no check that the result stayed inside it β€” "../../.ssh/id_rsa" (or
any tool-call arg pointing outside the workspace) would open in the
editor unguarded. Now normalizes the resolved path and rejects it if
it doesn't stay under the workspace root. Also guards the "openFile"
message handler against a non-string/empty path, since it comes
straight from the webview with no runtime type check beyond the
compile-time union.
Its base rule (.tool-card-header .tool-open-file) is already scoped,
but the :hover variant wasn't β€” any future .tool-open-file element
outside a tool card would silently inherit this hover color.
@FernandoCelmer
FernandoCelmer merged commit 45a62b8 into master Aug 15, 2026
2 checks passed
@FernandoCelmer
FernandoCelmer deleted the feature/21 branch August 15, 2026 20:32
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