Skip to content

style improvements and update pro deps#2853

Merged
abose merged 12 commits intomainfrom
ai
Apr 27, 2026
Merged

style improvements and update pro deps#2853
abose merged 12 commits intomainfrom
ai

Conversation

@abose
Copy link
Copy Markdown
Member

@abose abose commented Apr 26, 2026

No description provided.

abose added 12 commits April 26, 2026 22:34
Adds a CSS rule for .ai-tool-edit-stats so the per-edit +x/-y
on restored cards reads with the same muted grey as the Show diff
toggle (the .ai-msg-edit-summary-scoped green/red colors don't apply
inside the tool indicator, leaving the default bright text otherwise).

CLAUDE.md gains a short note on which file API to reach for —
Phoenix.VFS.{read,write,unlink}Async for raw app data (no size
cap, recursive dir delete) versus FileSystem.getFileForPath only
for files that may be opened as editor documents.
The 0.8rem (≈11px) tab labels read as undersized chrome against
the 14px panel content and didn't align with the secondary-tier
scale used elsewhere. Bumps:

- font-size 0.8rem → 0.85rem (~12px)
- icon size 0.78rem → 0.82rem to track
- vertical padding 0.25rem → 0.3rem so the slightly larger label
  isn't boxed in
- active tab weight 500 → 600 so the selected state doesn't rely
  on color alone

Affects every consumer of the global SidebarTabs component
(Files, AI, extension sidebar tabs) uniformly.
Threads the new attached-folders list from sendPrompt all the way
to the SDK's additionalDirectories option. Validates each entry
(absolute, exists, not a duplicate of cwd) and drops invalid ones
silently so a typo doesn't blow up the query.

Adds the matching styles: .ai-attach-dropup mirrors the screenshot
dropup, and .ai-context-chip-folder gives the new folder chip an
amber-tinted border and icon so it reads as a distinct kind of
context vs file/selection/live-preview chips.

Plus three new strings for the popup options and folder-picker
title.
Mirrors the Claude Code CLI's default permissions.allow set
(git status / log / diff / show / remote show / branch / ls-files /
rev-parse, plus generic ls / pwd / cat / head / tail / wc / which /
file / stat / echo, and version probes) so the user isn't prompted
for every "look around the repo" command.

Anything containing shell composition characters (; && || | $(...)
backticks < >) still falls through to a user prompt, so chained
destructive operations can't piggy-back on a safe prefix.
…plan overlay css

* Safe-bash classifier in claude-code-agent.js now splits commands
  on `;`, `&&`, `||` and accepts the chain if every segment matches
  a safe pattern, so `git status && git log -5` and
  `sleep 1; echo done` no longer prompt. `sleep` (numeric durations)
  joins the allowlist. Process substitution (`$(...)`, backticks),
  redirection (`<`, `>`) and pipes (`|`) still fall through to a
  user prompt — chained destructive ops can't piggy-back on a safe
  prefix.

* New scoped overrides at the bottom of Extn-AIChatPanel.less
  neutralise Bootstrap's .btn / .btn-primary / .btn-secondary skins
  and add dark-theme defaults for inputs/textareas/selects inside
  .ai-chat-panel, so the always-dark sidebar renders identically in
  light and dark editor themes.

* Plan-card maximize: .ai-plan-maximize-btn (muted button flush
  right of the header) plus .ai-plan-fullscreen-overlay (fixed,
  z-index 10001, dark backdrop, 960px card with the same plan
  chrome). Strings AI_CHAT_PLAN_MAXIMIZE and
  AI_CHAT_PLAN_CLOSE_FULLSCREEN.

* First-time Full Auto warning strings:
  AI_CHAT_FULL_AUTO_WARNING_TITLE / _BODY / _PROCEED.
Companion to the phoenix-pro onboarding iframe wiring.

* Extn-AIChatPanel.less:
  - .ai-tab-container gains `position: relative` so the prompt
    overlay (re-parented there at runtime) can use absolute inset:0
    to cover tabs + panel body.
  - .ai-onboarding-wrap claims the same flex slot as .ai-chat-messages
    when shown.
  - .ai-history-open also hides the wrap so opening the history
    dropdown takes the panel body cleanly.
  - .ai-onboarding-prompt-overlay (top-level rule, not nested under
    the wrap, so the styles apply after the runtime reparent)
    matches Phoenix Code's panel chrome — neutral grey card on
    @bc-ai-sidebar-bg / @bc-ai-input-border, header strip with
    title + × close, full-bleed flush textarea, action row with
    quiet text Cancel and an icon-only send button mirroring
    .ai-send-btn. Explicit focus reset (border/outline/box-shadow:
    none) so the global textarea:focus rule can't shift the
    dialog when the user clicks in.
  - Light entrance animations (overlay fade, card pop).
* strings.js: AI_CHAT_ONBOARDING_REVIEW_PROMPT ("Ready to build")
  and AI_CHAT_ONBOARDING_SEND.
Companion to the AIChatPanel.js refactor: the iframe-theme values now
live as --bg-panel / --text-primary / --accent-primary / etc. on
.ai-chat-panel itself. JS reads them via getComputedStyle and forwards
them to the iframe, so retheming is purely editing this LESS list —
no JS change required.
@sonarqubecloud
Copy link
Copy Markdown

@abose abose merged commit b623c47 into main Apr 27, 2026
12 of 21 checks passed
@abose abose deleted the ai branch April 27, 2026 16:28
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