Releases: codeforester/base
Releases · codeforester/base
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.
Base v1.0.3
Changed
- Made
basectl repo initprint visible next steps when GitHub setup is skipped
because no repository was provided or inferred. - Made
basectl repo cloneprint the Base baseline check hint only when the
cloned repository containsbase_manifest.yaml. - Made
basectl repo agent-guidancedetect the target repository default
branch before falling back tomain. - Made
basectl repo agent-guidanceprint a visible created/unchanged summary
when existing guidance files are left untouched. - Made
basectl repo installer-templatewrite./install.shby default and
added--print/--stdoutfor the stdout template view. - Added dirty-worktree and repository-root fix hints for
basectl repo
subcommands that create pull requests. - Clarified
basectl repo initandrepo configurehelp to say Base-managed
GitHub settings are safe to re-run and do not remove outside settings. - Made live
basectl repo configureruns print a structured action summary for
repository settings, labels, branch protection, and Project metadata. - Made
basectl repo checkprint visible success/failure summaries with counts
and repair commands when files are missing. - Made
basectl repo init --prprint next steps after opening a baseline pull
request, including the command to rerun after merge. - Clarified
basectl repo initandrepo configurehelp to distinguish local
baseline updates, optional GitHub repo creation, and GitHub-side repair. - Made
basectl ci setup --format jsoninclude compactoutput_lineson
setup failures so CI consumers keep intermediate diagnostic context. - Standardized Bash CLI usage errors on
print_errorand changed unknown
config, projects, release, and workspace commands to return usage status
without fatal stack traces.
Base v1.0.2
Added
- Added
basectl repo clonefor workspace-aware cloning of one GitHub
repository into the configured Base workspace. - Added
--prsupport tobasectl repo agent-guidanceand
basectl repo installer-templateso optional generated helper files can be
committed on predictable branches and opened as draft pull requests. - Added
basectl workspace clone --manifest <path>for manifest-driven
workspace checkout, with dry-run support and optional repositories gated by
--include-optional. - Added a generated Project intake workflow so Base-managed repos can
idempotently add externally-created issues to their repo Project and apply
default Project fields. - Added explicit uv-managed Python project support with
python.manager: uv,
delegateduv syncsetup, uv diagnostics, and command-levelrunner: uv
support for test, run, demo, and build commands.
Changed
- Changed
basectl updateto accept an optional project name, so
basectl update <project>updates that project checkout and then runs
basectl setup <project>, while omitting the project keeps the existing
Base update behavior.
Fixed
- Fixed
basectl ghto run the requested GitHub command before using
gh auth statusdiagnostics, avoiding false failures when the status probe
is transiently unavailable.
Base v1.0.1
Added
- Added Base's own
.github/base-project.ymlso Base issues get repo Project
defaults through the same reviewed config file as other Base-managed repos. - Added
base_cli.ExitCodeconstants for Base's standard command return
values. - Added
cwdsupport tobase_cli.testing.invoke()so tests can run commands
from an explicit project context without leaking the process working
directory. - Added
assert_executabletolib_std.shfor explicit executable path checks. - Added a test-local
BASE_CACHE_DIRdefault tobase_cli.testing.invoke()
whenhomeis supplied, with explicit environment overrides still honored. - Added
run --quietto suppress expected--no-exitfailure warnings in
probe-style Bash checks. - Added
ctx.dry_runandbase_cli.option(..., dry_run=True)so commands can
explicitly connect nonstandard preview flags to Base's no-durable-write mode. - Added
base_cli.App(max_log_files=...)to let high-frequency CLIs prune old
default log files during startup. - Added
ctx.user_configso Python commands can read typed user config without
re-parsing~/.base.d/config.yaml. - Added
base_cli.App.subcommand()so one Python CLI can expose multiple
Base-managed entry points. - Added
docs/product-assessment.mdas a maintained review of Base's
originality, usefulness, adoption potential, and engineering-skill evidence.
Changed
- Moved the README license notice out of the opening product summary and made
the MIT-to-AGPL version boundary explicit. - Made
basectl repo initgenerate AGPL-3.0-or-later licenses for new
repositories. - Relicensed Base prospectively from MIT to AGPL-3.0-or-later.
- Aligned bootstrap and installer candidate-list splitting with the scoped
IFS=: read -raBash pattern. - Clarified that
basectl activatestarts a Bash runtime shell and that
BASE_ACTIVATE_SHELLmust point to Bash. - Normalized Base's built-in default, developer, and SRE profile manifest
names to the same safe project-name syntax enforced for project manifests. - Made
base_clilog source paths prefer the active project root before
falling back to the process working directory.
Fixed
- Made
basectl repo initgenerate repo-specific AGPL license files without
copying Base's own application notice into new repositories. - Made
basectl repo configureapply.github/base-project.yml
issue_defaultsto existing repo Project issue items that are missing those
values. - Reported a clear error when
BASE_ACTIVATE_SHELLpoints to a non-Bash shell. - Made setup BATS command helpers run with noninteractive stdin so PTY-backed
test runs exercise recovery guidance consistently. - Redacted compound secret-like command-output assignments such as
GITHUB_TOKEN=...,DB_PASSWORD=..., and
AWS_SECRET_ACCESS_KEY=...from setup failure summaries and debug logs. - Rejected path-unsafe
project.namevalues inbase_manifest.yamlbefore
they can be used in Base-managed state paths. - Removed
evalfrom Bash.basercguard variable snapshots while preserving
Bash 4.2 compatibility. - Replaced
install.shshell strict mode with explicit installer command
failure handling. - Corrected the
git_get_current_branchusage message to name the current
helper. - Avoided subshell timestamp formatting in Bash
LOG_UTClogging. - Made
lib_std.shyes/no prompts read from the controlling terminal so
redirected stdin stays available to the caller. - Compared
lib_std.shBash major and minor versions arithmetically so older
major versions with two-digit minors cannot bypass the Bash 4.2 minimum. - Resolved
lib_std.shrelative imports without changing directories so
failing imports cannot leave the caller on the script directory stack. - Bounded
lib_std.shlog caller stack walking so unusual stdlib-only frame
chains cannot scan indefinitely while finding a source location. - Made Bash
lib_std.shlogging honorLOG_UTC=1so wrapper-driven Bash and
Python logs use the same timestamp zone. - Made
lib_std.shcolor initialization check stderr when deciding whether
log colors can be rendered, so redirected stdout does not disable colored
logs while stderr is still a terminal. - Made
base_cli.Appreject duplicate command registrations instead of
silently overwriting the first command. - Made
basectl doctorwarn when Homebrew reports installed Xcode Command Line
Tools are outdated or incomplete.
Base v1.0.0
Added
- Added
docs/why-base.mdas a concise evaluator page comparing Base with
adjacent developer-environment tools. - Documented Base's
uvecosystem boundary indocs/tool-boundaries.md. - Clarified the Homebrew and source checkout install choices for users who
already have Homebrew, Git, and Bash. - Added a one-page command quick reference for the current
basectlcommand
surface. - Added
.github/base-project.ymlto the standardbasectl repo init
baseline so repo Project taxonomy and issue defaults can move through the
same review path as other repository files. - Added repo Project metadata handoff to
basectl gh issue createso new
issues are added to the repo Project with defaults from
.github/base-project.ymlwhen the repository is known.
Changed
- Changed
basectl repohelp to show command-specific options for each
subcommand instead of one shared option list. - Changed
basectl repo init --prto continue into GitHub-side configuration
when the generated baseline is already present, while still stopping after
opening a pull request when file changes are needed. - Updated the Homebrew release process to require bottle publishing for
supported macOS installs before accepting the 1.0 upgrade rehearsal. - Removed the stale
CLAUDE.mdagent guide in favor of the canonical
AGENTS.mdguidance.
Fixed
- Copied missing GitHub Project item field values into repo-specific Projects
duringbasectl repo configuremigrations, preserving existing target values. - Made
assert_not_nullreject invalid variable-name arguments without logging
the raw value, and clarified that callers must pass variable names. - Made
lib_std.shdry-run handling treatDRY_RUNanddry_runvalues of
true,1,yes, andonconsistently, avoiding accidental live execution. - Fixed documentation drift for
basectl logssyntax, project virtual
environment location, and README coverage of thebasectl cicommand. - Made
basectl activateprefer a uv project's repo-local.venvwhen
pyproject.tomlanduv.lockare present, avoiding a misleading
Base-managed virtual environment in activated shells.
Base v0.4.4
Added
- Protected default branches by default during
basectl repo configure, with
--no-protect-default-branchfor repositories that intentionally skip the
Base-managed ruleset. - Added Base-managed GitHub Project metadata configuration through
basectl repo init,basectl repo configure, and the lower-level
basectl gh projectsurface. - Added diagnostic workflow guidance for preserving failure evidence and
routing follow-up fixes.
Fixed
- Changed
basectl repo configureto warn instead of fail when GitHub reports
that default branch rulesets are unavailable for a private repository's plan. - Made
basectl test basepackage-aware so Homebrew-installed Base runs the
packaged Python test layer and skips source-checkout-only BATS tests with
clear guidance.
Base v0.4.3
Added
- Added opt-in pull request creation for
basectl repo init --prso generated
repository baselines can move through review before merge.
Changed
- Changed
basectl updateto detect Homebrew-managed Base installs, hand off
only tobrew upgrade codeforester/base/base, preserve non-mutating dry-run
output, and run setup with inherited Base environment variables cleared.
Fixed
- Fixed
basectl repo agent-guidanceso it works from a repository directory
without an explicit path and shows command-specific help.
Base v0.4.2
Fixed
- Improved Bash startup recovery guidance when an existing shell still has a
stale readonlyBASE_HOMEafter a Homebrew upgrade.
Base v0.4.1
Fixed
- Preserved explicit Homebrew
optsymlink paths forBASE_HOMEand
Base-managed shell startup snippets after upgrades, avoiding stale versioned
Cellarpaths that can disappear afterbrew cleanup.
Base v0.4.0
Added
- Added the local observability model for future command history, last-error
explanation, and diagnostic report surfaces. - Added read-only workspace manifest support for
basectl workspace status,
check, anddoctorwith--manifest <path>. - Added guarded
basectl release publishfor annotated Git tags and GitHub
Releases, including post-publish Homebrew handoff reporting. - Added read-only
basectl release check|plan|notescommands backed by
manifest-owned release metadata. - Added a text-first Base newcomer orientation deck and documented the optional
PDF/PPTX export path. - Added opt-in project Git
originreachability diagnostics with
basectl check|doctor <project> --remote-network. - Added an explicit
aiprerequisite profile for Codex CLI and Claude Code
setup, check, doctor, onboard, and shell completion flows. - Added first-run seeding of
~/.base.d/config.yamlwith
workspace.root: ~/workduringbasectl setup. - Added
basectl export-contextfor deterministic local Markdown and Zip
bundles from a project's.ai-context/directory.
Changed
- Expanded
basectl repo initto seed portable project Git workflow guidance
and a standard pull request template for Base-managed repositories.
Fixed
- Replaced stale pre-1.0 rewrite guidance in the architecture repository
conventions with current GitHub release and Homebrew tap ownership. - Removed a hardcoded issue number from the 1.0 Homebrew upgrade reminder in
basectl release. - Kept
basectl ci setup --format jsonoutput focused on a clean setup summary
instead of embedding the delegated setup log stream. - Validated workspace manifest repo URLs when a
repos[].urlvalue is provided. - Removed forbidden shell strict mode from the project installer template.