Skip to content

Commit a08e571

Browse files
anandgupta42claude
andauthored
fix: address 4 issues found in post-v0.2.2 commits (#49)
- Restore missing ALTIMATE_CLI_LIBC build define dropped when OPENCODE_* constants were removed, fixing file watcher on musl Linux - Correct security FAQ claim that conversation history is not persisted; sessions are stored in SQLite and prompt history on disk - Guard session_end telemetry in finally block with dedup flag to prevent duplicate events when emergency handler already fired - Remove unused Filesystem import in worker test Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent fdf662b commit a08e571

File tree

4 files changed

+18
-11
lines changed

4 files changed

+18
-11
lines changed

docs/docs/security-faq.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,12 @@ The engine is not exposed on any network port — it only communicates through s
150150

151151
## Does Altimate Code store conversation history?
152152

153-
Conversation context lives in memory during your session. Altimate Code does not persist conversation history to disk or send it to any service. When you end a session, the context is gone.
153+
Yes. Altimate Code persists session data locally on your machine:
154+
155+
- **Session messages** are stored in a local SQLite database so you can resume, review, and revert conversations.
156+
- **Prompt history** (your recent inputs) is saved to `~/.state/prompt-history.jsonl` for command-line recall.
157+
158+
This data **never** leaves your machine — it is not sent to any service or included in telemetry. You can delete it at any time by removing the local database and history files.
154159

155160
!!! note
156161
Your LLM provider may have its own data retention policies. Check your provider's terms to understand how they handle API requests.

packages/altimate-code/script/build.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ for (const item of targets) {
217217
ALTIMATE_CLI_VERSION: `'${Script.version}'`,
218218
ALTIMATE_CLI_CHANNEL: `'${Script.channel}'`,
219219
ALTIMATE_ENGINE_VERSION: `'${engineVersion}'`,
220+
ALTIMATE_CLI_LIBC: item.os === "linux" ? `'${item.abi ?? "glibc"}'` : "undefined",
220221
ALTIMATE_CLI_MIGRATIONS: JSON.stringify(migrations),
221222
ALTIMATE_CLI_CHANGELOG: JSON.stringify(changelog),
222223
OTUI_TREE_SITTER_WORKER_PATH: bunfsRoot + workerRelativePath,

packages/altimate-code/src/session/prompt.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -838,15 +838,17 @@ export namespace SessionPrompt {
838838
compactions: totalCompactions,
839839
outcome,
840840
})
841-
Telemetry.track({
842-
type: "session_end",
843-
timestamp: Date.now(),
844-
session_id: sessionID,
845-
total_cost: sessionTotalCost,
846-
total_tokens: sessionTotalTokens,
847-
tool_call_count: toolCallCount,
848-
duration_ms: Date.now() - sessionStartTime,
849-
})
841+
if (!emergencySessionEndFired) {
842+
Telemetry.track({
843+
type: "session_end",
844+
timestamp: Date.now(),
845+
session_id: sessionID,
846+
total_cost: sessionTotalCost,
847+
total_tokens: sessionTotalTokens,
848+
tool_call_count: toolCallCount,
849+
duration_ms: Date.now() - sessionStartTime,
850+
})
851+
}
850852
await Telemetry.shutdown()
851853
}
852854
for await (const item of MessageV2.stream(sessionID)) {

packages/altimate-code/test/cli/tui/worker.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { Rpc } from "../../../src/util/rpc"
33
import type { rpc } from "../../../src/cli/cmd/tui/worker"
44
import path from "path"
55
import { fileURLToPath } from "url"
6-
import { Filesystem } from "../../../src/util/filesystem"
76

87
const __dirname = path.dirname(fileURLToPath(import.meta.url))
98
const workerSrc = path.resolve(__dirname, "../../../src/cli/cmd/tui/worker.ts")

0 commit comments

Comments
 (0)