Skip to content

0.90.42: conversations are the kit's chat; host paths read relative; element defaults yield to the kit - #346

Merged
drewstone merged 4 commits into
mainfrom
fix/discovery-judges-20261027
Oct 27, 2026
Merged

drewstone merged 4 commits into
mainfrom
fix/discovery-judges-20261027

Conversation

@drewstone

@drewstone drewstone commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

This fixes the blockers that the judges and Drew found on the served Discovery run pages (agent-record 0.90.41).

Conversations look like a chat (Drew, 2026-10-27). Every transcript now renders with @tangle-network/ui, the same components agent apps use. This covers the Conversations tab, the live stream and recorded conversations:

  • The prompts an agent received are the reader's own right-aligned bubbles (UserMessage). The time shows on hover. Long prompts open in full on request.
  • The agent's words read as prose on the left (AgentTimeline).
  • Reasoning and tool calls are the kit's one-line rows (InlineThinkingItem, and InlineToolItem through AgentTimeline). They stay collapsed until opened, and a failure shows on its own row. Tools read as their verb and subject (Read inputs/commission.md), and namespaced tools by their own names.
  • A tool call with JSON arguments reads as its subject (knowledge read magnetar-rust-work-peer-4-s37-state, observe agent s37), and a failed call shows its message (File not found: inputs/profile-examples/README.md), not the JSON that carried it.
  • Deleted: the per-message author line and "PR" chip, the timestamp rows, the Details link on every message, the · glyphs, the Returned/+ columns, and the "Settled transcript · N stream events" toolbar. "Load older" and "Latest" appear only when they do something.

Host paths. Recorded /home/<user>/.cache/disco/host/<run>/sessions/<session>/… paths now read as run-relative paths (inputs/commission.md) when a record is indexed, so no transcript prints them. Any other home folder reads as ~/.

Element defaults yield to the kit (cause of the detached ×, the triple-ring segmented controls and the glued headings). The renderer's unlayered :where(.agent-record) button reset and .ar-ws h1/h2 rules beat every kit utility. Because of that:

  • FileTabs drew a box around each tab and a separate × box.
  • SegmentedControl drew a ring on every button.
  • Markdown ## headings in the file preview lost their size and top margin.

These element defaults now sit in an ar-base cascade layer between Tailwind's base and components, so kit components draw as the kit draws them, while plain markup keeps the defaults.

Files. The tree is a recessed well (--well-card) beside the document's paper. The toolbar actions are ghost buttons with no frame. The preview's margins now sit inside its scroller, so text runs to the pane edge instead of clipping 64 px short.

Overview.

  • A live run's primary action is "Watch the timeline", not a link to a stopped sibling run.
  • The Check card names the same checker as the Checks tab, plus the latest line.
  • A run that crosses UTC midnight names the day on its clocks.
  • elapsed and lat round before splitting, so a duration never reads 23h 60m or 1m 60s.
  • Sparkline bars are at least 4 px tall.
  • The strip's hour ticks keep clear of end clocks that name the day (no more Oct 24 23:08h).
  • The secondary button (Files, Conversation, Done) draws one ring. Its .outline modifier collided with Tailwind's .outline utility, which drew a second ring in the text colour; the modifier is now .framed.

Names and counts.

  • An agent's name is cut to the part that tells it apart (peer-director-3-battery3-poll2 → 3-battery3-poll2) in Topology, Analytics, Traces and Conversations.
  • Conversations shows one agent count in both places.
  • "1 step" instead of "1 steps".
  • An agent's time span never ends before it starts.
  • On a phone, Conversations is master-detail with a back button.
  • A free seat no longer prints $0.00 on every timeline lane.

Release: this PR bumps the version to 0.90.42.

Tests: tests/conversation.test.mjs renders the shared fixture through AgentRecord and asserts the collapsed polls, absent captures and withheld thinking as before. The gate runs typecheck, build and the test suite.

Run ID: run_c9c3fa4d167d8e14a2fd554bc4730081

…efaults yield to the kit

- Every transcript renders with @tangle-network/ui: prompts as the reader's right-aligned bubbles (time on hover),
  prose on the left, reasoning and tool calls as the kit's collapsed one-line rows with failures inline. The per-row
  author line, timestamp row, Details link, Returned/+ columns and the stream-event toolbar are gone.
- Recorded host paths (/home/<user>/.cache/disco/host/<run>/sessions/<s>/...) read as run-relative paths when a record
  is indexed, so no transcript prints them.
- The renderer's element defaults (button, select, headings, links, pre) sit in a cascade layer below the kit's
  components and utilities: tabs join their content with an inline close, segmented controls draw one track, and
  markdown headings keep their spacing in the file preview.
- Files: the tree is a recessed well, toolbar actions are ghost buttons, and the preview's margins sit inside its scroller.
- Overview: a live run's primary action is watching it, the Check card names the current checker and its latest line,
  multi-day runs name the day, durations never read 23h 60m, sparkline bars are readable.
- Agent names cut to what tells them apart; one agent count in Conversations; '1 step'; spans never end before they
  start; phone Conversations is master-detail; free seats print no $0.00 on timeline lanes.
…cks clear dated end clocks

- A tool call with JSON arguments reads as its command, path, question or page id; a run-scoped id reads as its own part.
- A failed call shows its error message, not the JSON that carried it.
- The Overview strip's hour ticks keep clear of end clocks that name the day.
- One link-button rule: links underline on hover only.
- .rp-btn.outline collided with Tailwind's .outline utility, which drew a second foreground-coloured ring around Files,
  Conversation and Done. The modifier is .framed.
@drewstone drewstone changed the title Conversations are the kit's chat; host paths read relative; element defaults yield to the kit 0.90.42: conversations are the kit's chat; host paths read relative; element defaults yield to the kit Oct 27, 2026
@drewstone
drewstone merged commit 9c7bd9b into main Oct 27, 2026
1 check passed
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