fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(desktop): keep Agent Graph results label from shrinking - #3970

Merged
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink
Aug 27, 2026
Merged

fix(desktop): keep Agent Graph results label from shrinking#3970
Astro-Han merged 1 commit into
apache:mainfrom
heeoneie:fix/agent-graph-results-label-shrink

Conversation

@heeoneie

@heeoneieheeoneie commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

.maka-agent-graph-results is a flex row, and the label <span> inside it had
neither flex-shrink: 0 nor white-space: nowrap. Flex therefore shrinks the
label to min-content whenever the id list needs room — and min-content in a
script with no break opportunities is one glyph, which is how 已选择结果
degrades into 已选 / 择结 / 果.

This is not zh-only. The same missing constraint breaks Selected results into
two lines, and it does so at the panel's full 680px measure, not just when the
window is narrow — the English label is long enough that two graph_record_*
ids already push it over. So the fix reads better as the label never shrinks
than as add nowrap for Chinese: the ids are the part of the row with room to
give, and they already truncate.

Fixes#3966

Verification

npm run lint && npm run format:check && npm run build && npm run typecheck
all pass locally.

Captured in Storybook per apps/desktop/stories/FIDELITY.md, which names it as
ground truth for pixel work, driving the real AgentGraphPanel in its real
frame (ChatSurfaceLayout, the host at app-shell.tsx:2848) with a
snapshot.finish carrying two graph_record_* ids. The story itself is not
committed: FIDELITY.md puts responsive behaviour outside the story lane (CI
mounts every story once at 1280 wide), and a narrower version of a state
already on screen is not its own story. A permanent guard for this belongs
with the agent-graph slice of #3944.

Two viewports × both shipped locales. The wide column is the control — it shows
the fix did not disturb the case that was already correct.

beforeafter
zh · 430px
en · 430px
zh · 980px
en · 980px

Not run: npm run test, and the desktop e2e suite — this changes no behaviour
either one asserts.

AI use

Select exactly one:

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Claude Code (Claude Opus 5) wrote the CSS rules and this
description, built the local Storybook harness, and captured the screenshots.
Root cause and scope came from the issue reporter and from my own reproduction.
The commit carries a Generated-by: Claude Code trailer.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Tests: none added. The repo has no computed-style contract for this panel, and
FIDELITY.md routes responsive behaviour to a packages/ui contract or the
desktop e2e harness rather than to a story — see the #3944 note above.

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@Astro-HanAstro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right diagnosis and the fix is scoped to it. The row is <div><span/><code/></div>, so > span and code name exactly the two children: the label stops shrinking, and code moves from the default 0 1 auto to flex: 1 1 0 so it absorbs the remainder and truncates through the min-width: 0 + text-overflow it already had. code carries no background or border, so a short id list filling the leftover width is invisible — no layout side effect on the case that was already correct, which the 980px column confirms.

Agreed that this reads as the label never shrinks rather than a zh-specific nowrap; English breaks at the panel's full measure too, and the ids are the part of the row with room to give.

AI-assisted review: I verified the JSX structure and the existing code rules against head dddfe12d3 myself. No tests run. AI review is not independent human review.

@Astro-Han
Astro-Han merged commit 14e8c7b into apache:mainAug 27, 2026
2 checks passed
saltand pushed a commit to saltand/maka-agent that referenced this pull request Aug 31, 2026
)
The label span in `.maka-agent-graph-results` had neither `flex-shrink: 0`
nor `white-space: nowrap`, so flex shrank it to min-content whenever the id
list needed room. In a script with no break opportunities min-content is one
glyph, which is how `已选择结果` degraded to `已选 / 择结 / 果`; `Selected
results` broke to two lines for the same reason, at the panel's full 680px
measure.
Pin the label and let the id list take the remainder, which is the part that
already truncates.
Fixesapache#3966
Generated-by: Claude Code
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/SUnder 100 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(desktop): prevent Agent Graph Selected results label from shrinking to min-content

2 participants

@heeoneie@Astro-Han