Feat/web saas single user#476
Conversation
Also broadens the default agent prompt to cover general tasks (src/constants/prompts.ts), bundled in this commit per user request.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ions - Change resolveSessionWorkDir default from os.homedir() to the workspace root so on-the-fly sessions create their workspace inside the sandbox - Update stale getPermissionArgs test assertion in conversations.test.ts Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…aS router Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add ensureInsideWorkspaceRoot guard to all filesystem route handlers (browse, file, read). The guard validates paths against the configured workspace root before the per-session isAllowedFilesystemPath check. Also add a /api/filesystem/read endpoint for reading file contents. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
PR quality triageChanged areas: area:desktop, area:docs, area:server CLI core policy: No CLI-core policy block detected. Missing-test policy: Blocked by policy until a maintainer applies Coverage baseline policy: No coverage-baseline policy block detected. CLI core files:
Coverage policy files:
Expected checks:
Test coverage signals:
Risk notes:
Hard merge gates still come from GitHub Actions, not AI review. Dosu handoff: Dosu can be used as the AI reviewer for risk explanation, missing-test prompts, and maintainer Q&A. If it does not comment automatically from the PR template, ask: @dosubot review this PR for changed-area risk, missing tests, docs impact, desktop startup risk, and CLI core impact. |
|
Hi @cllarisy! I'm Dosu and I’m helping the cc-haha team. Here's my review of PR #476 across the requested dimensions: Changed-Area RiskHigh Risk 🔴
Medium Risk 🟡
Missing TestsTest coverage is good overall — 5 new test files and 6 updated test files. Gaps I'd flag:
Docs Impact✅ New documentation added at
Gap: No documentation on the API contract change ( Desktop Startup RiskModerate. Three files affect startup flow:
Risk: if CLI Core Impact✅ No CLI core paths appear to be touched. Changes are confined to:
Summary VerdictThis is a major architectural change that introduces a single-user web deployment profile. The security trade-offs (disabled auth, permissive CORS, skipped permissions) are intentional but must be clearly communicated as deployment constraints. The test and docs coverage is reasonable but has the gaps noted above. Recommendations before merge:
To reply, just mention @dosu. Docs are dead. Just use Dosu. |
Replace rollupOptions.external with resolve.alias — externals only cover production builds, but Vite's dev-server dependency scan also walks every import site eagerly. A dedicated stub module with every named export the desktop/src tree references lets both dev and production builds resolve cleanly without installing the native Tauri packages. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The plan's original approach of importing desktop/src into the Vite build pulled 280+ CLI modules (bun:bundle, .js ext imports, native addons) that Vite cannot resolve. Replaced with a self-contained React chat app that talks directly to the Bun server via HTTP and WebSocket — no desktop/src or src/ imports, clean 30-module build. Removed all desktop-only dependencies (tailwind, lucide, mermaid, shiki, etc.) from web/package.json. Serves fonts and icons from desktop/public via Vite's publicDir config. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… mode In the web SaaS profile, the server process holds API credentials in its environment and the child CLI inherits them directly. Desktop concepts like managed OAuth (CLAUDE_CODE_ENTRYPOINT=claude-desktop) and provider env stripping (which removes ANTHROPIC_API_KEY from child env) are now disabled — shouldMarkManagedOAuth always returns false, and shouldStripInheritedProviderEnv always returns false. This fixes "Not logged in · Please run /login" errors that occurred because the child CLI had no API key to authenticate with. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
非常抱歉!我是 GitHub 菜鸟,不小心将自己 fork 分支的 commits 推送到了大佬的主项目中,我想挖个坑跳进去!
I'm really sorry! I'm a GitHub newbie, and I accidentally pushed commits from my fork branch to your main project. I feel so embarrassed that I just want to dig a hole and hide in it!
Summary
Feature Quality Contract
Verification
bun run verifyfor code changes, including the coverage gate.Risk
allow-cli-core-change.allow-missing-tests.allow-coverage-baseline-change.@dosubot review this PR for changed-area risk, missing tests, docs impact, desktop startup risk, and CLI core impact.