42 Commits

Author SHA1 Message Date
7dd3095974 privacy: remove external data transmissions & add GitHub release workflow
Remove three active external data transmission paths:

1. WebFetch domain blocklist (api.anthropic.com/api/web/domain_info)
   - src/tools/WebFetchTool/utils.ts
   - Was sending every domain a user tried to fetch to Anthropic
   - Replaced with always-allowed stub; tool permission dialog is
     the primary security boundary

2. Codex API router (chatgpt.com/backend-api/codex/responses)
   - src/services/api/codex-fetch-adapter.ts
   - Would have forwarded full conversation content to OpenAI
   - createCodexFetch now returns HTTP 403 stub

3. OpenAI API adapter (api.openai.com/v1/chat/completions)
   - src/utils/codex-fetch-adapter.ts
   - Would have forwarded messages to OpenAI
   - fetchCodexResponse now throws immediately

Already-disabled paths (no changes needed):
- Analytics logEvent/logEventAsync: empty stubs in services/analytics/index.ts
- GrowthBook/Statsig: local cache only, no outbound requests
- Auto-updater GCS: already guarded by CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
- MCP registry: already guarded by CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
- Release notes GitHub: already guarded by isEssentialTrafficOnly()

Add .github/workflows/release.yml:
- Builds self-contained binaries for macOS (x64+arm64), Linux (x64+arm64),
  Windows (x64) using bun compile on each native runner
- Triggers on version tags (v*.*.*) or manual workflow_dispatch
- Publishes binaries + SHA256SUMS.txt as a GitHub Release with
  per-platform install instructions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-14 15:46:47 +08:00
9ba783f10b Remove the remaining no-op tracing and telemetry-only helpers
The build no longer ships telemetry egress, so the next cleanup pass deletes the remaining tracing compatibility layer and the helper modules whose only job was to shape telemetry payloads. This removes the dead session/beta/perfetto tracing files, drops telemetry-only file-operation and plugin-fetch helpers, and rewires the affected callers to keep only their real product behavior.

Constraint: Preserve existing user-visible behavior and feature-gated product logic while removing inert tracing/reporting scaffolding
Constraint: Leave GrowthBook in place for now because it functions as the repo's local feature-flag adapter, not a live reporting path
Rejected: Delete growthbook.ts in the same pass | Its call surface is wide and now tied to local product behavior rather than telemetry export
Rejected: Leave no-op tracing and helper modules in place | They continued to create audit noise and implied behavior that no longer existed
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Remaining analytics-named code should be treated as either local compatibility calls or feature-gate infrastructure unless a concrete egress path is reintroduced
Tested: bun test src/services/analytics/index.test.ts src/components/FeedbackSurvey/submitTranscriptShare.test.ts
Tested: bun run ./scripts/build.ts
Not-tested: bun x tsc --noEmit (repository has pre-existing unrelated type errors)
2026-04-09 14:26:11 +08:00
5af8acb2bb Checkpoint the full local bridge and audit work before telemetry removal
You asked for all local code to be committed before the broader telemetry-removal pass. This commit snapshots the current bridge/session ingress changes together with the local audit documents so the next cleanup can proceed from a stable rollback point.

Constraint: Preserve the exact local worktree state before the telemetry-removal refactor begins
Constraint: Avoid mixing this baseline snapshot with the upcoming telemetry deletions
Rejected: Fold these staged changes into the telemetry-removal commit | Would blur the before/after boundary and make rollback harder
Confidence: medium
Scope-risk: moderate
Reversibility: clean
Directive: Treat this commit as the pre-removal checkpoint when reviewing later telemetry cleanup diffs
Tested: Not run (baseline snapshot commit requested before the next cleanup pass)
Not-tested: Runtime, build, and typecheck for the staged bridge/session changes
2026-04-09 14:09:44 +08:00
523b8c0a4a Strip dead OTel event noise from telemetry compatibility paths
The open build no longer exports OpenTelemetry events, but several user-prompt, tool, hook, API, and survey paths were still constructing and calling a no-op logOTelEvent helper. This removes those dead calls, drops the now-unused helper module, and deletes an unreferenced GrowthBook experiment event artifact so the remaining compatibility layer is less distracting during future audits.

Constraint: Keep the local logEvent and tracing compatibility surfaces untouched where they still structure control flow
Constraint: Avoid touching unrelated bridge and session changes already present in the worktree
Rejected: Remove sessionTracing compatibility entirely | Call surface is still broad and intertwined with non-telemetry control flow
Rejected: Leave no-op OTel event calls in place | They add audit noise without preserving behavior
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Continue treating remaining telemetry-named helpers as removable only when their call sites are proven behavior-free
Tested: bun test src/services/analytics/index.test.ts src/components/FeedbackSurvey/submitTranscriptShare.test.ts
Tested: bun run ./scripts/build.ts
Not-tested: bun x tsc --noEmit (repository has pre-existing unrelated type errors)
2026-04-09 14:01:41 +08:00
2264aea591 Reduce misleading telemetry shims in the open build
The open build already treated analytics and tracing as inert, but several empty sink and shutdown modules still made startup and exit paths look like they initialized or flushed telemetry. This trims those dead compatibility layers, updates the surrounding comments to match reality, and adds small regression tests that lock in the inert analytics boundary and disabled transcript sharing behavior.

