diff --git a/.ai-context/manifest.md b/.ai-context/manifest.md index 672f7c5..3ce3767 100644 --- a/.ai-context/manifest.md +++ b/.ai-context/manifest.md @@ -18,7 +18,7 @@ base-demo's manifest is intentional and maps to a visible Base workflow. | `ide.vscode` | `basectl setup` | Declares VS Code Python extensions and project venv auto-injection when IDE setup is enabled | | `commands` | `basectl run --list` | Named commands: hello, env, manifest, python-info, uv-info, services, environments; `env` prints Base runtime metadata including `BASE_OS`, `BASE_PLATFORM`, and `BASE_HOST` | | `commands[*].runner` | `basectl run base-demo uv-info` | Routes only the uv-info command through `uv run --` | -| `build.targets` | `basectl build` | `info` target runs `src/build-info.sh` | +| `build.targets` | `basectl build` | Default `info` target plus Go, Python, Java, C/C++, and demo-console service build targets | | `build.targets[*].working_dir` | `basectl build base-demo go-api` | Runs the Go build from `services/go-api` without the command changing directories | | `test.command` | `basectl test` | Runs `tests/validate.sh` | | `demo.script` | `basectl demo` | Runs `demo/demo.sh` | @@ -32,6 +32,11 @@ can prove setup, activation, run, build, test, and demo behavior quickly. The `env` command makes the Base v1.5.0 runtime platform contract visible through `BASE_OS`, `BASE_PLATFORM`, and `BASE_HOST`. -The representative environment direction will add service, infrastructure, UI, -and environment-modeling commands in focused slices while preserving this -readable manifest contract. +The representative environment is now part of the committed manifest surface. +The `services` command reads `services/catalog.json`, reports catalog health, +and exercises dry-run startup through `BASE_DEMO_SERVICES_DRY_RUN=1`. +Compose-backed infrastructure lives in `infra/compose.yaml`. +Current multi-language service fixtures live under `services/`. +The React/Vite console provides the catalog UI. The `environments` command +validates the `dev`/`staging`/`prod` configuration model while keeping only +local `dev` operational by default. diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0c5998d..4a60e5a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -48,6 +48,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: repository: basefoundry/base-bash-libs + ref: 34a71d08decf715f5767ab064197f7e63f418448 path: .dependencies/base-bash-libs - name: Set up Base @@ -141,6 +142,7 @@ jobs: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: repository: basefoundry/base-bash-libs + ref: 34a71d08decf715f5767ab064197f7e63f418448 path: .dependencies/base-bash-libs - name: Prepare Base runtime diff --git a/tests/validate.sh b/tests/validate.sh index 6d74b2f..9ed6480 100755 --- a/tests/validate.sh +++ b/tests/validate.sh @@ -169,6 +169,14 @@ grep -Fq -- '--branch v1.5.0' .github/workflows/tests.yml || { exit 1 } +base_bash_libs_pin_count="$( + grep -Fc 'ref: 34a71d08decf715f5767ab064197f7e63f418448' .github/workflows/tests.yml || true +)" +if [[ "$base_bash_libs_pin_count" -ne 2 ]]; then + printf '.github/workflows/tests.yml must pin both base-bash-libs checkouts to the Base v1.5.0-compatible SHA.\n' >&2 + exit 1 +fi + grep -Fq 'validate-ubuntu:' .github/workflows/tests.yml || { printf '.github/workflows/tests.yml does not declare the Ubuntu read-only validation job.\n' >&2 exit 1 @@ -607,6 +615,24 @@ grep -Fq 'BASE_OS' .ai-context/manifest.md && grep -Fq 'BASE_PLATFORM' .ai-conte exit 1 } +if grep -Fq 'will add service, infrastructure, UI' .ai-context/manifest.md; then + printf '.ai-context/manifest.md still describes committed representative environment commands as future work.\n' >&2 + exit 1 +fi + +for ai_context_token in \ + 'services/catalog.json' \ + 'infra/compose.yaml' \ + 'multi-language service fixtures' \ + 'React/Vite console' \ + 'BASE_DEMO_SERVICES_DRY_RUN=1' +do + grep -Fq "$ai_context_token" .ai-context/manifest.md || { + printf '.ai-context/manifest.md does not document current representative environment token: %s.\n' "$ai_context_token" >&2 + exit 1 + } +done + grep -Fq 'Brewfile currently installs mise, uv, Gradle, and Maven' README.md || { printf 'README.md does not document current Brewfile dependencies.\n' >&2 exit 1