Skip to content

Revert the app to v0.1.34 - #102

Merged
alexkroman merged 1 commit into
mainfrom
revert-to-v0.1.34
Jul 29, 2026
Merged

Revert the app to v0.1.34#102
alexkroman merged 1 commit into
mainfrom
revert-to-v0.1.34

Conversation

@alexkroman

Copy link
Copy Markdown
Collaborator

Rolls the tree back to e08a9ce (v0.1.34) by reverting everything merged since, newest first:

PR Title
#101 chore: bump to v0.1.36
#100 feat(stt): stop sending anything about the running app to the LLM
#99 chore: bump to v0.1.35
#98 Add app-kind guidance to transcription prompts

All four reverts applied with no conflicts, and git diff e08a9ce is empty — this is a byte-exact rollback, not an approximation. CFBundleShortVersionString is back to 0.1.34.

This undoes more than the app-kind work

#98 and #100 partly cancel each other — #100 removed the app-kind clause #98 introduced — but #98 carried the whole dictation-API steering rework, and all of it is undone here:

  • config.prompt is sent again, built by TranscriptionPrompt from the focused app, window, and field plus the user's key terms and the text around the cursor.
  • TranscriptionSteering is gone, and with it the split into conversation_context, keyterms_prompt, and llm.instruction. Key terms revert to a Keywords: a, b, c. clause inside the prompt; prior-cursor text becomes contextual priming in the prompt rather than a conversation turn.
  • AppKindPriming is live againStop sending anything about the running app to the LLM #100's removal was itself reverted, so the bundle-ID → app-kind table is back and Blurt once more describes the running app to the LLM.
  • DictationLog records the assembled prompt again, alongside the frontmost app's bundle ID.

Docs (AGENTS.md, BLURTENGINE.md, README.md, .claude/skills/project-guardrails) go back to describing that design.

Verification

swift test — 424 tests / 67 suites pass. Debug app build succeeds.

scripts/check.sh as a whole does not pass on the machine this was prepared on: it aborts in the XCUITest suite with nine harness window was not presented failures. Those reproduce on v0.1.34 itself and on unrelated branches, so they predate this change and this revert neither causes nor fixes them. CI is the authority here.

🤖 Generated with Claude Code

Rolls the tree back to e08a9ce (v0.1.34) by reverting everything merged
since, newest first:

- #101 chore: bump to v0.1.36
- #100 feat(stt): stop sending anything about the running app to the LLM
- #99  chore: bump to v0.1.35
- #98  Add app-kind guidance to transcription prompts

#98 and #100 partly cancelled — #100 removed the app-kind clause #98 added —
but #98 carried much more than that, and all of it is undone here. Restored
as a result:

- `config.prompt` is sent again, built by `TranscriptionPrompt` from the
  focused app, window, and field plus the user's key terms and the text
  around the cursor.
- `TranscriptionSteering` is gone, and with it the split into
  `conversation_context`, `keyterms_prompt`, and `llm.instruction`. Key terms
  are back to a `Keywords: a, b, c.` clause inside the prompt; prior-cursor
  text is contextual priming in the prompt rather than a conversation turn.
- `DictationLog` records the assembled prompt again, alongside the frontmost
  app's bundle ID.
- `AppKindPriming` returns with #98 and is not re-removed: #100's removal was
  reverted too, so the bundle-ID → app-kind table is live again.

Docs (AGENTS.md, BLURTENGINE.md, README.md, the project-guardrails skill) go
back to describing that design. `CFBundleShortVersionString` is 0.1.34.

`git diff e08a9ce` is empty, so this is an exact rollback rather than an
approximation.

Verified: swift test (424 tests, 67 suites) and the Debug app build both
pass. scripts/check.sh as a whole does not pass on this machine — it aborts
in the XCUITest suite with the "harness window was not presented" failures
that predate all of this work.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 29, 2026 21:16
transcript: transcript, ts: now.formatted(timestampFormat),
conversationContext: steering.conversationContext,
keytermsPrompt: steering.keyterms)
app: context?.appName, window: context?.windowTitle, field: context?.fieldLabel,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DictationLog.write now includes and persists the assembled prompt and focus-context fields (app, window, field, prior, selected), which contain user-controlled text (transcripts, prior/selected text). Avoid writing raw prompts or user speech to disk or sanitize/mask them before logging.

Details

✨ AI Reasoning
​The PR reintroduces writing the fully-assembled transcription prompt and several focus-context fields into the append-only dictation log. The assembled prompt is built from user-controllable inputs (priorText, selectedText, keyTerms) and contextual metadata (appName, windowTitle, fieldLabel). Persisting that prompt and the raw prior/selected text increases the amount of user-provided content written out. Writing raw transcripts or prompt payloads to a developer-visible JSONL file risks exposing sensitive user speech or other PII. This change therefore increases the surface for leaking unsanitized user data compared to the previous version, where those fields were omitted.

🔧 How do I fix it?
Keep sensitive data such as emails, passwords, and tokens out of logs. When logging values tied to a user, prefer a safe identifier like a user ID over the raw input, and strip line breaks from any user-provided text you do log.

Reply @AikidoSec feedback: [FEEDBACK] to get better review comments in the future.
Reply @AikidoSec ignore: [REASON] to ignore this issue.
More info

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Rolls the repository back to v0.1.34 (e08a9ce) by reverting the changes introduced in PRs #98#101, restoring the prior dictation-request shape and documentation.

Changes:

  • Replaces TranscriptionSteering (and its tests) with TranscriptionPrompt for per-utterance config.prompt priming, and updates AssemblyAITranscriber + related tests accordingly.
  • Restores/updates dictation logging to record focus-context fields and the assembled prompt again.
  • Reverts app versioning back to 0.1.34 / build 35, and rolls docs back to match the v0.1.34 behavior.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Tests/BlurtEngineTests/TranscriptionSteeringTests.swift Removes steering-field contract tests (rollback).
Tests/BlurtEngineTests/TranscriptionPromptTests.swift Adds prompt-building contract + cap/keywords tests (rollback behavior).
Tests/BlurtEngineTests/TranscriptionContextTests.swift Updates emptiness contract to match prompt-building semantics.
Tests/BlurtEngineTests/DictationLogTests.swift Updates log schema expectations to include context fields + assembled prompt.
Tests/BlurtEngineTests/AssemblyAITranscriberTests.swift Updates config-part expectations to use prompt and pins llm presence.
Sources/BlurtEngine/STT/TranscriptionSteering.swift Deletes steering-field builder (rollback).
Sources/BlurtEngine/STT/TranscriptionPrompt.swift Adds prompt builder used for config.prompt priming (rollback behavior).
Sources/BlurtEngine/STT/TranscriptionContext.swift Updates context documentation/semantics to match prompt priming.
Sources/BlurtEngine/STT/AssemblyAITranscriber.swift Switches from steering fields to prompt generation in config encoding.
Sources/BlurtEngine/Pipeline/DictationSession+Pipeline.swift Updates pipeline commentary about losing priming/prompt on context loss.
Sources/BlurtEngine/Pipeline/DictationLog.swift Changes log entry schema to include focus context + assembled prompt.
Sources/BlurtEngine/FocusCapture/FocusCapture.swift Updates terminology/docs around captured priming signals and secure-field handling.
Sources/BlurtEngine/Config/KeyTermsStore.swift Updates documentation to reflect keyword priming via prompt.
README.md Updates engine map description to reference TranscriptionPrompt.
BLURTENGINE.md Reverts API/design docs to prompt-based priming and updated log description.
App/Blurt/project.yml Reverts bundle versioning to 0.1.34 / build 35.
App/Blurt/Blurt/Wizard/Steps/KeyTermsStepView.swift Updates UI copy to describe key terms as prompt priming.
App/Blurt/Blurt/Info.plist Reverts CFBundleShortVersionString/CFBundleVersion to 0.1.34/35.
AGENTS.md Reverts architecture/docs to prompt-based priming and updated STT section naming.
.claude/skills/project-guardrails/SKILL.md Updates guardrails text to match reverted design (contains one incorrect statement noted in review).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +26 to 28
- **No separate LLM cleanup pass.** Cleanup rides in the Sync STT request's
`config.prompt` (`TranscriptionPrompt`). No LLM Gateway client, no
`StylerProtocol`, no post-transcription styling stage.
@alexkroman
alexkroman enabled auto-merge July 29, 2026 21:24
@alexkroman
alexkroman added this pull request to the merge queue Jul 29, 2026
Merged via the queue into main with commit 8f0955e Jul 29, 2026
8 checks passed
@alexkroman
alexkroman deleted the revert-to-v0.1.34 branch July 29, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants