Repository navigation
basectl activate fails when project venv lacks Click #2610
Copy link
Copy link
Closed
Description
Goal
Make basectl activate <project> work for projects whose virtual environment does not contain Base's Python dependencies.
Background
Base correctly installs Click into the Base-owned virtual environment during basectl setup, while a uv-managed project such as bleach owns a separate .venv containing only its declared dependencies. During runtime-shell startup, Base invokes base_projects activation-sources through base-wrapper without selecting the Base project. base-wrapper therefore runs that Base control-plane package with the project Python, and base_cli fails to import Click. The user then receives the misleading secondary error Unable to resolve project activation scripts.
Related to the broader control-plane/runtime separation tracked by #1611.
Scope
- Route runtime activation-source discovery through the Base-owned Python runtime.
- Preserve the project virtual environment activation and project-owned
activate.sourcebehavior. - Add a regression fixture that has a project Python executable but no Click installation.
- Keep the change narrow; do not make Click or
base-clia project dependency.
Acceptance Criteria
basectl activate <project>succeeds when the project.venvlacks Click and the manifest has noactivate.sourceentries.- Manifest-declared activation scripts are still resolved and sourced from the project root.
- The Base runtime invokes
base_projects activation-sourceswith the Base control-plane environment. - Existing runtime-shell, project-command, and full Base validation tests remain green.
- The error path does not report the generic activation-resolution failure for a missing Base control-plane dependency without preserving the underlying diagnostic.
Validation
- Focused
cli/bash/commands/basectl/tests/runtime-shell.batsregression coverage. - Relevant Base Python project-discovery tests.
basectl test baseandgit diff --check.- Reproduce with a uv-style project environment containing no Click.
Non-Goals
- Do not add Click,
base-cli, or other Base dependencies to downstream project manifests. - Do not redesign
base-wrapperproject-command routing. - Do not change project-owned command, test, build, or demo execution environments.
Project Fields
- Status: In Progress
- Priority: P1
- Size: S
- Area: Runtime
- Initiative: Adoption Polish
Agent Assignment
- Assigned to: codeforester
- Implementation: issue-backed worktree and pull request linked to this issue.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething is not workingSomething is not working
Type
Projects
- StatusShow more project fieldsDone
Activity