Replace the checkbox-style bullet format with a Markdown table matching
the extract-action-items command. Status is binary now —
"abgeschlossen" only when the conversation explicitly confirms it,
otherwise "offen". Deadline cells are left blank unless a concrete date
appears in the text, so the model can't fabricate due dates.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
An ASCII " inside the prompt literal terminated the string mid-line —
esbuild then choked on the trailing tokens. Use „…“ (typographic) so
the JS string stays one piece.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Action Items section in the email summary sometimes omitted whether
an item was open, in progress, or done — leaving the reader to guess.
Force a leading [ ] / [x] / [~] marker on every entry, define how to
derive the status from the conversation, and lock down the per-entry
format so verantwortlich + deadline land in predictable slots.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Drop the summaryModel preference (and the awkward textfield holding a
raw model ID nobody could discover without poking the SDK types). Each
AI view now controls its model dropdown, loads the shared
velum.ai.last-model on mount, and writes it back on submit — so picking
Claude 4.7 Opus in the summarize command becomes the prefilled default
in briefing, action-items, structured-data, and reply next time around.
Also drops 'model' from ReplyDefaults; the shared key supersedes it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@raycast/api ships only types, no runtime JS. AI.Model is injected by
Raycast at runtime and Object.entries() returned an unpredictable
(and incomplete) subset — so half the current models were missing
from the in-view dropdown.
Replace the dynamic derivation with an explicit curated list covering
all 55+ non-deprecated entries from the SDK type defs, ordered by
provider with the strongest models first. Update README to point at
src/ai.ts as the place to keep this in sync with future SDK bumps.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Generate MODEL_OPTIONS at runtime from AI.Model (dedupe by value, drop
@deprecated aliases), so the AI-view dropdowns show every model the
installed @raycast/api ships — no more hand-maintained six-entry list.
Switch the summaryModel preference from a static dropdown to a textfield
holding a model ID. The discoverable picker lives in the AI views (now
fully dynamic), and the preference just stores the chosen default.
Drop duplicate MODEL_OPTIONS / CREATIVITY_OPTIONS constants from
summarize-email.tsx and reply-email.tsx; both pull from ./ai now like
the briefing and extract views already do.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Clarify in the preferences list that summaryModel acts as a default
overridable per AI view, and that userFullName is overridable in the
reply-email form. Also lock closeAfterAction as a required preference.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Cover the AI workflows (summarize / reply / briefing / action-items /
structured-data), the symmetrical depseudonymize commands, all
preferences including the new close-after-action checkbox, and the
Raycast 2.0 Beta workarounds the codebase relies on.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pseudonymize-and-AI workflow for handling PII-sensitive text via the
Velum API and Raycast AI. Commands cover end-to-end email summary and
reply, briefing/action-items/structured-data extraction, manual
pseudonymize/depseudonymize on selection or clipboard, and session
management. Includes Raycast 2.0 Beta workarounds for selection capture
and rich-text clipboard.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>