Releases: reachjalil/harness-config
Release list
Harness config 1.0.0-alpha.10
1.0.0-alpha.10 fixes validation discovery for generated Harness-like runtime
trees. Validation now honors root .harnessIgnore directory boundaries while
looking for .harnessProfileRoot declarations outside configured source roots.
Validation
- Skips ignored runtime directories during profile-root validation discovery,
so generated projections can carry their own Harness sources without
poisoning validation of the parent repository. - Preserves the existing
harness.profile_root_outside_source_roots
diagnostic for visible.harnessProfileRootfiles that are outside
./.harness, configured resources roots, and configured dir roots. - Declares this repository's
examples/tree as ignored for root activation,
letting directharnessc activate --yesvalidate the root projection without
the dogfood fixture wrapper.
Harness config 1.0.0-alpha.9
1.0.0-alpha.9 adds profile-local isolation for pack-style profile roots.
Selected profiles can now use .harnessProfileIsolation to suppress matching
base resources or dir outputs while keeping every active same-name profile root
participating, including wildcard-expanded pack roots and local override packs.
Profile Isolation
- Adds
.harnessProfileIsolationas an optional profile-root declaration file
with gitignore-style isolation patterns for resource and dir logical paths. - Uses strict TOML shape for isolation declarations and the same negation plus
last-match-wins pattern model as.harnessIgnore. - Keeps missing isolation files as normal profile overlay behavior, so existing
profiles continue to layer over base sources without excluding siblings. - Preserves all active same-name profile roots while excluding matching
non-profile/base candidates, which lets tools build portable pack selectors
without rewriting manifests or root ignore files.
Projection, Validation, And Docs
- Excludes
.harnessProfileIsolationfrom projection as a Harness declaration
file and validates malformed declarations with dedicated diagnostics. - Applies isolation consistently to resource projection and dir composition,
including wildcard-expanded source roots and profile-local overlays. - Updates the v1 standard, conformance checklist, diagnostics catalog, testing
scenario map, and website-ready specification content with focused core and
CLI regression coverage.
Harness config 1.0.0-alpha.8
1.0.0-alpha.8 adds external target parents and wildcard path expansion for
worktree-oriented projection while keeping configured source roots observable
inside the repository.
External And Wildcard Targets
- Adds optional
[[targets]].parentso a target can be projected under an
external output parent such as a sibling Git worktree while resources, dir
sources, profiles, ignore rules, and mutable declarations stay anchored in
the repository. - Allows
[[resources]].path,[[dir]].path, and[[targets]].parentto use
gitignore-style path patterns, including*,?,**, character classes,
and backslash escapes. - Keeps
[[targets]].pathstatic and explicit so activation can create the
target folder under each resolved parent; wildcard target paths are rejected. - Expands wildcard source roots and target parents only to existing real
directories, skips symlinked directories, and treats no-match target parent
patterns as producing no concrete targets.
Projection, CLI, And Docs
- Preserves target-derived override selection from
path, notparent, so
multiple worktrees using the same target path share the same logical override
namespace while remaining physically isolated. - Keeps target-output
.harnessIgnoreand.harnessProfilecontrols isolated
per concrete expanded target. - Updates
harnessc activate,validate, andexplainto report and reason
over concrete expanded target roots. - Documents the new standard, tooling, conformance, diagnostics, README, and
website-ready spec behavior, with regression coverage for wildcard matching,
overlap diagnostics, profiles, ignores, dir merging, and CLI explain output.
Harness config 1.0.0-alpha.7
1.0.0-alpha.7 adds the orphaned managed output cleanup workflow for profile
switching and non-active projections while preserving local runtime edits by
default.
Orphaned Managed Outputs
- Adds
orphanactivation plan entries for existing target files that are not
in the active projection but could still be produced by a non-active profile
or target selection. - Keeps orphaned managed outputs by default and adds
--remove-orphansfor
explicit cleanup of unedited orphaned files whose bytes still match the
non-active source projection. - Preserves edited orphaned files, mutable outputs, genuinely unmanaged target
entries, and target-output.harnessIgnoreboundaries during orphan cleanup. - Compares cleanup candidates against final target override bytes, including
dotfile outputs such as.gitignore.
Docs And Tests
- Documents the standard, conformance, tooling, CLI, and website-ready spec
behavior for orphaned managed outputs. - Adds regression coverage for profile switching, overlapping active and
non-active outputs, mutable orphan preservation, target-output ignore
boundaries, and target override byte comparison.
Harness config 1.0.0-alpha.6
1.0.0-alpha.6 hardens the v1 manifest and projection contract for forward
compatibility, aligns the reference implementation with that contract, and
syncs the public English, Spanish, French, and Chinese specification content.
Manifest Compatibility
- Allows unknown top-level manifest fields and unknown fields on
[[resources]],[[targets]],[[dir]], and[activation]as
informational diagnostics instead of validation failures. - Keeps singular
[resources],[resources.<kind>], and[dir]tables
invalid in v1. - Adds
harness.manifest_unknown_fieldso newer v1 manifests can be surfaced
clearly to older tools.
Projection Semantics
- Defines idempotence over the managed projection subset
M_n, so unmanaged
target state and mutable-file edits do not contradict repeat activation. - Clarifies that
.harnessMutableis source-owned in v1 and does not read
target-output.harnessMutablefiles. - Requires
.harnessProfileselectors to contain zero or one active profile;
multi-profile selectors are now errors and do not participate. - Documents deterministic override/profile precedence, target overlap
rejection, shared first-segment override namespaces, and mutable resource
composable outputs.
Docs And Tooling
- Updates Standard, Conformance, Tooling, Adoption, Diagnostics, and Testing
docs with the hardened v1 behavior. - Documents
harnessc init --resource <kind>and--target <path>, removes
staleplancommand prose, and keeps website content links deploy-safe. - Syncs the website-ready Spanish, French, and Chinese pages for the changed
v1 semantics.
Harness config 1.0.0-alpha.5
1.0.0-alpha.5 separates mutable-file ownership from ignore rules, updates
the CLI and conformance tests for that contract, and refreshes the public skill
and website guidance for safer full-repository adoption.
Mutable Files
- Adds
.harnessMutableas the v1 declaration file for seed-once,
runtime-owned files. - Keeps
.harnessIgnorefocused on projection exclusion and target-output
filtering; legacy[mutable]sections in.harnessIgnorenow produce a
validation diagnostic. - Supports root, source-local, profile-local, and target-derived override
.harnessMutablerules with gitignore-style last-match-wins behavior. - Keeps target-output
.harnessMutablefiles out of v1 so target-local
filtering remains a.harnessIgnoreresponsibility.
Tooling And Tests
- Updates
harnessc init, validation, planning, activation, and explanation
flows to read.harnessMutableseparately from.harnessIgnore. - Preserves mutable files as create-once target state unless
--force-mutableis explicit. - Adds regression coverage for
.harnessMutableparsing, legacy
.harnessIgnorediagnostics, profile overlays, declaration-file
non-projection, and dir/resource activation behavior.
Adoption Guidance
- Updates the Harness config skill to version
2026-05-28.harness-mutable-contractwith a plan-first migration workflow,
skill-version reporting, a full-transition checklist, and a best-practice
review checklist. - Clarifies that mutable files must be copied into
.harnessas seed files
before they are declared in.harnessMutable. - Clarifies that composable root files such as
AGENTS.mdshould be used only
when composition, references, profiles, or overlays are needed; otherwise
copy the root file directly. - Updates website and LLM prompt guidance to recommend installing the public
Harness config skill and following the migration checklist before editing.
Harness config 1.0.0-alpha.4
1.0.0-alpha.4 completes the v1 ignore precedence model, tightens activation
explainability, and updates adoption guidance before the v1 proposal is treated
as final.
Ignore And Projection Semantics
- Defines
.harnessIgnoreprecedence by logical location and logical directory
depth, with last matching participating rule winning. - Lets deeper source-local and profile-local ignore files refine or re-include
paths ignored by shallower rules. - Evaluates profile-local ignore files at their logical overlay location and
target-derived override ignore files at their logical source/target
locations. - Keeps target-output
.harnessIgnorefiles as the final boundary that cannot
be undone by repo, source, or profile rules. - Keeps Harness declaration files out of projection, including
.harnessIgnore,.harnessProfile, and.harnessProfileRoot.
Tooling And Safety
- Expands
harnessc explain --jsonso ignored, re-included, profile-selected,
and target-output-filtered paths report the winning rule consistently. - Adds explicit target symlink policy: target symlinks conflict by default and
are replaced only when the manifest or CLI explicitly selects replacement. - Adds coverage for resource-root ignores, profile selection across resource
groups, target-derived override ignores, target-output final boundaries,
synthetic declaration ignores, and idempotent activation.
Adoption Guidance
- Updates the public Harness config skill and references with the v1 adoption
model: resources-first, meaningful resource groups, first-class
.harness/local/, scoped nested ignores, profiles as modes, and tracked
bootstrap for gitignored generated surfaces. - Clarifies that
AGENTS.md,CLAUDE.md, and similar root files can stay as
normal tracked files unless[[dir]], composition, profiles, or local
overlays make generation useful. - Documents
npx skills/ skills.sh workflows,skills-lock.jsonprovenance,
and promotion of reviewed skills into.harnesssource. - During the v1 alpha, release automation continues publishing the current
alpha on the npmlatestdist-tag so defaultnpx harnesscresolves to the
current proposal.
Harness config 1.0.0-alpha.3
1.0.0-alpha.3 updates the v1 proposal to the ordered source-root model and
adds projection introspection for reviewable customization workflows.
Ordered Source Roots
- Replaces legacy single
[resources]and[dir]manifest tables with
ordered[[resources]]and[[dir]]source roots. - Treats missing configured source roots as empty layers, with later roots
overriding earlier exact-path outputs and composable leaves merging parts. - Rejects source/target overlaps and incompatible file/folder projections
before activation writes.
Tooling And Docs
- Adds
harnessc explain <path>for read-only projection introspection. - Updates
harnessc init, docs, package READMEs, skill guidance, and website
specification content to use array-root examples. - Documents optional single-developer customization layers such as
.harness/local/resourcesand.harness/local/diras recommendations, not
standard requirements.
Harness config 1.0.0-alpha.2
1.0.0-alpha.2 establishes the repository release lane for the alpha package
set.
Release Automation
- Adds GitHub Actions CI for pull requests and protected branch checks.
- Adds tag-driven npm publishing through GitHub Actions OIDC trusted
publishing. - Adds release tag verification so all publishable package versions and
internal package dependency pins must match the pushedvX.Y.Ztag. - Adds release-note extraction so each GitHub release uses the matching
version section from this file.
Project Governance
- Documents the
devtomainrelease flow, solo-maintainer review model,
Codex review evidence pattern, and npm trusted publisher settings. - Adds pull request, issue, CODEOWNERS, Dependabot, and conduct files for
open-source project hygiene.