Skip to content

Releases: codeforester/base

Base v1.0.4

18 Jun 01:32
b3c8f27

Choose a tag to compare

Changed

  • Made Base resolve reusable Bash libraries from an external base-bash-libs
    checkout or Homebrew package when available, while keeping the bundled
    lib/bash tree as a fallback.
  • Documented the standalone base-bash-libs install path, Base's consumption
    contract, and the migration gate for eventually removing bundled reusable
    Bash libraries.

Base v1.0.3

17 Jun 17:57
8ea79f8

Choose a tag to compare

Changed

  • Made basectl repo init print visible next steps when GitHub setup is skipped
    because no repository was provided or inferred.
  • Made basectl repo clone print the Base baseline check hint only when the
    cloned repository contains base_manifest.yaml.
  • Made basectl repo agent-guidance detect the target repository default
    branch before falling back to main.
  • Made basectl repo agent-guidance print a visible created/unchanged summary
    when existing guidance files are left untouched.
  • Made basectl repo installer-template write ./install.sh by default and
    added --print/--stdout for the stdout template view.
  • Added dirty-worktree and repository-root fix hints for basectl repo
    subcommands that create pull requests.
  • Clarified basectl repo init and repo configure help to say Base-managed
    GitHub settings are safe to re-run and do not remove outside settings.
  • Made live basectl repo configure runs print a structured action summary for
    repository settings, labels, branch protection, and Project metadata.
  • Made basectl repo check print visible success/failure summaries with counts
    and repair commands when files are missing.
  • Made basectl repo init --pr print next steps after opening a baseline pull
    request, including the command to rerun after merge.
  • Clarified basectl repo init and repo configure help to distinguish local
    baseline updates, optional GitHub repo creation, and GitHub-side repair.
  • Made basectl ci setup --format json include compact output_lines on
    setup failures so CI consumers keep intermediate diagnostic context.
  • Standardized Bash CLI usage errors on print_error and changed unknown
    config, projects, release, and workspace commands to return usage status
    without fatal stack traces.

Base v1.0.2

16 Jun 06:56
0c37067

Choose a tag to compare

Added

  • Added basectl repo clone for workspace-aware cloning of one GitHub
    repository into the configured Base workspace.
  • Added --pr support to basectl repo agent-guidance and
    basectl repo installer-template so 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,
    delegated uv sync setup, uv diagnostics, and command-level runner: uv
    support for test, run, demo, and build commands.

Changed

  • Changed basectl update to 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 gh to run the requested GitHub command before using
    gh auth status diagnostics, avoiding false failures when the status probe
    is transiently unavailable.

Base v1.0.1

15 Jun 14:44
c9c20c5

Choose a tag to compare

Added

  • Added Base's own .github/base-project.yml so Base issues get repo Project
    defaults through the same reviewed config file as other Base-managed repos.
  • Added base_cli.ExitCode constants for Base's standard command return
    values.
  • Added cwd support to base_cli.testing.invoke() so tests can run commands
    from an explicit project context without leaking the process working
    directory.
  • Added assert_executable to lib_std.sh for explicit executable path checks.
  • Added a test-local BASE_CACHE_DIR default to base_cli.testing.invoke()
    when home is supplied, with explicit environment overrides still honored.
  • Added run --quiet to suppress expected --no-exit failure warnings in
    probe-style Bash checks.
  • Added ctx.dry_run and base_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_config so 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.md as 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 init generate 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 -ra Bash pattern.
  • Clarified that basectl activate starts a Bash runtime shell and that
    BASE_ACTIVATE_SHELL must 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_cli log source paths prefer the active project root before
    falling back to the process working directory.

Fixed

  • Made basectl repo init generate repo-specific AGPL license files without
    copying Base's own application notice into new repositories.
  • Made basectl repo configure apply .github/base-project.yml
    issue_defaults to existing repo Project issue items that are missing those
    values.
  • Reported a clear error when BASE_ACTIVATE_SHELL points 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.name values in base_manifest.yaml before
    they can be used in Base-managed state paths.
  • Removed eval from Bash .baserc guard variable snapshots while preserving
    Bash 4.2 compatibility.
  • Replaced install.sh shell strict mode with explicit installer command
    failure handling.
  • Corrected the git_get_current_branch usage message to name the current
    helper.
  • Avoided subshell timestamp formatting in Bash LOG_UTC logging.
  • Made lib_std.sh yes/no prompts read from the controlling terminal so
    redirected stdin stays available to the caller.
  • Compared lib_std.sh Bash major and minor versions arithmetically so older
    major versions with two-digit minors cannot bypass the Bash 4.2 minimum.
  • Resolved lib_std.sh relative imports without changing directories so
    failing imports cannot leave the caller on the script directory stack.
  • Bounded lib_std.sh log caller stack walking so unusual stdlib-only frame
    chains cannot scan indefinitely while finding a source location.
  • Made Bash lib_std.sh logging honor LOG_UTC=1 so wrapper-driven Bash and
    Python logs use the same timestamp zone.
  • Made lib_std.sh color 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.App reject duplicate command registrations instead of
    silently overwriting the first command.
  • Made basectl doctor warn when Homebrew reports installed Xcode Command Line
    Tools are outdated or incomplete.

