feat: strip speaker labels from the transcript, add a plain-prose prompt
The transcript labelled every message with a bold `**You**` or `**Lam**`,
which put both speakers at identical visual weight. The answer is what
gets read, so it now carries the emphasis alone:
- no speaker labels; the question is identified by its blockquote
styling (dimmed, italic, left rule) and the answer is plain body text
- nothing in the transcript is bold except an error
- tool calls collapse from a bold header plus a bullet list to one
italic line: _Tools: `web_search`, `get_fetch`_
Raycast solves the same problem with alignment (right-aligned bubbles),
but markdown has no alignment control, so styling is the only lever.
sessionToPlainText keeps its labels, and now says why: the transcript's
styling is gone by the time text reaches a clipboard.
The default system prompt gains explicit style rules: no em dashes, no
generated-text tells ("it's not just X, it's Y", "not just... but also",
"Great question", "I hope this helps"), avoid delve/tapestry/landscape/
leverage/robust/seamless/realm/testament, no restating the question, and
bold reserved for the direct answer to a factual question. This only
affects new answers; existing ones are already stored as rendered.
Verified on screen: the transcript reads as an answer with its question
quoted underneath, with no labels. typecheck, eslint, 130 tests and
vici build all pass.
This commit is contained in:
@@ -97,7 +97,7 @@ vicinae 'vicinae://launch/lam-agent/chat?fallbackText=summarise%20this'
|
||||
| **Ollama API Key** | — | Required. Stored by Vicinae as a password preference. |
|
||||
| **Model** | — | Required. Any model your key can reach. |
|
||||
| **Ollama Host** | `https://ollama.com` | Set to `http://localhost:11434` for a local server. |
|
||||
| **System Prompt** | Lam's default | Replaces the built-in prompt entirely. |
|
||||
| **System Prompt** | Lam's default | Replaces the built-in prompt entirely. The default asks for plain prose: no em dashes, no generated-text tells, no restating the question. |
|
||||
| **Web Tools** | on | Enables `web_search` and `web_fetch`. |
|
||||
| **Reasoning Effort** | Off | `low`/`medium`/`high` for models that support thinking. |
|
||||
| **Show Tool Calls** | on | Lists the tools Lam called under each answer. |
|
||||
@@ -156,7 +156,7 @@ A few decisions worth knowing about before you change things:
|
||||
|
||||
**The transcript reads newest message first.** The search bar sits at the top of the window, so the most recent message — an answer, once one has been written — is the first line under it rather than below the fold. Within a single exchange that means the answer appears above the question it responds to. `buildThread` produces that order, and `buildThreadMarkdown` regroups messages back into exchanges so the horizontal rule separates one exchange from the next instead of dividing every message.
|
||||
|
||||
**The transcript is text-only.** Speaker labels are plain `You` / `Lam`, with the question dimmed as a blockquote and the answer as body text. Icons are not possible there: `MdImage` renders images block-level, centred, and capped at 200px tall, and every candidate source was tried — `icon://person`, a raw icon slug, and a `file://` asset path — and each fell back to rendering its alt text as a caption.
|
||||
**The transcript is text-only, and nothing in it is bold except an error.** The answer is what gets read, so it is plain body text carrying no label; the question is a blockquote, which the renderer draws dimmed, italic, and with a left rule. A `**You**` / `**Lam**` header on each exchange gave both speakers identical weight and made the answer sit behind chrome. Tool calls collapse to one italic line (_Tools: `web_search`_) rather than a bold header plus a list, so they stay below the answer too. Raycast solves the same problem with alignment, but markdown offers no alignment control.
|
||||
|
||||
**Streamed deltas are buffered in refs and flushed to state on a timer** (`FLUSH_INTERVAL_MS`). Re-rendering the transcript per token makes the launcher visibly janky.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user