Releases: basefoundry/base
Release list
Base v1.7.0
Added
- Added stable, versioned
--format jsoninspection envelopes forbasectl repo check,basectl release check,basectl gh issue readiness, and
basectl gh branch stale, including structured findings and controlled
usage or upstream failures without changing text defaults or exit policy. - Added consistent explicit, positional, and nearest-manifest project selection
tobasectl run,build,test, anddemo; run/build now expose stable
read-only JSON lists and Bash/Zsh complete manifest command and target names. - Added
basectl workspace agent-briefto report local repository baseline,
agent-guidance, AI-context, environment, and validation evidence for a workspace
handoff as read-only text or stable JSON. - Added
--cimode tobasectl setup,basectl check, andbasectl doctor
as the preferred CI-safe command surface while keepingbasectl cias a
compatibility alias. - Added
bootstrap.sh --ensure-bashto verify or install only the Bash 4.2+
prerequisite on macOS and Ubuntu/Debian before the full Base setup path is
available. - Added
basectl workspace onboardingto summarize first-day repository
readiness, missing clone actions, and project setup/check/test commands from
a workspace manifest without mutating repositories. - Added
basectl devcontainerto preview or write.devcontainer/devcontainer.json
from Base project manifests, with JSON output that reports supported,
unsupported, and ambiguous manifest fields. - Added
basectl devenv-reportto classify Base manifest fields as supported,
unsupported, lossy, or project-owned for Nix/devenv adoption planning without
generating files or requiring Nix. - Added
basectl history --reportto generate local Markdown or JSON activity
summaries from recent command history and log metadata without dumping raw
logs or uploading telemetry. - Added a bounded
copilot-setup-stepsworkflow and documentation for optional
GitHub Copilot cloud-agent setup without changing normal local development or
CI behavior. - Added
basectl repo init --agent-readyto seedAGENTS.mdandskills.md
alongside the standard repo baseline. - Added
basectl repo check --agent-readyto verify the agent-ready repo
guidance contract without changing default baseline checks. - Added
basectl gh issue readinessto check issue body sections, labels,
assignees, and optional GitHub Project fields before assigning agentic
implementation work. - Added explicit, repeatable
basectl repo init --language <csv>profiles that
record normalizedproject.languagesmetadata and opt Python baselines into
python.manager: uv. - Added shared issue-backed branch validation to
basectl gh pr createand an
active GitHub ruleset that rejects noncanonical non-default branch names. - Added a trusted Issue Branch Policy workflow and required PR-head status that
verify the branch prefix matches the referenced issue's single category
label, including for raw Git and third-party AI tools. The workflow rejects
impossible dates, aggregates open pull requests sharing a commit, queues
head-SHA-serialized default-branch revalidation after issue relabeling or
synchronization, and binds enforcement to the GitHub Actions integration.
Changed
-
Required Base runtime startup to use the corrected 1.x
base-bash-libs
release line at version 1.3.0 or newer, with clear rejection of stale or
incompatible library checkouts. -
Updated Base CI to consume the published
base-bash-libsv1.3.0 release
commit. -
Migrated generic Git branch, worktree, upstream, merge, remote, and default
branch consumers to canonicalgit_*helpers and synchronized CI with the
mergedbase-bash-libsimplementation. -
Migrated generic branch, worktree, default-branch, upstream, merge, and
remote inspection consumers to the canonicalgit_*APIs from
base-bash-libs, leavingbase_gh_*as the command-facing wrapper layer. -
Registered every Python-owned remote shell installer in one policy and added
paired URL/SHA-256 overrides for verified uv and mise bootstrap on
Debian-family Linux, while explicitly disclosing unverified mutable defaults. -
Clarified CI-safe setup/readiness/diagnostics help and docs so
--cimode is
not confused with running tests, launching GitHub Actions, or creating
Ubuntu/Multipass VMs. -
Changed Base-owned
repo init,repo agent-guidance, andrepo installer-templatepull request flows to require an issue number and create
canonical issue-backed branches. -
Changed
basectl gh issue startandbasectl gh pr createto fail closed for
missing, ambiguous, inaccessible, or mismatched issue category metadata, and
alignedissue startrepository selection with explicit--repo/-R,
GH_REPO, thenoriginprecedence.
Fixed
- Aligned
basectlleaf help, exact-command argument errors, and Bash/Zsh
completions, including scoped release options and GitHub Project flags, while
grouping root help around the first-run and daily project journeys. - Stopped shell-only project setup, check, doctor, workspace status, and
onboarding from requiring a project virtual environment solely to host
Base's own Python control-plane dependencies. Manifests that explicitly
declarepython:or apython-packageartifact keep the existing project
Python environment behavior. - Made
basectl onboard --yesreach unattended setup consent and added a
read-only, workspace-wide manifest trust review step that never grants trust
automatically or prompts for metadata-only manifests. - Made the legacy
basectl ci setup|check|doctorcompatibility syntax pass
arguments directly to the canonical lifecycle parsers, restoring option,
help, validation, and exit-code parity. - Required explicit relative or absolute paths for Base runtime scripts so a
same-named file in the current directory cannot shadow abasectlcontrol
command. - Reported
basectl setup,check, anddoctorruntime chain diagnostics up
front and rejected x86_64 Base virtual environments under Apple Silicon
Homebrew before profile setup reaches laterbrew installsteps. - Hardened Ubuntu GitHub Actions package installs against hosted-runner
third-party apt source failures before Base test jobs install their tools.
Base v1.6.1
Added
- Added
basectl trust status|allow|revoketo inspect and manage local
manifest-command approval records under Base-managed state. - Enforced manifest-command trust before
basectl test,run,build,
demo, andactivateexecute project-owned manifest code, while preserving
dry-run and list inspection paths before approval.
Changed
- Surfaced pinned Homebrew installer variables in the default first-mile
bootstrap path so security-conscious users can choose a verified installer
before running the mutable official Homebrew installer. - Reused the external
base-bash-libsGitHub CLI helpers inbasectl ghand
basectl repo, and updated the pinned CI dependency to the helper-library
commit that provides them. - Reused
base-bash-libstemp-file cleanup helpers in post-bootstrap Bash
commands that create pull request bodies, CI capture files, setup probes, and
profile comparison files. - Reused
base-bash-libsargument and string helpers in focused Bash
subcommands, including export-context option parsing, CSV joins, and setup
profile splitting.
Fixed
- Clarified
basectl repo inithelp and docs so current-checkout usage,
GitHub setup, local commits, pushes, and the--prworkflow are no longer
conflated.
Base v1.6.0
Added
- Added an explicit
linux-labprerequisite profile that checks and installs
Multipass via Homebrew cask for local Ubuntu lab VMs without creating VM
instances during Base setup.
Changed
- Bound Base CI source-checkout jobs to the published
base-bash-libsv1.1.0
release commit.
Fixed
- Stopped
basectlfrom continuing under Rosetta when it resolves native
Apple Silicon Homebrew at/opt/homebrew, so setup fails early with Bash
recovery guidance instead of breaking during a laterbrew install. - Replaced stray shell
runcalls in setup's virtualenv and apt install paths
with direct command execution so spawnedbasectl setupruns do not depend on
a test-harness helper. - Stopped default project checks from failing Ubuntu/Linux acceptance solely
because manifest-declared IDE extension CLIs such ascodeare not onPATH;
IDE extension diagnostics now run with the developer profile. - Made the
tool:bats-coreproject artifact platform-aware on Ubuntu/Debian,
mapping it to the systembatspackage instead of planning a Homebrew
brew install bats-corecommand. - Preflighted
misetrust beforebasectl setuprunsmise install, so
untrusted project configs fail with a Base recovery message instead of raw
lower-levelmise installoutput. - Bootstrapped
miseduring Ubuntu/Debian project setup when a manifest
declares a project-owned mise config, while keeping the mutation guarded by
--dry-runreview and--yes. - Bootstrapped
uvduring Ubuntu/Debian project setup when a manifest
explicitly opts intopython.manager: uvorrunner: uv, while keeping the
mutation guarded by--dry-runreview and--yes. - Allowed repeated Ubuntu/Debian
basectl setupruns without--yeswhen all
apt prerequisites are already installed, while still requiring--yesbefore
Base mutates apt-managed system packages. - Made
basectl setup --profile dev,check --profile dev, and
doctor --profile devuse apt-backed BATS, GitHub CLI, and ShellCheck
handling on Ubuntu/Debian instead of requiring Homebrew. - Made explicit project setup/check routing ignore active-project virtualenv
overrides from a different shell project, so commands such as
basectl setup base-democannot accidentally reuse thebasevenv. - Made project Brewfile delegates platform-aware: macOS still runs Homebrew
brew bundle, while Ubuntu/Debian skips Brewfile setup/check as a warning so
uv-managed projects can proceed throughuv sync.
Base v1.5.0
Added
- Added
BASE_PLATFORMruntime metadata so Linux distribution-family support
can be represented without overloading the coarseBASE_OS=linuxcontract. - Added Ubuntu/Debian source-checkout CI validation and documented the
accepted Ubuntu 24.04 ARM64 Parallels validation path. - Added Linux-aware
basectl checkandbasectl doctorprerequisite
diagnostics for Python venv support, Git, GitHub CLI, BATS, ShellCheck, jq,
and Go on Ubuntu/Debian.
Changed
- Centralized setup/check platform dispatch so macOS, Ubuntu/Debian, unknown
Linux, and unsupported platforms are routed through explicit platform-policy
helpers instead of scattered command conditionals. - Changed Ubuntu/Debian setup behavior to fail conservatively with manual
prerequisite guidance until full apt-backed bootstrap support is implemented. - Updated compatibility, Linux-support, IDE-boundary, and forge-boundary docs
to reflect Ubuntu/Debian runtime support and the remaining non-goals.
Fixed
- Scrubbed activate override variables in the source-checkout test harness so
local shell state does not leak into BATS validation on Ubuntu or macOS.
Base v1.4.0
Fixed
- Made
basectl checkwarn when Homebrew reports installed Xcode Command Line
Tools are outdated or incomplete, matching the existingbasectl doctor
finding while keeping the check non-blocking.
Base v1.3.0
Added
- Added
basectl docsas a convenience shortcut to open the Base GitHub README
documentation entrypoint, with--show-urlfor non-browser contexts. - Added CI setup JSON rendering and a documented CI supply-chain hardening
policy for Base-managed bootstrap paths. - Added project Python runtime diagnostics and release title placeholder
validation. - Added optional pinned Homebrew installer support for first-mile bootstrap
environments that need a verified installer source. - Added direct coverage for Base command helpers, source guards, completions,
bootstrap, install, and command-dispatch lifecycle behavior.
Changed
- Standardized the
basectlpublic command lifecycle around space-separated
long options, compact usage errors, consistent help routing, and explicit
command-level logging options. - Routed Python command packages through the shared
base_clilifecycle and
moved project command metadata, CI JSON rendering, and GitHub Project issue
defaults into Python-backed helpers. - Improved shell and completion performance by caching project-name completion
results, reducing Git prompt subprocess work, and reducing setup/profile
subprocess use. - Split repository helper ownership into focused
repo installer-templateand
repo agent-guidancemodules, and centralized project command execution
helpers fortest,build,run, anddemo. - Hardened GitHub and Homebrew workflow handling with structured Homebrew trust
parsing, bounded GitHub authentication diagnostics, release-publish recovery
guidance, and portable GitHub Bash helper documentation. - Improved Base maintainability by normalizing Bash source guards, making the
Base home verification contract explicit, enforcing Python future annotation
standards, and using explicit error handling inbase-test.
Fixed
- Fixed nested and top-level completion parity gaps across Bash and Zsh.
- Fixed inherited
basectl updatesource-guard state so repeated sourced
command execution does not leak between invocations. - Fixed interactive prompt handling so redirected stdin does not block
onboarding and self-demo prompts from reading the terminal. - Fixed diagnostic probe duplication and bounded subprocess probes for Base
diagnostics. - Fixed sensitive value exposure in
basectl config showand setup command
argument logging. - Fixed
base_clihistory records to use the effective argv for displayed
command history.
Base v1.2.0
Added
- Added
basectl workspace initto clone a workspace repository, read its
workspace configuration, and clone the repositories declared by that
workspace. - Added
basectl prompt listandbasectl prompt product-self-reviewto render
repo-owned Markdown prompts for periodic AI-assisted Base workflow reviews. - Added a local command-history index for Python-backed Base command runs.
- Added manifest-declared PR policy support for Base-managed GitHub PR helpers.
- Added project Python version requirements and declarative artifact registry
support for Base-managed artifacts.
Changed
- Added
ctx.workspace_roottobase_cli.Contextso workspace-aware commands
can use the configured workspace root without reaching through user config. - Improved
basectl repo clone,repo check,repo configure, and
gh issue create|startdiagnostics so repository workflow failures include
clearer update, chmod, origin, Project-field, and worktree-command guidance. - Made
basectl repo configurewarn when Homebrew reports the local GitHub CLI
package is outdated, pointing users tobasectl setup --profile dev. - Made lifecycle command usage errors compact and consistent, returning exit
code2forsetup,check,doctor,onboard, andupdate-profile. - Made idempotent
basectl setupreconciliation quieter when no action is
required. - Added
base_cli.testing.invoke(..., manifest={...})for project-aware tests
that need a fixturebase_manifest.yaml. - Added optional stream and formatter overrides to
base_cli.configure_logger
for tests and CI wrappers that need to capture or reshape user-facing logs. - Added
base_cli.App(help=...)support for subcommand group help text. - Added standard
--quiet/-qsupport tobase_cli.Appto suppress INFO
output on the user-facing stream while preserving warnings, errors, and
persistent DEBUG log detail. - Documented the
base-bash-libsHomebrew/core readiness path, including the
formula-name audit command and futurebasefoundrydependency plan. - Documented the
basectl setupparallelism evaluation and the decision to
keep mutating setup serial until a setup-plan/preflight layer exists. - Corrected 1.1.0 documentation status, source-checkout
base-bash-libs
prerequisites, future-design banners, and CI bootstrap package guidance.
Fixed
- Fixed
basectl prompt -v <name>so the verbose flag no longer counts as a
second prompt argument. - Added actionable recovery guidance when
basectl update-profiledetects a
runtimeBASE_HOMEmismatch. - Fixed workspace reports for uv-managed project virtual environments and
broken project virtualenv detection. - Fixed project
--recreate-venvrepair and fail-fast runtime directory
handling for check diagnostics. - Allowed standard
base_cli.Appoptions such as--debugand
--environmentbefore subcommand names. - Made
base_cli.option(..., dry_run=True)reject duplicate dry-run markers on
the same command function. - Made default
base_cli.App(max_log_files=...)log retention prune by
timestamp-prefixed run-id filename instead of filesystem modification time.
Base v1.1.0
Changed
- Suppressed pip self-upgrade notices during Base-managed pip installs so
setup output stays focused on Base actions and real install failures. - Made live workflow docs and installer examples main-ready, using default-branch
URLs for raw GitHub install scripts andmainfor contributor branch
examples. - Documented the boundary for optional personal shell defaults such as color
aliases, navigation shortcuts, signing helpers, and strict shell modes. - Improved opt-in Bash and Zsh completion ergonomics for interactive shell
defaults. - Added conservative pager and terminal usability behavior to opt-in shell
defaults. - Enriched opt-in shell history defaults for
basectl update-profile --defaults. - Made Homebrew-managed
version: latestprofile and project artifacts report
outdated installed packages duringcheck/doctorand upgrade them during
setup. - Renamed the Base-managed GitHub Project metadata schema from
base-roadmap
tobase-project. - Made
basectl repo configurereport missingBASE_PROJECT_TOKENProject
intake secrets and improved generated workflow diagnostics when the Actions
token cannot see repo Projects. - Made Homebrew-managed
basectl updatepreflight tap trust before upgrading
Base when Homebrew requires trust for the tap-ownedbase-bash-libs
dependency. - Removed Base's bundled reusable Bash
std,file, andgitlibraries;
Base now requires externalbase-bash-libsthrough an explicit override,
sibling checkout, or Homebrew package.
Fixed
- Made Homebrew artifact dry-run tests independent of the developer machine's
installed or outdated Homebrew formulae.
Base v1.0.5
Added
- Added
BASE_BASH_LIBS_SOURCEandBASE-D007diagnostics sobasectl check
andbasectl doctorreport whether Base is using external reusable Bash
libraries or the bundled fallback. - Added BATS coverage proving Base can bootstrap from external
base-bash-libswhen bundled reusable Bash library directories are absent.
Changed
- Documented Homebrew tap trust for Base and standalone
base-bash-libs
installs, and updated direct Base upgrade examples to use
brew upgrade --no-ask codeforester/base/base.
Fixed
- Fixed Bash library readiness BATS assertions so they pass both with a sibling
base-bash-libscheckout and with bundled fallback.
Base v1.0.4
Changed
- Made Base resolve reusable Bash libraries from an external
base-bash-libs
checkout or Homebrew package when available, while keeping the bundled
lib/bashtree as a fallback. - Documented the standalone
base-bash-libsinstall path, Base's consumption
contract, and the migration gate for eventually removing bundled reusable
Bash libraries.