Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions apps/desktop/src/renderer/maka-tokens.css
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,9 @@
two different colours (10.51:1 vs 12.01:1 measured). One family, one
colour space: derive every ink in oklch. */
/* `--foreground-dimmed` is gone as of Visual System 2.0 (T4). It was an alias
of --foreground-secondary kept alive for five call sites in
task-ledger.css, which now name the tier directly. Two names for one ink
of --foreground-secondary kept alive for five call sites in the former
task-ledger.css (now session-todo-panel.css), which were migrated to name
the tier directly. Two names for one ink
tier is how the original bug happened: both were written as "80% ink",
one mixed in srgb and the other in oklch, and they resolved 10.51:1 against
12.01:1. The contract test still runs — it now asserts the token has no
Expand Down
2 changes: 1 addition & 1 deletion apps/desktop/src/renderer/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
@import "./styles/settings/select.css" layer(components);
@import "./styles/model-switcher.css" layer(components);
@import "./styles/chat-header.css" layer(components);
@import "./styles/task-ledger.css" layer(components);
@import "./styles/session-todo-panel.css" layer(components);
@import "./styles/work-board.css" layer(components);
@import "./styles/plan-mode.css" layer(components);
@import "./styles/agent-graph.css" layer(components);
Expand Down
94 changes: 94 additions & 0 deletions apps/desktop/src/renderer/styles/session-todo-panel.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

/* SessionTodoPanel (#4351) — the read-only, flat projection of the Host-owned
current Todo document. It replaced the nested Task Ledger demand chain, so
this sheet was reduced (#4394) to what the flat list actually renders: a
`-panel` scroll container, a `-tree` <ol>, and one `-row` <li> per item that
holds a status icon and its content text. The retired four-column,
depth-indented tree row — its `--task-depth` indent, `-group`,
`[data-status]`, `-key`/`-subject`/`-meta`/`-detail`, and `-terminal`
descendants — is gone; none of those elements exist anymore. */

.maka-session-todo-panel {
height: 100%;
min-height: 0;
overflow-y: auto;
padding: var(--space-2);
}

.maka-session-todo-tree {
display: grid;
gap: var(--border-width-hairline);
}

/* Two children only: the status icon, then content that takes the remaining
width and wraps within it (`minmax(0, 1fr)` lets the text column shrink so
long, unbroken content wraps instead of overflowing the workbar). The
workbar resizes down to SESSION_WORKBAR_MIN_WIDTH (320px) inside an
otherwise wide window, so wrapping — not a width breakpoint — is what keeps
the row readable at every width. If width-responsive styling is ever added
here it should be an `@container` query on `.maka-session-todo-panel` (see
workbar/inspector.css and chat-header.css), not a viewport `@media`. */
.maka-session-todo-row {
font: var(--maka-text-supporting);
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: var(--space-2);
min-height: 32px;
padding: var(--space-1) var(--space-2);
border-radius: var(--radius-control);
color: var(--foreground-secondary);
}

.maka-session-todo-row > span {
min-width: 0;
overflow-wrap: anywhere;
}

.maka-session-todo-row:hover { background: var(--state-hover-bg); }

.maka-session-todo-message {
font: var(--maka-text-supporting);
display: flex;
align-items: center;
justify-content: space-between;
min-height: 32px;
padding: var(--space-1) var(--space-2);
color: var(--foreground-secondary);
}

.maka-session-todo-retry {
display: inline-grid;
width: 28px;
height: 28px;
place-items: center;
border: 0;
border-radius: var(--radius-control);
background: transparent;
color: inherit;
}

.maka-session-todo-retry:hover { background: var(--state-hover-bg); }

.maka-session-todo-retry:focus-visible {
outline: var(--focus-ring-width) solid var(--focus-ring);
outline-offset: 1px;
}
135 changes: 0 additions & 135 deletions apps/desktop/src/renderer/styles/task-ledger.css

This file was deleted.