Constraint: Preserve the no-op logEvent/logOTelEvent compatibility surface for existing call sites
Constraint: Avoid touching unrelated bridge and session work already in progress in the worktree
Rejected: Remove every remaining logEvent/logOTelEvent call site | Too broad for a safe first cleanup pass
Rejected: Keep the empty sink/shutdown modules | Continued to mislead future audits and maintenance
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Treat remaining analytics and GrowthBook helpers as compatibility surfaces until each call path is individually proven dead
Tested: bun test src/services/analytics/index.test.ts src/components/FeedbackSurvey/submitTranscriptShare.test.ts
Tested: bun run ./scripts/build.ts
Not-tested: bun x tsc --noEmit (repository has pre-existing unrelated type errors)
2026-04-09 13:58:03 +08:00
86e7dbd1ab Tighten bridge and teleport debug redaction 2026-04-04 11:09:07 +08:00
5149320afd Reduce remaining remote URL debug detail 2026-04-04 10:48:40 +08:00
4d506aabf7 Reduce remaining file, LSP, and XAA debug detail 2026-04-04 10:31:29 +08:00
010ded8476 Reduce remaining MCP and persistence debug detail 2026-04-04 09:52:38 +08:00
02f22d80bd Reduce local debug detail in mailbox and session helpers 2026-04-04 09:34:41 +08:00
7cf8afab73 Reduce MCP OAuth debug detail 2026-04-04 09:23:12 +08:00
832035a087 Trim teammate prompt UI and MCP debug logs 2026-04-04 09:19:52 +08:00
f06a2c2740 Remove legacy swarm permission disk sync 2026-04-04 08:49:15 +08:00
f65baebb3c Reduce swarm local persistence 2026-04-04 03:37:55 +08:00
eb96764770 Clarify inert plugin telemetry helpers 2026-04-04 03:21:59 +08:00
3e5461df9b Remove remaining trusted-device bridge hooks 2026-04-04 03:12:52 +08:00
ce8f0dfd2b Disable perfetto trace file output 2026-04-04 03:08:08 +08:00
1b4603ed3b Simplify inert analytics compatibility layer 2026-04-04 03:01:57 +08:00
dccd151718 Remove dead analytics and telemetry scaffolding 2026-04-04 02:51:35 +08:00
a95f0a540a Remove dead telemetry stubs 2026-04-04 01:12:54 +08:00
497f81f4f9 Disable analytics, GrowthBook, and telemetry egress 2026-04-03 23:17:26 +08:00
9e7338d54c Document removed egress paths in README 2026-04-03 22:50:05 +08:00
d04ef7e701 Strip bridge metadata and trusted-device egress 2026-04-03 14:34:07 +08:00
3606a51288 Disable feedback, transcript share, and insights uploads 2026-04-03 14:33:33 +08:00
2cf6c23fdc Remove local context from model requests 2026-04-03 14:32:31 +08:00
4eb053eef5 refactor: align macro bootstrap with cli entry 2026-04-03 13:59:27 +08:00
d7bb164a05 refactor: align control types closer to schema 2026-04-03 13:56:26 +08:00
108704ef22 refactor: expand sdk control subtype definitions 2026-04-03 13:52:46 +08:00
04f612db35 refactor: remove final sdk shim file 2026-04-03 13:51:50 +08:00
64c2b201be refactor: remove unused js shim files 2026-04-03 13:48:46 +08:00
9a4bb0e1ca refactor: enrich sdk runtime session types 2026-04-03 13:46:05 +08:00
af2f2b0e34 refactor: add sdk tool type exports 2026-04-03 13:39:56 +08:00
097bc753f0 refactor: strengthen sdk control and settings types 2026-04-03 13:38:47 +08:00
f25dc3b6be refactor: remove final internal shim imports 2026-04-03 13:32:32 +08:00
9410e2f394 refactor: point agent sdk imports at ts source 2026-04-03 13:30:57 +08:00
20523234e0 refactor: point project imports at ts sources 2026-04-03 11:38:51 +08:00
ecec8b6ba7 refactor: point agent sdk exports at ts sources 2026-04-03 11:14:54 +08:00
23a61be07b refactor: add ts sources for sdk shims 2026-04-03 11:10:28 +08:00
fa9c74e7b7 refactor: re-export js shims from ts sources 2026-04-03 11:07:00 +08:00
e8da02f5bc Merge remote-tracking branch 'gitea/main'
# Conflicts:
#	README.md
2026-04-02 15:40:40 +08:00
a10efa3b4b chore: initialize recovered claude workspace 2026-04-02 15:29:01 +08:00
e204fcbf95 Initial commit 2026-04-02 15:26:44 +08:00