cliffhall
71cb7f3eae
feat(web): state the file store as a sentence, and copy its path on click
...
The footer's file states now read "Secrets: Plaintext file. Owner-only
permissions." and "Secrets: Encrypted file. Owner-only permissions.",
and the band itself became the copy affordance for the path.
Three things worth reviewing:
- The path is no longer printed on the band. It goes to the clipboard
instead, which means the only place it stays *readable* is the
button's accessible name — so that carries it in full
("Copy secrets file path: /home/node/.mcp-inspector/secrets.json")
rather than a generic "Copy". A clipboard is no use to a screen-reader
user who cannot inspect it.
- "Owner-only permissions." is a claim of fact, so it is made only when
the mode was verified as 0600. `looseMode` is set exactly when it is
something else and could not be tightened, and the message says
"Mode 0644 — not owner-only." there. A footer that asserted the
opposite of the truth about a secrets file is the one failure this
band exists to prevent, so it has its own test.
- The footer phrases its own copy rather than reusing
`secretStorageLabel` for the file case: that label is parenthetical
("File (unencrypted)") because the startup banner appends
" at <path>" to it. The tone and the underlying facts still come from
the shared helpers, so the two surfaces cannot disagree about
anything that matters. Memory's line is still derived from the shared
caveat.
The click target is an `UnstyledButton` filling the band edge to edge —
a real control, reachable by keyboard and announced as a button, rather
than a click handler on a div. Padding moved from the band to the inner
row so the button has no dead margins.
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-08-22 14:05:13 -04:00
..
AnnotationBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
AppRenderer
refactor(web): sharpen the src/lib vs src/utils rule and move misfiled modules ( #1784 )
2026-07-25 22:24:30 -04:00
CapabilityItem
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
CategoryBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ClearButton
fix(web): section-header hover outline + clear buttons out of tab order ( #1487 ) ( #1488 )
2026-06-14 22:27:46 -04:00
CodeHighlight
feat(web): expand ContentViewer to render PDF, CSV, HTML, XML, JSON, CSS ( closes #1329 ) ( #1551 )
2026-06-30 09:18:43 -04:00
ConnectionToggle
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
ContentViewer
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
CopyButton
fix: disambiguate the two token rows' controls for screen readers ( #2019 )
2026-08-15 21:13:11 -04:00
CopyrightBadge
web: server-screen, footer, monitoring-sidebar, and responsive-header polish ( #1683 )
2026-07-14 08:55:39 -04:00
EmbeddableScrollArea
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
EraBadge
History: MRTR conversation grouping + modern message vocabulary ( #1705 )
2026-07-17 20:02:11 -04:00
ExpandToggle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
FilterToggleButton
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
ListChangedIndicator
test(coverage): bootstrap vitest unit infra and add tests at 90%+ per file ( #1245 ) ( #1269 )
2026-05-01 15:15:32 -04:00
ListLoadError
fix: surface list-fetch failures instead of swallowing them
2026-08-08 16:48:48 -04:00
ListPaginationControls
Thread cacheMode through managed list refresh via SDK cache-aware verbs ( #1721 ) ( #1723 )
2026-07-19 01:06:31 -04:00
ListToggle
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
LogEntry
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
LogLevelBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
MalformedItemsWarning
fix: salvage a list result's valid entries when one is malformed ( #1909 )
2026-08-15 16:52:11 -04:00
McpErrorBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MessageBubble
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
MessageDirectionBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MethodBadge
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MonitoringToggle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
MrtrOriginNote
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
PinToggle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ProgressDisplay
SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') ( #1624 )
2026-07-15 10:44:24 -04:00
ReplayButton
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ResizeHandle
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
ResourceLinkInfo
web: Group tool-result resource_links in a scrollable "Resource Links" box with Protocol colors ( #1686 )
2026-07-15 14:07:27 -04:00
ScreenStage
chore(lint): enable no-floating-promises in all five ESLint scopes
2026-08-16 20:57:32 -04:00
SecretStorageFooter
feat(web): state the file store as a sentence, and copy its path on click
2026-08-22 14:05:13 -04:00
ServerStatusIndicator
web: server-screen, footer, monitoring-sidebar, and responsive-header polish ( #1683 )
2026-07-14 08:55:39 -04:00
SortToggle
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
SubscribeButton
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
SubscriptionStreamBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
TaskStatusBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
TransportBadge
refactor(web): sweep AGENTS.md TypeScript + Mantine rule violations ( #1771 )
2026-07-25 11:38:49 -04:00
VersionBadge
web: server-screen, footer, monitoring-sidebar, and responsive-header polish ( #1683 )
2026-07-14 08:55:39 -04:00
accessibleTextColor.test.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
accessibleTextColor.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
filledBadgeColor.test.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00
filledBadgeColor.ts
web: Accessibility — accessible palette + WCAG AA contrast, labels, names, roles ( #1679 )
2026-07-13 18:20:55 -04:00