Commit Graph

9 Commits

Author SHA1 Message Date
muena
7f3f26534c fix(summarize): switch action items to a strict 2-state table
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>
2026-05-20 08:18:04 +02:00
muena
d97e636259 fix(summarize): close German quotes properly to keep the string valid
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>
2026-05-20 08:14:12 +02:00
muena
c319cab1ec fix(summarize): require explicit status marker on every action item
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>
2026-05-20 08:11:54 +02:00
muena
9bc621307c feat: persist last-used model in LocalStorage instead of preference
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>
2026-05-20 07:33:27 +02:00
muena
cc4742cf38 fix: hardcode model list — Raycast runtime doesn't expose AI.Model object
@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>
2026-05-20 07:18:27 +02:00
muena
c0078ce339 feat: derive AI model list from Raycast SDK enum
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>
2026-05-20 07:08:58 +02:00
muena
c8b3cf44e3 docs: note model and signature overrides in AI views
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>
2026-05-20 07:01:35 +02:00
muena
3bff4bcad0 docs: refresh README to current command and preference surface
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>
2026-05-20 06:48:25 +02:00
muena
1843479884 Initial commit: Velum Raycast extension
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>
2026-05-20 06:46:42 +02:00