Add voice, attachments, and discovered model/reasoning controls to the composer #2

Open
opened 2026-08-21 08:28:48 +00:00 by kayg · 0 comments
Owner

Goal

Evolve the composer toward the ChatGPT macOS interaction model: voice note, attachments, and model/reasoning controls, all inferred from Hermes capabilities rather than hardcoded.

Capability discovery

Use the authenticated dashboard/API contracts as source of truth:

  • GET /api/model/options for provider/model/reasoning/service-tier options.
  • Session model selection/locking through the Hermes session JSON-RPC/API contract.
  • Advertised capabilities before showing attachments/audio controls.

Features

  1. Voice-note recording with clear recording state, duration, cancel, and review-before-send.
  2. Attachments with native picker, drag/drop, paste, removable chips, size/type validation, and upload progress.
  3. Model and reasoning selection near the send control, showing the effective session choice and any lock.
  4. Controls collapse cleanly at narrow window sizes and remain keyboard accessible.

Constraints

Do not show dead controls when the connected gateway lacks a capability. No WebView and no direct assumptions about one provider's model names.

Acceptance

The composer derives available controls/options from the connected Hermes instance and sends an end-to-end message through each supported path.

## Goal Evolve the composer toward the ChatGPT macOS interaction model: voice note, attachments, and model/reasoning controls, all inferred from Hermes capabilities rather than hardcoded. ## Capability discovery Use the authenticated dashboard/API contracts as source of truth: - `GET /api/model/options` for provider/model/reasoning/service-tier options. - Session model selection/locking through the Hermes session JSON-RPC/API contract. - Advertised capabilities before showing attachments/audio controls. ## Features 1. Voice-note recording with clear recording state, duration, cancel, and review-before-send. 2. Attachments with native picker, drag/drop, paste, removable chips, size/type validation, and upload progress. 3. Model and reasoning selection near the send control, showing the effective session choice and any lock. 4. Controls collapse cleanly at narrow window sizes and remain keyboard accessible. ## Constraints Do not show dead controls when the connected gateway lacks a capability. No WebView and no direct assumptions about one provider's model names. ## Acceptance The composer derives available controls/options from the connected Hermes instance and sends an end-to-end message through each supported path.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/hermternal-apple#2
No description provided.