Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 29 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ between releases do not reach them. Remote-PC runtime bundles are versioned sepa
## [Unreleased]

### Added
- Turkish (Türkçe) UI translation: a full `i18n.tr.ts` dictionary, the language in the Settings menu with browser detection, and a Turkish README. ([#815](https://github.com/devswha/herdr-web-ui/pull/815) by @fitzgpt)
- Native conversation transcripts for Hermes Agent: turns, thinking blocks, and tool calls are read directly from its SQLite session store. ([#604](https://github.com/devswha/herdr-web-ui/pull/604) by @RikiSanjayaa)
This server change needs a `REMOTE_BUNDLE_VERSION` bump at release so remote PCs can read Hermes transcripts.
- **Deep links.** The address now says where you are, and opens there: the PC, the workspace (by id and a short slug of its name, so `?ws=w2K-herdr-web-ui&pane=w2K:p1&view=chat` reads like the place), the pane and its lens, an open file, a Settings page and group (`&settings=about&section=updates`), the New workspace dialog with its fields filled (`?new=workspace&cwd=…&name=…&agent=…`; a link never creates anything), and a collapsed sidebar (`&sidebar=hidden`). Opening another pane is a history entry, so Back returns to the last one. A link to a pane that has closed opens its workspace, a link to nothing open says so, and **Copy link** in the header's More menu copies the address on a phone.
Expand Down Expand Up @@ -46,18 +47,34 @@ between releases do not reach them. Remote-PC runtime bundles are versioned sepa
([#775](https://github.com/devswha/herdr-web-ui/pull/775) by @vibewriter-hand)
- A Claude Code or Codex pane's plan appears as progress in the header and sidebar. Open it
from the header in Chat or Terminal to see its steps as a flow or a list, with the current
step and elapsed times. It is read from the agent's transcript.
([#531](https://github.com/devswha/herdr-web-ui/pull/531) by @kilhyeonjun)
step and elapsed times. It is read from the agent's transcript. **Settings → Appearance** can
take the count out of the header (**Plan count in the header**) and open the plan as the
list alone (**Plan flow**); both are on by default.
([#531](https://github.com/devswha/herdr-web-ui/pull/531) by @kilhyeonjun, [#820](https://github.com/devswha/herdr-web-ui/pull/820))
- A `mermaid` code block in the chat is drawn as a diagram, with a full-screen lightbox to zoom and
pan it, and the file viewer renders markdown files with local images; larger images are offered
as downloads. ([#616](https://github.com/devswha/herdr-web-ui/pull/616) by @lyonbot)
- Pin agents to the top of the Agents list with the star beside each row; pins keep their order across reloads. ([#778](https://github.com/devswha/herdr-web-ui/pull/778) by @vibewriter-hand)
- **Settings → Appearance → Pin agents** (off by default) shows a star beside each row of the Agents list that pins the agent to the top; pins keep their order across reloads. ([#778](https://github.com/devswha/herdr-web-ui/pull/778) by @vibewriter-hand, [#820](https://github.com/devswha/herdr-web-ui/pull/820))
- An OpenCode pane on a 1.x store (`session`/`message`/`part`) reads as a conversation again, where
the chat used to keep the terminal's text: prompts with the pictures pasted in them, each answer's
steps with their tool calls and outputs, and the turns an `/undo` took back.
([#690](https://github.com/devswha/herdr-web-ui/pull/690) by @okcedric)

### Changed
- The anonymous install and update counts also name the appearance settings changed from their
defaults (theme, density, colors, sidebar rows, Agents order, workspace cards, pin agents and the
two plan settings): the names only, never a value, and never a setting you type. The notice is
shown once more before anything is sent, and the same switch and environment variables turn it off.
([Anonymous usage counts](docs/guide.md#anonymous-usage-counts), [#820](https://github.com/devswha/herdr-web-ui/pull/820))
- On a phone the app moves and responds like an iPhone app rather than a web page. Menus,
dialogs, the palette and Settings slide up from the bottom, follow your finger when you drag
them down, and slide away however they close; the workspace drawer follows your finger too.
Over the chat the header is frosted glass that the conversation scrolls under, and the message
box floats over the conversation's end. A tapped button dims at once instead of drawing an amber
box, a list row fills when pressed, a long press on the app's buttons and rows no longer selects
their text.
([#683](https://github.com/devswha/herdr-web-ui/pull/683) by @jiunshinn)

- Chat updates follow native transcript changes pushed through the existing WebSocket.
Only visible Chat views subscribe; Terminal views and hidden tabs release conversation
monitoring. Continuous pushes coalesce into at most one newest-page refresh every 2 seconds,
Expand All @@ -68,13 +85,17 @@ between releases do not reach them. Remote-PC runtime bundles are versioned sepa
A remote PC gets pushes once its bridge runs a bundle with this change. Approval-card polling
remains independent.
([#689](https://github.com/devswha/herdr-web-ui/pull/689) by @zerodice0, [#757](https://github.com/devswha/herdr-web-ui/pull/757))
- The sidebar's Agents list puts each workspace's agents in a card under the workspace's name,
so agents working in the same workspace read as one group. The rows no longer repeat the
workspace on their second line; their tooltips still name it. A list in Activity order stays
as it was, since it mixes workspaces.
([#673](https://github.com/devswha/herdr-web-ui/pull/673) by @WOULDU-pres)
- **Settings → Appearance → Workspace cards** (off by default) puts each workspace's agents in
the sidebar's Agents list in a card under the workspace's name, so agents working in the same
workspace read as one group. Rows in a card do not repeat the workspace on their second line;
their tooltips still name it. A list in Activity order draws no cards, since it mixes workspaces.
([#673](https://github.com/devswha/herdr-web-ui/pull/673) by @WOULDU-pres, [#820](https://github.com/devswha/herdr-web-ui/pull/820))

### Fixed
- A phone shows a split tab one pane at a time again, at the screen's whole width, instead of
every pane squeezed into herdr's grid (since 0.4.6). The tab's menu lists the tab's panes to
switch between them. Wider screens keep the split, and herdr's own layout is not changed.
([#819](https://github.com/devswha/herdr-web-ui/pull/819))
- Chat hides a rejected conversation immediately, even when reading its terminal fallback
is slow or fails, so removed history does not remain on screen.
([#789](https://github.com/devswha/herdr-web-ui/pull/789) by @infowolfe)
Expand Down
8 changes: 5 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ Neither command updates itself; only `bun run start` and the plugin run the upda
managed by a maintainer for a genuine code dependency; code conflicts and approval gates are
scheduling constraints, not reasons to stack. See the [coordinated-work procedure](docs/development.md#coordinated-work).
Contributors must not assume elevated permissions or that a stack has been authorized.
- One change per PR. PRs are squash merged, so the PR title becomes the commit:
- One change per PR. Changes that cannot stand apart, because one needs another's code, may share
a PR: keep each as its own commit, in the order they depend on each other, and say in the
description what needs what. PRs are squash merged, so the PR title becomes the commit:
`type(scope): summary`, for example `fix(chat): keep the finished turn finished after Send`.
The merge adds `(#N)`.
- Fill in the [PR template](.github/pull_request_template.md): what changed and how you checked it.
Expand Down Expand Up @@ -74,8 +76,8 @@ running terminals: see [development](docs/development.md#checks).
contract test (`server/api.contract.test.ts` for endpoints). A test that needs a live herdr is named
`*.contract.test.ts`.
- **herdr wire types:** never edit `shared/herdr-api.generated.ts`; run `bun run generate:types`.
- **UI text:** every new `t("…")` string needs an entry in `src/lib/i18n.ko.ts`, `i18n.ja.ts` and
`i18n.zh.ts`, with the same placeholders. `bun run test:unit` fails on a missing, unused or
- **UI text:** every new `t("…")` string needs an entry in `src/lib/i18n.ko.ts`, `i18n.ja.ts`,
`i18n.zh.ts` and `i18n.tr.ts`, with the same placeholders. `bun run test:unit` fails on a missing, unused or
untranslated entry.
- **UI:** component CSS uses the tokens in `src/styles.css` (see [DESIGN.md](DESIGN.md)); attach a
screenshot or recording from a test or demo session.
Expand Down
Loading
Loading