Base v1.0.0

14 Jun 14:49
5366bf9

Choose a tag to compare

Added

  • Added docs/why-base.md as a concise evaluator page comparing Base with
    adjacent developer-environment tools.
  • Documented Base's uv ecosystem boundary in docs/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 basectl command
    surface.
  • Added .github/base-project.yml to the standard basectl 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 create so new
    issues are added to the repo Project with defaults from
    .github/base-project.yml when the repository is known.

Changed

  • Changed basectl repo help to show command-specific options for each
    subcommand instead of one shared option list.
  • Changed basectl repo init --pr to 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.md agent guide in favor of the canonical
    AGENTS.md guidance.

Fixed

  • Copied missing GitHub Project item field values into repo-specific Projects
    during basectl repo configure migrations, preserving existing target values.
  • Made assert_not_null reject invalid variable-name arguments without logging
    the raw value, and clarified that callers must pass variable names.
  • Made lib_std.sh dry-run handling treat DRY_RUN and dry_run values of
    true, 1, yes, and on consistently, avoiding accidental live execution.
  • Fixed documentation drift for basectl logs syntax, project virtual
    environment location, and README coverage of the basectl ci command.
  • Made basectl activate prefer a uv project's repo-local .venv when
    pyproject.toml and uv.lock are present, avoiding a misleading
    Base-managed virtual environment in activated shells.

Base v0.4.4

12 Jun 14:06
278bc25

Choose a tag to compare

Added

  • Protected default branches by default during basectl repo configure, with
    --no-protect-default-branch for 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 project surface.
  • Added diagnostic workflow guidance for preserving failure evidence and
    routing follow-up fixes.

Fixed

  • Changed basectl repo configure to warn instead of fail when GitHub reports
    that default branch rulesets are unavailable for a private repository's plan.
  • Made basectl test base package-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

11 Jun 16:33
2d88fde

Choose a tag to compare

Added

  • Added opt-in pull request creation for basectl repo init --pr so generated
    repository baselines can move through review before merge.

Changed

  • Changed basectl update to detect Homebrew-managed Base installs, hand off
    only to brew upgrade codeforester/base/base, preserve non-mutating dry-run
    output, and run setup with inherited Base environment variables cleared.

Fixed

  • Fixed basectl repo agent-guidance so it works from a repository directory
    without an explicit path and shows command-specific help.

Base v0.4.2

11 Jun 05:25
dab51b1

Choose a tag to compare

Fixed

  • Improved Bash startup recovery guidance when an existing shell still has a
    stale readonly BASE_HOME after a Homebrew upgrade.

Base v0.4.1

11 Jun 04:01
4ec5d93

Choose a tag to compare

Fixed

  • Preserved explicit Homebrew opt symlink paths for BASE_HOME and
    Base-managed shell startup snippets after upgrades, avoiding stale versioned
    Cellar paths that can disappear after brew cleanup.

Base v0.4.0

11 Jun 01:24
1111669

Choose a tag to compare

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, and doctor with --manifest <path>.
  • Added guarded basectl release publish for annotated Git tags and GitHub
    Releases, including post-publish Homebrew handoff reporting.
  • Added read-only basectl release check|plan|notes commands 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 origin reachability diagnostics with
    basectl check|doctor <project> --remote-network.
  • Added an explicit ai prerequisite profile for Codex CLI and Claude Code
    setup, check, doctor, onboard, and shell completion flows.
  • Added first-run seeding of ~/.base.d/config.yaml with
    workspace.root: ~/work during basectl setup.
  • Added basectl export-context for deterministic local Markdown and Zip
    bundles from a project's .ai-context/ directory.

Changed

  • Expanded basectl repo init to 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 json output focused on a clean setup summary
    instead of embedding the delegated setup log stream.
  • Validated workspace manifest repo URLs when a repos[].url value is provided.
  • Removed forbidden shell strict mode from the project installer template.