-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
chore: Phase 0 INV resolutions + MS-001/002/004 quick-wins #2020
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -187,6 +187,21 @@ The release workflow **validates** that `CHANGELOG.md` has an entry for the vers | |
| | `release.yml` | Tag `v*` pushed | Builds binaries, extracts changelog, creates release | | ||
| | `update-readme` (in release.yml) | After release | Updates README with new version | | ||
|
|
||
| ## Build-Time Embedded Keys (INV-006 / UNK-007) | ||
|
|
||
| `apps/desktop/electron.vite.config.ts` injects build-time constants into the bundled main process via Vite `define`: | ||
|
|
||
| | Constant | Source env var | CI workflows that supply it | Local-build behavior | | ||
| |---|---|---|---| | ||
| | `__SENTRY_DSN__` | `SENTRY_DSN` | `release.yml`, `beta-release.yml`, `build-prebuilds.yml` (GitHub secret) | Embeds `apps/desktop/.env` value if set; empty otherwise | | ||
| | `__SENTRY_TRACES_SAMPLE_RATE__` | `SENTRY_TRACES_SAMPLE_RATE` | same as above | Defaults to `'0.1'` | | ||
| | `__SENTRY_PROFILES_SAMPLE_RATE__` | `SENTRY_PROFILES_SAMPLE_RATE` | same as above | Defaults to `'0.1'` | | ||
| | `__SERPER_API_KEY__` | `SERPER_API_KEY` | **None** (no CI workflow currently passes this secret) | Embeds developer's `.env` value if present | | ||
|
|
||
| **Current state of Serper search in shipped builds.** Because no CI workflow supplies `SERPER_API_KEY`, the `WebSearch` tool's Serper provider effectively ships **disabled** in CI release builds: the build embeds an empty string and `serper-search.ts` returns the "missing key" error path. Local builds with a populated `apps/desktop/.env` will bundle the developer's key. | ||
|
|
||
| A guardrail that refuses to embed any `__*_API_KEY__` constant in non-CI builds (unless `ALLOW_LOCAL_KEY_EMBED=1` is explicitly set) is tracked by `IDEA-007` / `MS-005` in `.claude/pipeline/roadmap-2026-05-12.md`. Wiring `SERPER_API_KEY` into the release-workflow secrets is **not** currently planned; if you want Serper search to work in shipped builds, add `SERPER_API_KEY: ${{ secrets.SERPER_API_KEY }}` to the build steps in `release.yml`, `beta-release.yml`, and `build-prebuilds.yml`. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Replace gitignored roadmap reference with a durable tracker link. Pointing release docs to 🤖 Prompt for AI Agents |
||
|
|
||
| ## Troubleshooting | ||
|
|
||
| ### Release didn't trigger after merge | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -107,6 +107,10 @@ npm run test:coverage | |
| npm run test:e2e | ||
| ``` | ||
|
|
||
| ### Coverage Strategy (INV-004 / UNK-004) | ||
|
|
||
| The Vitest coverage thresholds in `vitest.config.ts` (`lines: 22, branches: 17, functions: 19, statements: 22`) are **regression floors**, not targets. They were set by commit `d958fa65` (*"harden CI/CD with coverage enforcement"*) as the post-Python-elimination baseline. PRs must not drop coverage below these floors. Raising the floors and adding per-module thresholds for high-risk paths (`ai/security`, `ai/tools`, `ai/agent`, `ipc-handlers`) is tracked by `IDEA-011` / `MS-008` in `.claude/pipeline/roadmap-2026-05-12.md`. | ||
|
Comment on lines
+110
to
+112
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick | 🔵 Trivial | 💤 Low value 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Verify that commit d958fa65 exists in the repository
git cat-file -t d958fa65 2>/dev/null || echo "Commit not found"
git log --oneline -1 d958fa65 2>/dev/nullRepository: AndyMik90/Aperant Length of output: 165 Consider clarifying internal tracking codes in the section header. The section header includes internal audit codes The reference to 🤖 Prompt for AI Agents |
||
|
|
||
| ### Writing Tests | ||
|
|
||
| ```typescript | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -50,22 +50,22 @@ | |||||||||
| "typecheck": "tsc --noEmit --incremental" | ||||||||||
| }, | ||||||||||
| "dependencies": { | ||||||||||
| "@ai-sdk/amazon-bedrock": "^4.0.77", | ||||||||||
| "@ai-sdk/anthropic": "^3.0.58", | ||||||||||
| "@ai-sdk/azure": "^3.0.42", | ||||||||||
| "@ai-sdk/google": "^3.0.43", | ||||||||||
| "@ai-sdk/groq": "^3.0.29", | ||||||||||
| "@ai-sdk/mcp": "^1.0.25", | ||||||||||
| "@ai-sdk/mistral": "^3.0.24", | ||||||||||
| "@ai-sdk/openai": "^3.0.41", | ||||||||||
| "@ai-sdk/openai-compatible": "^2.0.35", | ||||||||||
| "@ai-sdk/xai": "^3.0.67", | ||||||||||
| "@anthropic-ai/sdk": "^0.78.0", | ||||||||||
| "@ai-sdk/amazon-bedrock": "~4.0.77", | ||||||||||
| "@ai-sdk/anthropic": "~3.0.58", | ||||||||||
| "@ai-sdk/azure": "~3.0.42", | ||||||||||
| "@ai-sdk/google": "~3.0.43", | ||||||||||
| "@ai-sdk/groq": "~3.0.29", | ||||||||||
| "@ai-sdk/mcp": "~1.0.25", | ||||||||||
| "@ai-sdk/mistral": "~3.0.24", | ||||||||||
| "@ai-sdk/openai": "~3.0.41", | ||||||||||
| "@ai-sdk/openai-compatible": "~2.0.35", | ||||||||||
| "@ai-sdk/xai": "~3.0.67", | ||||||||||
| "@anthropic-ai/sdk": "~0.78.0", | ||||||||||
| "@dnd-kit/core": "^6.3.1", | ||||||||||
| "@dnd-kit/sortable": "^10.0.0", | ||||||||||
| "@dnd-kit/utilities": "^3.2.2", | ||||||||||
| "@libsql/client": "^0.17.0", | ||||||||||
| "@lydell/node-pty": "^1.1.0", | ||||||||||
| "@libsql/client": "~0.17.0", | ||||||||||
| "@lydell/node-pty": "~1.1.0", | ||||||||||
| "@modelcontextprotocol/sdk": "^1.27.1", | ||||||||||
| "@openrouter/ai-sdk-provider": "^2.3.1", | ||||||||||
|
Comment on lines
69
to
70
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For consistency with the other AI-related and volatile dependencies pinned in this PR (MS-002), consider also pinning
Suggested change
|
||||||||||
| "@radix-ui/react-alert-dialog": "^1.1.15", | ||||||||||
|
|
@@ -84,7 +84,7 @@ | |||||||||
| "@radix-ui/react-tabs": "^1.1.13", | ||||||||||
| "@radix-ui/react-toast": "^1.2.15", | ||||||||||
| "@radix-ui/react-tooltip": "^1.2.8", | ||||||||||
| "@sentry/electron": "^7.10.0", | ||||||||||
| "@sentry/electron": "~7.10.0", | ||||||||||
| "@tailwindcss/typography": "^0.5.19", | ||||||||||
| "@tanstack/react-virtual": "^3.13.22", | ||||||||||
| "@tavily/core": "^0.7.2", | ||||||||||
|
|
@@ -93,13 +93,13 @@ | |||||||||
| "@xterm/addon-web-links": "^0.12.0", | ||||||||||
| "@xterm/addon-webgl": "^0.19.0", | ||||||||||
| "@xterm/xterm": "^6.0.0", | ||||||||||
| "ai": "^6.0.116", | ||||||||||
| "ai": "~6.0.116", | ||||||||||
| "chokidar": "^5.0.0", | ||||||||||
| "class-variance-authority": "^0.7.1", | ||||||||||
| "clsx": "^2.1.1", | ||||||||||
| "dotenv": "^17.3.1", | ||||||||||
| "electron-log": "^5.4.3", | ||||||||||
| "electron-updater": "^6.8.3", | ||||||||||
| "electron-log": "~5.4.3", | ||||||||||
| "electron-updater": "~6.8.3", | ||||||||||
| "i18next": "^25.8.18", | ||||||||||
| "lucide-react": "^0.577.0", | ||||||||||
| "minimatch": "^10.2.4", | ||||||||||
|
|
||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate pattern:
*.bakappears twice in the file.The pattern
*.bakis already present on line 128 in the "Misc" section. Having duplicate ignore patterns creates unnecessary maintenance burden and can confuse future contributors.🧹 Proposed fix to remove the duplicate
Remove the duplicate
*.bakfrom line 128 since it's already covered here in the IDE & Editors section where backup patterns logically belong:# =========================== # Misc # =========================== *.local -*.bak *.tmp *.temp🤖 Prompt for AI Agents