2 changes: 1 addition & 1 deletion docs/astryx-surface-file-inventory.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ Wiki bar: Design Conventions · API Use-the-System · Theming · Container Paddi
| `apps/desktop/src/renderer/styles/prompt-suggestions.css` | styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/quote-side-panel.css` | shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/search-modal.css` | dialog-overlay | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/session-todo-panel.css` | shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/settings.css` | styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/settings/about.css` | settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/settings/bot.css` | settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
Expand All @@ -185,7 +186,6 @@ Wiki bar: Design Conventions · API Use-the-System · Theming · Container Paddi
| `apps/desktop/src/renderer/styles/settings/wechat.css` | settings-module | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/shell-layout.css` | styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/sidebar.css` | shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/task-ledger.css` | styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/theme-glass.css` | styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/work-board.css` | styles | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
| `apps/desktop/src/renderer/styles/workbar/artifacts.css` | shell-chrome-or-panel | n/a (css) | aligned — no off-rhythm control heights flagged | aligned |
Expand Down
2 changes: 1 addition & 1 deletion docs/astryx-surface-file-inventory.paths
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ apps/desktop/src/renderer/styles/prompt-rail.css
apps/desktop/src/renderer/styles/prompt-suggestions.css
apps/desktop/src/renderer/styles/quote-side-panel.css
apps/desktop/src/renderer/styles/search-modal.css
apps/desktop/src/renderer/styles/session-todo-panel.css
apps/desktop/src/renderer/styles/settings.css
apps/desktop/src/renderer/styles/settings/about.css
apps/desktop/src/renderer/styles/settings/bot.css
Expand All @@ -156,7 +157,6 @@ apps/desktop/src/renderer/styles/settings/web-search.css
apps/desktop/src/renderer/styles/settings/wechat.css
apps/desktop/src/renderer/styles/shell-layout.css
apps/desktop/src/renderer/styles/sidebar.css
apps/desktop/src/renderer/styles/task-ledger.css
apps/desktop/src/renderer/styles/theme-glass.css
apps/desktop/src/renderer/styles/work-board.css
apps/desktop/src/renderer/styles/workbar/artifacts.css
Expand Down
14 changes: 7 additions & 7 deletions packages/ui/src/session-todo-panel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,18 @@ export function sessionTodoActiveCount(items: readonly SessionTodoItem[]): numbe
export function SessionTodoPanel(props: SessionTodoPanelProps) {
const copy = getSharedUiCopy(useUiLocale()).sessionTodo;
return (
<section className="maka-task-ledger-panel" aria-label={copy.ariaLabel}>
<section className="maka-session-todo-panel" aria-label={copy.ariaLabel}>
{props.error ? (
<Banner
status="error"
role="alert"
className="maka-task-ledger-message"
className="maka-session-todo-message"
title={props.error}
endContent={props.onRetry ? (
<IconButton
variant="ghost"
size="sm"
className="maka-task-ledger-retry"
className="maka-session-todo-retry"
onClick={props.onRetry}
label={copy.retry}
tooltip={copy.retry}
Expand All @@ -64,20 +64,20 @@ export function SessionTodoPanel(props: SessionTodoPanelProps) {
) : undefined}
/>
) : props.loading && props.items.length === 0 ? (
<Spinner size="sm" shade="subtle" label={copy.loading} className="maka-task-ledger-message" />
<Spinner size="sm" shade="subtle" label={copy.loading} className="maka-session-todo-message" />
) : props.items.length === 0 ? (
<EmptyState
isCompact
className="maka-task-ledger-empty"
className="maka-session-todo-empty"
icon={<ListTodo size={ICON_SIZE.empty} aria-hidden="true" />}
title={copy.empty}
/>
) : (
<ol className="maka-task-ledger-tree" aria-label={copy.activeAriaLabel}>
<ol className="maka-session-todo-tree" aria-label={copy.activeAriaLabel}>
{props.items.map((item, index) => {
const StatusIcon = STATUS_ICONS[item.status];
return (
<li className="maka-task-ledger-row" key={`${index}:${item.status}:${item.content}`}>
<li className="maka-session-todo-row" key={`${index}:${item.status}:${item.content}`}>
<StatusIcon size={ICON_SIZE.control} aria-hidden="true" />
<span>{item.content}</span>
</li>
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/src/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@
.maka-quote-chip-remove > svg,
.maka-quote-chip-remove svg { width: var(--icon-meta); height: var(--icon-meta); }

.maka-task-ledger-empty {
.maka-session-todo-empty {
margin: 0;
}

Expand Down