Agent Layer publishes full release notes and artifacts on GitHub Releases. The canonical history lives in CHANGELOG.md and is embedded below.
Where to read release notes:
If you pin versions in a repo, read the release notes before upgrading (see /docs/concepts#version-pinning and /docs/upgrades for the upgrade contract).
If you are looking for a specific change, search the changelog by version tag (for example v0.6.0).
Changelog
All notable changes to this project will be documented in this file.
v0.9.1 - 2026-03-07
Overhauls the built-in skill library from 10 to 22 structured, workflow-driven skills and introduces a user-managed conventions file so you can tailor project-specific rules without losing them on upgrade. Instructions are reordered, deduplicated, and compressed for better agent compliance.
Added
- New user-managed
04_conventions.mdinstruction template for project-specific conventions (architecture, code quality, data safety, time/data, environment). Seeded onal init, never overwritten onal upgrade; future convention updates delivered viaappend_to_filemigrations with duplicate detection. - New
append_to_filemigration kind for delivering content to user-managed files without overwriting edits. Supports duplicate-detection via match string, automatic file creation, and atomic writes. - New
delete_filemigration operations for removing deprecated skill directories during upgrade. - 17 new built-in skills following a normalized workflow-driven structure with explicit phases, global constraints, guardrails, and human checkpoints:
address-pr-comments,audit-and-fix-uncommitted-changes,audit-memory,audit-tests,complete-current-phase,debug-issue,fix-ci,implement-plan,improve-codebase,plan-work,repair-checks,resolve-findings,review-scope,schedule-backlog,ship-pr,simplify-code,verify-against-plan. - Site documentation page for built-in skills (
site/docs/skills.mdx) covering the full 22-skill library organized by category with usage examples and customization guidance. - Site documentation page for evidence-based skill design (
site/pages/skill-design.mdx) with 5 core design principles and 18 academic/industry citations. - Internal skill authoring reference (
docs/SKILL-DESIGN.md) and audit workflow specification (docs/SKILL-AUDIT.md).
Changed
- Instruction files reordered for primacy effect:
02_rules.md→00_rules.md,00_base.md→01_base.md,01_memory.md→02_memory.md. Hard constraints now load first to improve model compliance.al upgrademigrates existing repos viarename_fileoperations. - Cross-file instruction duplicates removed: 6 items that appeared in multiple instruction files consolidated to a single canonical location, reducing ~57 instructions to ~50.
- Verbose instruction sections compressed (~50% fewer tokens in Critical Protocol, Workflow & Safety, and Tools sections) without removing guidance.
- UTC-only internals and No system Python rules moved from
02_rules.mdto04_conventions.mdas project-specific conventions (delivered to existing users viaappend_to_filemigrations). - 5 existing built-in skills restructured to normalized workflow pattern:
audit-documentation,boost-coverage,finish-task,fix-issues,review-plan. - Decision hygiene guidance updated: superseded decisions should be replaced (not accumulated), and entries that become self-evident from the codebase should be removed.
- Skill loader error message for directories missing a skill file shortened from "missing SKILL.md or skill.md" to "has no SKILL.md".
- Site docs sidebar positions updated to accommodate new Skills page; upgrade-checklist shell examples consolidated.
Removed
- 5 built-in skills replaced by normalized workflow equivalents:
cleanup-code(→simplify-code),continue-roadmap(→complete-current-phase),find-issues(→resolve-findings),fix-tests(→repair-checks),update-roadmap(→schedule-backlog). Migration manifest deletes these (plusmechanical-cleanup) from user directories during upgrade.
Improved
- Expanded automated test coverage for user-owned instruction files (seed-on-init, no-overwrite-on-upgrade, excluded-from-diffs),
append_to_filemigration paths (apply, no-op, file creation, rollback), normalized workflow skill structure validation, artifact naming conventions, and skill deletion migration scenarios.
v0.9.0 - 2026-03-01
Added
- Added a reusable
internal/skillvalidatorpackage with parse/validate separation and deterministic findings for agentskills.io-aligned skill validation. - Added
al doctorskills diagnostics for standards checks (unknown frontmatter keys, name/path mismatches, and non-canonical directory filenames such asskill.md). - Added release manifests for
v0.9.0:internal/templates/migrations/0.9.0.jsonandinternal/templates/manifests/0.9.0.json. - Added
al doctorcheck for stale flat-format skill files (.mdat skills root) with guidance to runal upgrade. - Added
CONTEXT.mdmemory file template for general-purpose project context, domain concepts, naming conventions, and lessons learned. - Added data-driven breaking-change display: migration manifests now carry
breaking,breaking_notice, andbreaking_detailsfields, and the upgrade report renders them generically instead of hardcoding per-kind display logic. - Added yellow highlighting for readiness warnings, file-removal counts, and review-needed items in upgrade plan and upgrade output for improved scanability.
- Upgrade snapshot rollback now accepts snapshots in
createdstatus, enabling recovery from interrupted upgrades that failed before reachingappliedstatus.
Changed
- Renamed legacy "slash command" source and output terminology to "skills" across config, sync pipelines, templates, and docs.
- Canonicalized source layout to
.agent-layer/skills/, with migrations that rename legacy.agent-layer/slash-commands/and embedded skill template paths. - Breaking: Flat-format skills (
<name>.md) are no longer supported by the skill loader. All skills must use directory format (<name>/SKILL.md).al upgrademigrates both built-in and user-authored skills automatically via a singlemigrate_skills_formatoperation with pre-flight conflict detection and user confirmation. - Skill frontmatter parsing/generation now uses YAML (
go.yaml.in/yaml/v3) with support forname,description,license,compatibility,metadata, andallowed-tools, while keeping unknown fields parse-tolerant for portability. - Increased skill parser/validator single-line scanner caps to
8 MiBto reduce token-limit failures on large single-line skill content. - Documentation now explicitly states that missing or empty skill
descriptionis load-enforced (fail-loud), while missingnameremains backward-compatible with doctor warnings. - Skills migration user-facing copy updated to "Slash-commands renamed to skills" with data-driven breaking-change notices sourced from the migration manifest.
- Unknown-file scanning now covers both
.agent-layer/anddocs/agent-layer/, with a fresh post-migration re-scan so the unknown-file prompt reflects actual post-migration state instead of stale pre-migration paths. - Migration-covered diff suppression now uses ancestor-directory matching, so migrations that own an entire directory (e.g., skills format migration) suppress noisy per-file template diffs in plan output.
- Git safety instruction now clarifies that commit/push authorization applies only to the specific request and does not carry forward.
Fixed
al doctorlenient-config fallback now best-effort loads skills, preventing false "No skills configured" results when strict config validation fails.- Skill name handling is now Unicode NFKC-aware across loading and validation paths, preventing false duplicates/mismatches for normalization-equivalent names.
- Skill metadata and text limits now use rune counts (not bytes), and validation now rejects empty names and non-ASCII digit forms in slug normalization.
- Directory-format loading now accepts lowercase
skill.mdas a compatibility fallback while preserving canonicalSKILL.mdprecedence.
Removed
- Removed
docs/agent-layer/SKILLS_WORKFLOWS.md; workflow guidance is now provided by individual skill sources.
Improved
- Expanded automated coverage across skill loading/validation, upgrade migrations, prompt generation, install ownership/readiness checks, and docs surfaces touched by the skills-standard migration.
- Updated default embedded skills to canonical agentskills directory format (
skills/<name>/SKILL.md) and aligned memory/workflow docs for Phase 15 completion.
v0.8.8 - 2026-02-25
Added
- Added embedded upgrade migration manifest support for
v0.8.8to canonicalize the Claude VS Code agent key fromagents.claude-vscode.enabledtoagents.claude_vscode.enabledand enforce a default for the canonical key. - Expanded branch-coverage suites across upgrade/install, dispatch, wizard PTY interactions, and command paths to harden release confidence.
Changed
- Canonical config/docs naming now uses
[agents.claude_vscode](snake_case). Legacy[agents.claude-vscode]remains accepted at load time and is migrated during upgrade. - Release and upgrade-doc validation checks are stricter, including stronger release workflow/docs contract assertions and stable-tag publishing guardrails.
cmd/publish-siterelease version-retention and versioned-doc pruning behavior is more robust for deterministic stable release publication.
Fixed
- Made dispatch cache sync-error coverage deterministic by injecting sync failures in tests instead of relying on platform-specific
/dev/nullbehavior. - Aligned upgrade/readiness messaging and docs references to the canonical
claude_vscodekey to avoid mixed-key guidance.
Improved
- Removed obsolete Claude-specific GitHub workflow files in favor of the current release/verification workflow set.
- Updated README and site docs for key-name consistency and release guidance clarity.
v0.8.7 - 2026-02-24
Added
al <client>commands now support--quiet/-qfor one-off quiet runs that suppress Agent Layer informational output while preserving client output and error exit behavior.- Added end-to-end coverage for quiet Claude runs to ensure
al claude --quietemits no Agent Layer output and still launches correctly. - Wizard back-navigation support: pressing
Escnow moves to the previous step, with explicit first-step exit confirmation and deterministic state rollback behavior for partial selections. - Wizard
Ctrl+Cnow exits immediately without saving, distinct fromEsc(back). Both keys are shown as hints in the bottom navigation bar (esc back • ctrl+c exit). - Config guardrail test for required fields: automated enforcement now checks that newly required config fields have matching
config_set_defaultmigration coverage (with explicit legacy baseline allowlist). - Claude reasoning-effort support in wizard/config/sync paths (
low|medium|high), including projection into.claude/settings.jsonaseffortLevel.
Changed
warnings.noise_modenow supportsquietin addition todefaultandreduce.- Quiet handling is now applied consistently across dispatch and client launch paths, including argument forwarding and no-sync execution.
- Wizard-managed
config.tomlwrites now use an explicit preferred section order policy (approvals, enabled agents,mcp,warnings) instead of implicitly coupling ordering to template parse order. - Upgrade diff output is now colorized in interactive terminals for better scanability (adds/removes/hunks), with plain-text fallback preserved for non-interactive and no-color environments.
- Wizard profile apply flow now warns when replacing an existing TOML-corrupt
.agent-layer/config.toml.
Fixed
al syncwarning-only outcomes in quiet mode now preserve non-zero exit behavior without printing warning text.- Quiet-mode behavior now avoids leaking dispatch/update-check banners when quiet is enabled via flag or config.
- Prevented hidden behavior drift in multiline TOML patching by refactoring duplicated state tracking into a shared iterator with regression coverage across call sites.
- Gemini
reasoning_effortis now rejected explicitly with a clear validation error instead of allowing ambiguous/unsupported behavior. - Claude reasoning-effort validation now fails loudly for invalid option values and unsupported model selections.
Improved
- Documentation and default config comments now describe quiet-mode behavior and its interaction with
al doctor(which always prints warnings). - Validation and warning messaging now includes
quietas a first-class supported noise mode. - Expanded test coverage for wizard back-navigation state transitions, profile corruption warning paths, reasoning-effort capability validation, Claude sync projection behavior, and upgrade diff color/no-color rendering.
- Added PTY integration tests for wizard Esc/Ctrl+C keystroke classification, validating the full chain from raw terminal bytes through bubbletea to error classification.
- Updated project memory/docs (
ISSUES.md,BACKLOG.md,ROADMAP.md,DECISIONS.md,README.md) to reflect completed sprint scope and release-facing behavior.
v0.8.6 - 2026-02-23
Added
al wizardnow prompts to enable per-repo Claude settings and caches isolation (local_config_dir) when Claude or Claude VS Code is enabled. Default isfalse(shared global config); selectingtruesetsCLAUDE_CONFIG_DIRto a repo-local directory for separate settings and caches per repository.
Fixed
.gitignoretemplate inline comments on/.claude/and/.claude-config/patterns were treated by Git as part of the literal pattern, causing both directories to not be gitignored. Comments moved to their own lines. Affected users (v0.8.5 installs): runal upgradeoral syncto pick up the corrected template.
Improved
- Per-repo isolation is now documented as a core feature in the README comparison table, key properties, and a dedicated Per-repo credential isolation section in the site concepts page (Codex auth isolation plus Claude settings and caches isolation; Claude auth remains shared due to an upstream limitation).
v0.8.5 - 2026-02-23
Added
- Optional agent-specific passthrough configuration for Claude and Codex via
agents.claude.agent_specificandagents.codex.agent_specific. - Optional
agents.claude.local_config_dirsupport for repo-local Claude config isolation (.claude-config).al vscodesetsCLAUDE_CONFIG_DIRonly when bothlocal_config_dir = trueandagents.claude-vscode.enabled = true. al upgrade rollback --listsupport to inspect available snapshot IDs and statuses before executing rollback.al syncnow auto-adds the repository root to~/.gemini/trustedFolders.jsonwhen Gemini is enabled so Gemini CLI reliably loads project-level.gemini/settings.json. If this write fails, sync still succeeds and emits a non-fatal warning with manual remediation guidance.
Changed
- Agent-specific passthrough keys intentionally override Agent Layer-managed keys when they collide, with sync warnings to keep overrides explicit.
al vscodenow clearsCLAUDE_CONFIG_DIRonly when it points at the repo-local.claude-config; user-defined non-repo values are preserved.- Codex sync now writes
agents.codex.agent_specifickeys before managed MCP tables so top-level overrides remain at the TOML root.
Fixed
- Config parsing now rejects unrecognized keys during strict decode instead of silently ignoring them, with actionable validation guidance in the returned error.
.envparsing now correctly handles quoted values, escaped newline/carriage-return sequences, and invalid trailing characters after quoted values.- MCP tool-name collision warnings are deterministic: warning subjects and per-tool server lists are sorted for stable output.
- Upgrade
config_set_defaultprompts no longer mark one choice as "recommended"; migration manifest values are still pre-selected but users must make an explicit choice. al upgradenow accepts zero-byte snapshot file entries, fixing failures where unknown empty files previously producedrequires content_base64errors.al geminino longer fails MCP discovery for the internalagent-layerserver when PATHalis a non-runnable repo-pin shim. Prompt-server command resolution now prefers local source execution (go run <repo>/cmd/al mcp-prompts) when available,al mcp-promptsbypasses repo-pin dispatch, and prompt-server source roots are validated as the Agent Layer module.
Improved
- Expanded automated coverage for root/upgrade command paths, Gemini trust flows, upgrade-readiness helpers, warning policy branches, prompt-server root resolution, dispatch behavior, and codex/claude agent-specific config rendering.
- Added e2e coverage for upgrade flows that include empty unknown files and for wizard MCP sanitization behavior when profile defaults disable an injected server block.
- Website documentation now includes
al upgrade rollback --listguidance, Gemini trusted-folder remediation notes, and expanded agent-specific and repo-local Claude configuration guidance.
v0.8.4 - 2026-02-20
Fixed
- Version dispatch no longer prints the version-source diagnostic twice when a pinned or environment-overridden version dispatches to a cached binary. The diagnostic now prints only from the binary that actually runs the command.
Changed
- Config validation now silently strips transport-incompatible MCP server fields instead of rejecting the config with an error. For example,
headerson a stdio server orcommand/argson an HTTP server are removed during validation rather than causing a load failure. This makes configs more resilient to leftover fields from transport changes or manual editing.
Improved
al wizardconfig patching now removes dotted sub-key lines (e.g.,headers.Authorization = "Bearer ...") when stripping a parent key likeheaders. Previously, only inline-table syntax (headers = { ... }) was handled.- Scenario-based end-to-end test framework with 26 scenarios and 436 assertions replaces the previous monolithic e2e script. Covers fresh install, wizard profiles, upgrade paths, error propagation, agent launch, and rollback workflows with mock agent binaries.
v0.8.3 - 2026-02-19
Fixed
al doctorlenient config fallback now injects built-in environment variables (e.g.,AL_REPO_ROOT), fixing false "missing environment variables" warnings for MCP servers likefilesystemthat reference${AL_REPO_ROOT}in their args.al wizardnow sanitizes transport-incompatible MCP server fields during config patching. For example, leftoverheaderson a stdio server or leftovercommand/argson an HTTP server are automatically removed. Previously, the wizard would complete successfully butal syncwould fail with a validation error, creating a circular "run wizard to fix" loop.
v0.8.2 - 2026-02-18
Added
- Migration manifest chaining:
al upgradenow loads all intermediate migration manifests between the source and target versions during multi-version jumps. Users upgrading from 0.8.0 to 0.8.2 will receive migrations introduced in intermediate releases. - Config resilience:
al wizard,al doctor, andal upgradenow use lenient config parsing so they always work even on broken or incomplete configs. Runtime commands remain strict with actionable guidance.
Changed
- The
agents.claude-vscode.enabledconfig migration has been moved from the v0.8.1 manifest to v0.8.2. This ensures all users (including those who installed v0.8.1 before the migration was added) receive the prompt during upgrade.
Fixed
- Users jumping multiple versions (e.g., 0.8.0 to 0.8.2) no longer miss intermediate migration operations.
Removed
- Slash command
auto-approvefrontmatter. Approval permissions are controlled entirely byapprovals.mode.
Improved
- Slash command frontmatter now rejects unrecognized keys with a clear error, catching typos and unsupported fields early.
v0.8.1 - 2026-02-18
Added
[agents.claude-vscode]config section for Claude Code VS Code Extension support.al vscodeis the single command for launching VS Code with both Codex and Claude extension settings based on which agents are enabled.approvals.mode = "yolo"for maximum agent autonomy: skips all permission prompts (Claude--dangerously-skip-permissions, Gemini--approval-mode=yolo, Codexapproval_policy=never+sandbox_mode=danger-full-access, VS Codechat.tools.global.autoApprove). Intended for sandboxed/ephemeral environments.- Slash command
auto-approvefrontmatter:auto-approve: trueauto-approves MCP prompt retrieval for that skill in Claude clients. It does not auto-approve agent actions after reading the prompt; those remain governed byapprovals.mode. - Upgrade readiness checks now detect stale disabled-agent artifacts for
.claude/settings.json.
Changed
al vscodenow launches when either[agents.vscode]or[agents.claude-vscode]is enabled inconfig.toml, unifying both extensions under a single launch command.CODEX_HOMEis now cleared from the VS Code process environment when[agents.vscode]is disabled, preventing stale Codex configuration leakage when only Claude VS Code is enabled.- Release process now includes a preflight gate (
make release-preflight RELEASE_TAG=vX.Y.Z) that validates upgrade-contract documentation before tagging.
Fixed
al vscodeno longer appends.when pass-through arguments include a positional path or file argument. (#51)- Sync warning exit behavior restored: non-suppressible warnings correctly propagate exit status regardless of
noise_modesetting.
v0.8.0 - 2026-02-16
Added
- New upgrade command surface centered on
al upgrade:al upgrade plan(dry-run preview),al upgrade rollback <snapshot-id>(manual restore),al upgrade prefetch --version X.Y.Z(cache warm-up), andal upgrade repair-gitignore-block(managed block repair). al upgrade plannow produces plain-language categorized upgrade previews with readiness checks and line-level diff previews (default 40 lines per file, configurable via--diff-lines).- Upgrade planning ownership inference is now deterministic and offline using committed release manifests (
internal/templates/manifests/*.json) plus repo baseline state (.agent-layer/state/managed-baseline.json). al upgradenow creates managed-file snapshots under.agent-layer/state/upgrade-snapshots/and automatically rolls back transactional changes when an upgrade step fails.- Embedded per-release migration engine:
al upgradeexecutes migration manifests (internal/templates/migrations/<target>.json) before template writes and emits deterministic migration reports. al wizardnow supports non-interactive profile mode (--profile, optional--yes) and backup cleanup (--cleanup-backups).- Warning noise control added via
warnings.noise_mode(defaultorreduce) to reduce non-critical suppressible warning output when desired.
Changed
- Breaking:
al initis now one-time scaffolding only. If.agent-layer/already exists,al initerrors and directs users toal upgrade plan+al upgrade. - Breaking:
al upgradenon-interactive execution now requires--yesplus explicit apply flags (--apply-managed-updates,--apply-memory-updates,--apply-deletions) to make mutation intent explicit. .agent-layer/.envand.agent-layer/config.tomlare now strictly user-owned: seeded only when missing and never overwritten by init/upgrade operations..agent-layer/.gitignoreis treated as internal agent-owned state: always rewritten from templates and excluded from upgrade plans/diff prompts.- Default MCP server templates now pin concrete tool versions by default, with inline floating/latest opt-in examples for teams that want automatic upstream updates.
- Update-check handling now degrades gracefully on GitHub API rate limits so init/doctor flows continue with actionable warning output.
- Release process now requires generating and committing a per-tag template ownership manifest before tagging (
./scripts/generate-template-manifest.sh --tag vX.Y.Z).
Fixed
al upgrade rollback <snapshot-id>now rejects path separators in snapshot IDs, preventing path traversal attempts during manual rollback resolution.al vscodelaunch preflight now fails fast with explicit guidance when thecodeCLI is missing onPATHor when.vscode/settings.jsonhas a managed-block marker conflict.
Removed
- Breaking:
al init --overwriteandal init --forcehave been removed. Useal upgrade planandal upgradefor upgrades/repairs. - Breaking:
al upgrade --forcehas been removed. Use explicit apply flags (plus--yesfor non-interactive runs) to select mutation categories. - Breaking:
al upgrade plan --jsonhas been removed; text output is now the only supported plan interface.
v0.7.0 - 2026-02-07
Added
- Upgrade contract published at
site/docs/upgrades.mdx: defines upgrade event categories (safe auto,needs review,breaking/manual), sequential compatibility guarantees (N-1toN), release-versioned migration rules, and OS/shell capability matrix. - Release gate validates upgrade documentation for each release tag (
make docs-upgrade-check), ensuring migration table rows exist and placeholder text is replaced when changelog notes breaking changes. al init --version latestresolves the latest GitHub release to a semver pin before writing.agent-layer/al.version.al init --version X.Y.Zvalidates the release exists on GitHub before writing the pin file, failing with a clear "release not found" message instead of writing a pin that 404s on next use.al initauto-recovers from empty or corrupt.agent-layer/al.versionpin files with a warning instead of blocking all commands.- Binary download progress indicator:
ensureCachedBinaryemits "Downloading al vX.Y.Z..." / "Downloaded al vX.Y.Z" to stderr. - Actionable error messages for binary download failures (404 not-found and timeout scenarios).
Changed
- Breaking: Windows support removed. Deleted
al-install.ps1installer, Windows release target,open-vscode.batlauncher, and all Windows-specific code paths in dispatch, cache, exec, and lock packages. Windows was never tested and best-effort support eroded trust. macOS and Linux remain fully supported. al initnow bypasses repo-pin binary dispatch and always executes on the invoking CLI binary, preventing older pinned versions from running upgrade operations.- Launcher template writes refactored for reliability with proper macOS path escaping.
- Codex MCP header projection order corrected.
- CI workflow caches pinned tools in GitHub Actions for faster builds.
- Upgrade contract linked from README, site docs, DEVELOPMENT.md, and RELEASE.md.
Removed
al-install.ps1(Windows PowerShell installer).open-vscode.bat(Windows VS Code launcher).- Windows release targets (
windows/amd64) from build scripts. - Windows-specific dispatch, cache, exec, and lock code paths.
v0.6.1 - 2026-02-06
Added
- CLI argument forwarding:
al <client>now forwards extra arguments to the underlying client. Use--to separate Agent Layer flags from client arguments (e.g.,al claude -- --helporal vscode --no-sync -- --reuse-window). - VS Code launchers are now created during
al initin addition toal sync, so launchers are available immediately after initialization. .gitignoremanaged block is now updated during bothal initandal syncoperations for consistency.
Fixed
AL_SHIM_ACTIVEenvironment variable no longer leaks into VS Code's integrated terminal when launching viaal vscode. Previously, this caused subsequentalcommands in the terminal to fail with "version dispatch already active" errors. (#46)- Wizard now rewrites
config.tomlsections in the template-defined canonical order, preventing section ordering drift after multiple wizard runs.
Changed
- Launcher code moved to
internal/launcherspackage with exportedEnsureGitignorefor cross-package use. - Documentation updated with clearer guidance on gitignore template format, wizard behavior, and troubleshooting MCP server startup on macOS.
v0.6.0 - 2026-02-03
Added
- Documentation website with comprehensive guides covering getting started, concepts (approvals, MCP servers, project memory, version pinning), reference (CLI, configuration, environment variables), and troubleshooting.
- Website publishing pipeline (
cmd/publish-site) with automated deployment in the release workflow. - Playwright MCP server template in default
config.tomlfor browser automation workflows. - Descriptive comments for all default MCP server templates explaining purpose and required credentials.
- Claude Code VS Code Extension added to supported clients table in README.
Changed
- README rewritten with clearer value proposition, comparison table (manual vs Agent Layer), and improved quick start flow.
- Default MCP server examples in README now use generic
example-apiinstead of GitHub-specific config for clarity. - Documentation structure consolidated from nested pages to flat MDX files for better navigation.
v0.5.8 - 2026-01-30
Changed
- Breaking: Environment variables now require
AL_prefix to avoid conflicts with shell environment (e.g.,GITHUB_PERSONAL_ACCESS_TOKEN→AL_GITHUB_PERSONAL_ACCESS_TOKEN). This ensures Agent Layer variables don't override existing environment variables when VS Code terminals inherit the process environment.
Fixed
- VS Code
open-vscode.applauncher now usesosascriptwith a login shell (zsh -l) instead of hardcoded VS Code CLI paths, fixing launch failures when VS Code is installed via Homebrew, in~/Applications, or other non-standard locations. This also fixes MCP server failures where VS Code couldn't findnodebecause Finder-launched apps have a minimal PATH. - All VS Code launchers (
.app,.command,.bat,.desktop) now delegate toal vscodefor loading.agent-layer/.env, ensuring consistent parsing (KEY=VALUE data, not sourced) across platforms. OnlyAL_*variables with non-empty values are loaded, and existing environment variables take precedence—matching the documented behavior foralcommands. - VS Code
.applauncher now shows a descriptive alert when thecodecommand is not found, instead of silently failing. - Linux
.desktoplauncher simplified to delegate to.commandscript for consistent behavior and maintainability.
v0.5.7 - 2026-01-29
Added
- Custom HTTP header support for Codex MCP servers:
bearer_token_env_varforAuthorization: Bearer ${VAR},env_http_headersfor other env-var-sourced headers, andhttp_headersfor static literals. X-MCP-Toolsheader in default GitHub MCP server template for server-side tool filtering, reducing projected tool count.- Detailed per-tool token breakdown in
al doctorMCP schema bloat warnings, showing top contributors by token count. - Documentation for MCP HTTP header projection across all supported clients (
docs/MCP_HEADERS_SUPPORT.md).
Changed
- Default MCP schema token thresholds increased to accommodate larger MCP servers (server: 7500→20000 tokens, total: 10000→30000 tokens).
- Doctor command now shows real-time discovery progress when checking MCP servers.
- Large internal modules (
install,dispatch,config) split into smaller, focused files for maintainability. - golangci-lint upgraded to v2.8.0 with additional linting rules enabled.
v0.5.6 - 2026-01-27
Added
http_transportconfig option for HTTP MCP servers to specify transport mode (streamableorsse).- Three new MCP server templates in default
config.toml:fetch(mcp-server-fetch),ripgrep(mcp-ripgrep), andfilesystem(server-filesystem with repo-scoped access). ${AL_REPO_ROOT}built-in variable for resolving repository root path in MCP server args.- VS Code settings sync now preserves existing user settings and comments using JSONC-aware block insertion instead of overwriting the entire file.
- Memory file templates (
BACKLOG.md,COMMANDS.md,DECISIONS.md,ISSUES.md,ROADMAP.md) now include detailed formatting guidelines and entry templates.
Changed
- MCP projection refactored: new
internal/projection/resolvers.gomodule centralizes server resolution logic, used by both sync and warning checks. - Update-available warning now includes full upgrade instructions for Homebrew, macOS/Linux shell script, and Windows PowerShell.
- Instruction templates consolidated and shortened to reduce token count while preserving key guidelines.
- Terminal detection moved to canonical
internal/terminalpackage withIsInteractive()function. - Default MCP server templates no longer specify
clientsfilter (servers are projected to all clients by default).
Fixed
- MCP server health checks now properly handle HTTP transport timeout scenarios.
v0.5.5 - 2026-01-25
Added
- New
03_tools.mdinstruction template with comprehensive tool usage guidelines: time-sensitive information handling, Context7 documentation lookups, MCP tool constraints, approval workflows, and error handling. - New
fix-testsslash command runs repo-defined checks (lint/format/pre-commit/tests) in a loop, fixing failures until all checks pass or max iterations reached.
Changed
- Temporary artifact location moved from
tmp/agent-layer/runs/to.agent-layer/tmp/runs/, keeping all agent artifacts within.agent-layer/. - Slash command artifact naming standardized across workflows:
.agent-layer/tmp/<workflow>.<run-id>.<type>.mdwithrun-id = YYYYMMDD-HHMMSS-<short-rand>. User path overrides removed for consistency. finish-taskworkflow now delegates tofix-testswhen available before falling back to manual repo-defined commands.- README updated with new artifact naming convention and VS Code reauthentication note for new
CODEX_HOMEenvironments.
v0.5.4 - 2026-01-24
Changed
- Memory file
FEATURES.mdrenamed toBACKLOG.mdto better reflect its purpose (unscheduled user-visible features and tasks vs deferred issues). al init --overwritenow detects and prompts to delete unknown files under.agent-layerthat are not tracked by Agent Layer templates.al init --forcenow deletes unknown files under.agent-layerin addition to overwriting existing files without prompts.- Memory instruction templates improved with clearer formatting rules and entry layouts.
- Slash command templates (
continue-roadmap.md,update-roadmap.md) simplified and clarified. - VS Code launcher paths centralized in
internal/launcherspackage, consumed by sync and install to prevent drift. - Sync package refactored with system abstraction layer for improved test isolation and reliability.
v0.5.3 - 2026-01-24
Changed
- User-facing strings consolidated into
internal/messages/package for consistency and maintainability. - Python release tools (
extract-checksum.py,update-formula.py) replaced with Go implementations ininternal/tools/. - Release test script reorganized into modular components (
scripts/test-release/release_tests.sh,scripts/test-release/tool_tests.sh). - Slash command templates (
find-issues.md,finish-task.md) simplified to reduce duplication with base instructions; formatting rules now delegate to individual memory file templates.
v0.5.2 - 2026-01-24
Added
- Automated Homebrew tap updates: release workflow now opens a PR against
conn-castle/homebrew-tapto update the formula with the new tarball URL and SHA256.
v0.5.1 - 2026-01-23
Added
- Source tarball (
agent-layer-<version>.tar.gz) published with releases for Homebrew formula support.
Changed
- Release scripts now generate and verify the source tarball via
git archive+gzip -n. - Documentation cleanup: simplified release process, corrected
make devdescription.
v0.5.0 - 2026-01-23
Major shift from repo-local binary to globally installed CLI with per-repo version pinning.
Added
- Global CLI installation via Homebrew (
brew install conn-castle/tap/agent-layer), shell script (macOS/Linux), or PowerShell (Windows). al initcommand initializes.agent-layer/anddocs/agent-layer/in any repo.- Per-repo version pinning via
.agent-layer/al.version; global CLI dispatches to the pinned version automatically. - Cached binary downloads with SHA-256 verification; cached binaries stored in
~/.cache/agent-layer/versions/. - Shell completion for bash, zsh, and fish (
al completion <shell>with optional--installflag). - Update checking:
al initandal doctorwarn when a newer release is available. - Linux desktop entry launcher (
.agent-layer/open-vscode.desktop). - E2E test suite (
scripts/test-e2e.sh) and release test script (scripts/test-release.sh). - Environment variables:
AL_CACHE_DIR(override cache location),AL_VERSION(force version),AL_NO_NETWORK(disable downloads).
Changed
- Breaking: Repo-local
./alexecutable replaced with globally installedalCLI. - Breaking:
al installrenamed toal init. - Breaking: Repository moved from
nicholasjconn/agent-layertoconn-castle/agent-layer. - Install script renamed from
agent-layer-install.shtoal-install.sh. al init --overwritenow prompts before each overwrite; use--forceto skip prompts.al init --version <tag>pins the repo to a specific release version.- Commands run from any subdirectory now resolve the repo root automatically.
.agent-layer/.gitignoreadded to ignore launchers, template copies, and backups.
Removed
- Repo-local
./albinary; globalaldispatches to pinned versions as needed. agent-layer-install.sh(replaced byal-install.sh).
v0.4.0 - 2026-01-21
Added
al doctorcommand reports missing secrets, disabled servers, and common misconfigurations.al wizardcommand provides interactive setup for approval modes, agent enablement, model selection, MCP servers, secrets, and warning thresholds.- Configurable warning system with thresholds for instruction token count, MCP server/tool counts, and schema token sizes.
- Antigravity slash commands now generate skills in
.agent/skills/<command>/SKILL.md. - VS Code launchers: macOS
.appbundle (no Terminal window), macOS.commandscript, and Windows.batfile, all withCODEX_HOMEsupport. al install --no-wizardflag skips the post-install wizard prompt.- Atomic file writes across all sync operations prevent partial file corruption.
Changed
al installnow prompts to run the wizard after seeding files (interactive terminals only).- Gitignore patterns use root-anchored paths (
/AGENTS.mdinstead ofAGENTS.md) for precision. - Default Codex reasoning effort changed from
xhightohigh. - Codex config header now warns about potential secrets in generated files.
- Environment variable loading: process environment takes precedence;
.agent-layer/.envfills missing keys only; empty values in.envare ignored. - Improved instruction and slash-command templates.
Fixed
- VS Code launcher now works correctly with proper error messages for missing
codecommand. - MCP configuration for Codex HTTP servers now handles bearer token environment variables correctly.
v0.3.1 - 2026-01-19
Added
- Installer failure output now includes clear, actionable error messages.
Fixed
- Installer checksum verification now handles SHA256SUMS entries with "./" prefixes.
Changed
- Quick start documentation no longer suggests manual install fallback when only
./alis present.
v0.3.0 - 2026-01-18
Complete rewrite in Go for simpler installation and fewer moving parts.
Added
- Single repo-local Go binary (
./al) replaces the Node.js codebase. al installcommand for repository initialization with template seeding.al install --overwriteflag to reset templates to defaults.al synccommand to regenerate client configs without launching.- Support for five clients: Gemini CLI, Claude Code CLI, VS Code/Copilot Chat, Codex CLI, and Antigravity.
- Unified
[[mcp.servers]]configuration inconfig.tomlfor both HTTP and stdio transports. - Approval modes (
all,mcp,commands,none) with per-client projection. ${ENV_VAR}substitution from.agent-layer/.envwith client-specific placeholder syntax preservation.- Internal MCP prompt server for slash command discovery (auto-wired into client configs).
- Golden-file tests for deterministic output validation.
- Managed
.gitignoreblock with customizable template (.agent-layer/gitignore.block).
Changed
- Breaking: Complete rewrite from Node.js to Go.
- Breaking: Configuration moved from
config/agents.jsonto.agent-layer/config.toml(TOML format). - Breaking: MCP servers now configured via
[[mcp.servers]]arrays inconfig.toml. - CLI simplified:
./al <client>always syncs then launches. - Instructions now in
.agent-layer/instructions/(numbered markdown files, lexicographic order). - Slash commands now in
.agent-layer/slash-commands/(one markdown file per command). - Approved commands now in
.agent-layer/commands.allow(one prefix per line). - Project memory standardized in
docs/agent-layer/(ISSUES.md, FEATURES.md, ROADMAP.md, DECISIONS.md, COMMANDS.md).
Removed
- Node.js codebase (
src/lib/*.mjs, test files,package.json). config/agents.jsonand separate MCP server configuration files.- Built-in Tavily MCP server (now configurable as external server in
config.toml).
v0.2.0 - 2026-01-17
Major architectural overhaul moving core logic from shell to Node.js.
Added
- Per-agent opt-in configuration via
config/agents.jsonwith interactive setup prompt. - HTTP transport support for MCP servers.
- Tavily MCP server for web search capabilities.
./al --versionflag with dirty suffix for non-tagged commits.- User config preservation and backup during upgrades.
Changed
- Breaking: CLI entrypoint is now
.agent-layer/agent-layer;./alremains as the launcher wrapper in the parent root. - Root resolution, environment loading, and cleanup moved from shell to Node.js (
src/lib/roots.mjs,src/lib/env.mjs,src/lib/cleanup.mjs). - Test framework migrated from Bats (shell) to Node.js native test runner.
- GitHub MCP server switched to hosted HTTP endpoint with PAT authentication.
- Architecture documentation updated to reflect new layer boundaries.
Removed
- Shell scripts:
al,run.sh,setup.sh,clean.sh,check-updates.sh,open-vscode.command. - Shell-based root resolution:
src/lib/parent-root.sh,src/lib/temp-parent-root.sh.
v0.1.0 - 2026-01-12
Initial release.
Added
- Installer for per-project setup that pins
.agent-layer/to tagged releases, with upgrade, version, and dev-branch options. - Repo-local
./allauncher with sync and environment modes plus local update checks. - Sync pipeline that generates client configs from
.agent-layer/configsources. - MCP prompt server that exposes workflows as prompts.
- Project memory templates and setup/bootstrap helpers.