Skip to content

Releases: reachjalil/harness-config

Harness config 1.0.0-alpha.10

Choose a tag to compare

@github-actions github-actions released this 06 Jun 05:55
9931de0

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 .harnessProfileRoot files that are outside
    ./.harness, configured resources roots, and configured dir roots.
  • Declares this repository's examples/ tree as ignored for root activation,
    letting direct harnessc activate --yes validate the root projection without
    the dogfood fixture wrapper.

Harness config 1.0.0-alpha.9

Choose a tag to compare

@github-actions github-actions released this 05 Jun 17:10
58a932f

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 .harnessProfileIsolation as 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 .harnessProfileIsolation from 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

Choose a tag to compare

@github-actions github-actions released this 05 Jun 01:52
0ebe5b5

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]].parent so 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]].parent to use
    gitignore-style path patterns, including *, ?, **, character classes,
    and backslash escapes.
  • Keeps [[targets]].path static 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, not parent, so
    multiple worktrees using the same target path share the same logical override
    namespace while remaining physically isolated.
  • Keeps target-output .harnessIgnore and .harnessProfile controls isolated
    per concrete expanded target.
  • Updates harnessc activate, validate, and explain to 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

Choose a tag to compare

@github-actions github-actions released this 01 Jun 17:16
4334c9d

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 orphan activation 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-orphans for
    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 .harnessIgnore boundaries 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

Choose a tag to compare

@github-actions github-actions released this 29 May 20:01
8cd4f51

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_field so 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 .harnessMutable is source-owned in v1 and does not read
    target-output .harnessMutable files.
  • Requires .harnessProfile selectors 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
    stale plan command 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

Choose a tag to compare

@github-actions github-actions released this 28 May 17:39
31e0f9e

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 .harnessMutable as the v1 declaration file for seed-once,
    runtime-owned files.
  • Keeps .harnessIgnore focused on projection exclusion and target-output
    filtering; legacy [mutable] sections in .harnessIgnore now produce a
    validation diagnostic.
  • Supports root, source-local, profile-local, and target-derived override
    .harnessMutable rules with gitignore-style last-match-wins behavior.
  • Keeps target-output .harnessMutable files out of v1 so target-local
    filtering remains a .harnessIgnore responsibility.

Tooling And Tests

  • Updates harnessc init, validation, planning, activation, and explanation
    flows to read .harnessMutable separately from .harnessIgnore.
  • Preserves mutable files as create-once target state unless
    --force-mutable is explicit.
  • Adds regression coverage for .harnessMutable parsing, legacy
    .harnessIgnore diagnostics, 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-contract with 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 .harness as seed files
    before they are declared in .harnessMutable.
  • Clarifies that composable root files such as AGENTS.md should 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

Choose a tag to compare

@github-actions github-actions released this 28 May 14:01
6cb690e

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 .harnessIgnore precedence 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 .harnessIgnore files 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 --json so 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.json provenance,
    and promotion of reviewed skills into .harness source.
  • During the v1 alpha, release automation continues publishing the current
    alpha on the npm latest dist-tag so default npx harnessc resolves to the
    current proposal.

Harness config 1.0.0-alpha.3

Choose a tag to compare

@github-actions github-actions released this 27 May 18:35
0cdc22a

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/resources and .harness/local/dir as recommendations, not
    standard requirements.

Harness config 1.0.0-alpha.2

Choose a tag to compare

@github-actions github-actions released this 27 May 14:44
4c8365b

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 pushed vX.Y.Z tag.
  • Adds release-note extraction so each GitHub release uses the matching
    version section from this file.

Project Governance

  • Documents the dev to main release 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.