Skip to content

feat: polish tools and session UI - #76

Merged
teedole merged 3 commits into
mainfrom
teedole/tools-ui-polish
Jul 30, 2026
Merged

feat: polish tools and session UI#76
teedole merged 3 commits into
mainfrom
teedole/tools-ui-polish

Conversation

@teedole

@teedole teedole commented Jul 29, 2026

Copy link
Copy Markdown
Member

Summary

  • Polish Tools & MCP with a responsive 2×2 summary, deterministic table column budgets, contained long-name overflow, and explicit Error / OK / Unknown status badges in both the table and detail drawer.
  • Add compact session-list timestamps and guard report/share backdrops so only direct backdrop clicks dismiss their dialogs.

is_error = null intentionally maps to Unknown. The archive does not expose an independent pending state, so presenting Pending would invent information.

Why

The Tools page could widen unpredictably around long MCP names, tool outcomes were ambiguous, session rows lost useful date context, and clicks inside report/share dialogs could bubble into their dismissal backdrops.

Validation

  • just check passes: 658 tests, TypeScript, Biome, and the darwin-arm64 distribution staging smoke.
  • New behavior has focused tests. No existing test was weakened or deleted to make this pass.
  • Adversarial PR-style review is clean after increasing the status-column budget to preserve the full Unknown label.
  • Synthetic-archive browser validation at 1440px light and 1024px/680px dark: long names truncate, table overflow remains contained, the 2×2 summary holds at 680px, all status labels remain readable, and the console reports zero errors.
  • Browser behavior validation: the Unknown detail drawer renders the same status; inner report-sheet clicks keep it open; a direct backdrop click dismisses it.

Archive schema

The baseline is LATEST_SCHEMA_VERSION in src/db.ts. Check one:

  • This change does not touch the archive schema.
  • This change bumps the schema. It ships the migration, and the summary above says what happens to archives created before it.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request introduces relative time formatting helpers, dynamic table column layouts, and an improved tool call status badge, along with comprehensive unit tests. The feedback highlights a critical performance optimization: caching the Intl.DateTimeFormat and Intl.RelativeTimeFormat instances at the module level to prevent expensive re-instantiations during table renders.

Comment thread src/ui/date-time.ts
Comment thread src/ui/date-time.ts

@teedole teedole left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Addressed review findings; inline replies include the implementation and validation evidence.

Comment thread src/ui/date-time.ts
@teedole
teedole marked this pull request as ready for review July 29, 2026 23:34
@teedole

teedole commented Jul 30, 2026

Copy link
Copy Markdown
Member Author

Validator follow-up complete at signed tip c670831.

  • The no-duration call-status column is 12 percent, and tests pin both duration layouts.
  • Removed the dead has-duration class.
  • Unknown status now has keyboard/screen-reader-visible explanatory text.
  • Compact relative time rolls 24h into 1d.

Evidence: focused UI suites and adversarial re-review clean; combined #73-#79 gate 781/781 plus TypeScript, Biome, distribution smoke, and headed desktop/mobile rendering.

@teedole
teedole force-pushed the teedole/tools-ui-polish branch from c670831 to b420045 Compare July 30, 2026 03:03
@teedole
teedole merged commit 4ff1caf into main Jul 30, 2026
6 checks passed
@teedole
teedole deleted the teedole/tools-ui-polish branch July 30, 2026 03:05
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