Skip to content

basectl activate fails when project venv lacks Click #2610

Closed

Description

@codeforester

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.source behavior.
  • Add a regression fixture that has a project Python executable but no Click installation.
  • Keep the change narrow; do not make Click or base-cli a project dependency.

Acceptance Criteria

  • basectl activate <project> succeeds when the project .venv lacks Click and the manifest has no activate.source entries.
  • Manifest-declared activation scripts are still resolved and sourced from the project root.
  • The Base runtime invokes base_projects activation-sources with 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.bats regression coverage.
  • Relevant Base Python project-discovery tests.
  • basectl test base and git 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-wrapper project-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.

Activity

  1. self-assigned this
    on Oct 18, 2026
  2. moved this to Backlog in baseon Oct 18, 2026
  3. moved this from Backlog to In Progress in baseon Oct 18, 2026
  4. moved this from In Progress to In Review in baseon Oct 18, 2026
  5. moved this from In Review to Done in baseon Oct 18, 2026
  6. added this to the v1.11.0 milestone on Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething is not working

Type

No type

Projects

  • Status
    Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions