Skip to content

Releases: SebasBarrera/harness-engineering

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 16:30

Changes since v0.9.0

Features

  • memory: record why a record did not enter a context 26b508b
  • cli: add memory add, list, approve and invalidate b07774b
  • agents: pass the selected memory to the agent provider 18b7aea (#6)
  • retrospective: record the decision on a recommendation 970fa8e
  • agents: record the usage a command provider reports 4d371bd
  • cli: show the context manifest recorded for a run 1756c95

Fixes

  • memory: use the public contract field names in the context manifest 7477a05
  • benchmark: isolate the scenario fixture from the user's Git configuration 23639ff
  • evaluation: count test modules by name when reporting deliveries without tests a8af6c2

Documentation

  • evaluation: summarize the controlled evaluation of v0.9.0 5645b58
  • describe memory, recommendation decisions and reported usage 01d1c7f
  • evaluation: describe every evaluation block and its result files cde0a86

Tests

  • evaluation: add the evaluation scenarios, tasks and hidden tests 816e8e1
  • evaluation: add the agent adapter, orchestrator and measurement ee7e17c
  • evaluation: add fault-injection probes and the post-hoc review beaa14a
  • evaluation: add the report and the results of the v0.9.0 evaluation 7a8078c
  • evaluation: add a Codex CLI backend to the controlled evaluation e3e2c2a
  • evaluation: add minimal and casual prompt levels 3f62818
  • evaluation: report prompt levels and the Codex block 4d8c7df
  • evaluation: add Codex, minimal-prompt and casual-prompt results 9383a01
  • evaluation: add a longitudinal iterative-development experiment 238657d
  • evaluation: report import failures to the longitudinal oracle user a3cc17a
  • evaluation: summarize the longitudinal sessions fece7b4
  • evaluation: add the longitudinal experiment results e08081a
  • stop the repaired-baseline test from reusing stale bytecode 895b892
  • demo: add the memory, recommendation and usage flow daf1b49
  • evaluation: publish phase durations and retrospective recommendations be0db22
  • configuration: cover the locked retrospective policy 1ea0c6b

Style

  • benchmark: drop the extra blank line after the import block 0b08c94

Maintenance

  • security: allow the fictitious password of an evaluation test 5d9033c
  • release: prepare 1.0.0 feaf6e1

Issues closed

#6

Verification

sha256sum -c SHA256SUMS
gh attestation verify governed_agent_harness-1.0.0-py3-none-any.whl --repo SebasBarrera/harness-engineering

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 15:15

Changes since v0.8.1

Fixes

  • validators: block a mandatory validator whose Python module is missing c904abe (#1)
  • gates: consolidate only the latest attempt of each validator 6134e30 (#2)
  • runtime: bound process output while reading it a43f20d (#9)
  • capabilities: accept workspace paths reached through a symlinked ancestor 69e0437 (#19)
  • application: reject task files with missing fields or unknown keys 5947bb2 (#29)
  • cli: print camelCase keys from gate decide db5e6de (#30)
  • evidence: write artifacts on platforms without os.fchmod 442406e
  • runtime: resolve .cmd executables such as npm on Windows b6e3106

Documentation

  • monitoring: Scorecard runs on develop 46070cc
  • ship the full Apache-2.0 license text 9d3eb37
  • readme: add SonarQube Cloud badges 3e89163
  • brownfield: the itsdangerous case closes with a plain APPROVE f6827f9
  • describe the 0.9.0 behavior and its difference with the thesis cut 6600713

Tests

  • update the demonstration flows to the latest-attempt gate 74054b3

Build and packaging

  • deps-dev: update mypy requirement from <2,>=1.11 to >=1.11,<3 e745078

CI/CD

  • scorecard: run on the default branch b0d382e
  • windows: run the documented flows and drop the informational label a024f7f (#31)

Maintenance

  • release: prepare 0.9.0 e1ae4b6

Issues closed

#1, #2, #9, #19, #29, #30, #31

Verification

sha256sum -c SHA256SUMS
gh attestation verify governed_agent_harness-0.9.0-py3-none-any.whl --repo SebasBarrera/harness-engineering

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 30 Sep 03:55

Changes since v0.8.0

Features

  • benchmark: add a self-contained HTML benchmark report ccf2b82
  • telemetry: add a self-contained HTML process-metrics report f9afa03

Security

  • storage: document the Bandit B608 false positive in list_dicts 3414d66
  • docker: harden the container image 02f23c0 (#16)

Refactoring (no behavior change)

  • declare explicit re-exports in package modules 96ef870 (#22)
  • apply reviewed Ruff fixes a21cbd5
  • cli: resolve the --path default at invocation time aae805f (#24)
  • agents: type the provider context as a read-only protocol d24bfb3
  • orchestration: make the run engine pass mypy --strict 075a454
  • add the missing annotations reported by mypy --strict df4a0e0
  • runtime: drop the type: ignore comments in the workspace diff 2e97ded (#25)

Documentation

  • cli: add help texts to every command and option faa6b29 (#14)
  • generate the CLI reference from the command tree 6e15d23
  • generate the task-file reference from the JSON Schema 3ca5e1f
  • document every exit code, including 3 and 5 9b04099 (#11)
  • add the configuration and API references a4e71da
  • add the greenfield guide with outputs from a real run fa49999
  • add the brownfield guide and the itsdangerous reproduction kit 1ee4d88
  • add the external agents guide 1db75ff
  • add the CI integration guide 802e390
  • document the harness telemetry metrics fa7f9b3
  • document where each repository health signal is observed 187ad43
  • document the benchmarks and their limits 8dd012e
  • record how the provenance of the thesis cut is established a5aeea2
  • adr: record the repository topology decision edd8375
  • add the thesis context page eae6781
  • diagrams: show the local API and dashboard as implemented 026ba0e
  • add the MkDocs Material documentation site bfb4452
  • security: add the vulnerability reporting policy 9334346
  • adopt the Contributor Covenant 2.1 code of conduct 54da8a6
  • expand the contributing guide 9e98bbb
  • security: nest the security model under the policy heading e0ee522
  • add support routes and code owners 3786bcf
  • add issue forms and the pull-request template 299a388
  • add CITATION.cff d4a75ce
  • add CLAUDE.md with the repository conventions 57fbac4
  • rewrite the README 800bbe0
  • add the Spanish README 8dfeac3
  • list Windows as unsupported and all lint jobs as blocking 576099c

Tests

  • isolate fixture repositories from the developer's Git config bce4b41 (#20)
  • evidence: build the fake GitHub token at runtime 7c291ad (#17)
  • add a runner that reproduces the thesis demonstration flows dd8168c
  • make the quickstart flow run the README commands verbatim 99280a3

Build and packaging

  • ship py.typed marker with the package ed059da (#10)
  • use python -m build instead of setup.py sdist bdist_wheel c0aa3f9 (#26)
  • add PyYAML and jsonschema type stubs to the dev extra 54edfd0
  • generate release notes from Conventional Commits 65d00cd
  • publish the real project metadata a6855f7

CI/CD

  • add security workflow 0cd9a11
  • security: upgrade pip in the dependency-audit environment 339c494
  • add build workflow 0cff9b8
  • build: count runtime dependencies without pip and the harness 9ed1e45
  • replace the original test workflow with a hardened one b5081d6 (#15)
  • add lint workflow 9d82994
  • group step-summary writes in the test job (shellcheck SC2129) 55c3202
  • add CodeQL analysis for Python, JavaScript and Actions 3ef6bc4
  • add dependency review for pull requests ebf00f5
  • add OpenSSF Scorecard analysis e1789ea
  • configure Dependabot for pip, GitHub Actions and Docker 07fdf75
  • add pull-request hygiene checks ceeaf24
  • add stale workflow c2521e7
  • add weekly link checking with lychee 80b52b8
  • add SonarQube Cloud analysis with coverage 903348e
  • add container build, scan and GHCR publication f94d3d5
  • add the release workflow with SBOM and build provenance 744c765
  • add the benchmarks workflow with a non-blocking trend history 9658538
  • lint: accept python/* YAML tags without constructing them 6574229
  • build and deploy the documentation site with its reports ec65b17
  • add the docs-smoke workflow fe9b1f0
  • make Ruff, mypy, markdownlint and hadolint blocking 141ed8f
  • move the Windows run to its own informational workflow bca3ba5
  • benchmarks: install pytest for the scenario benchmark d87784c

Style

  • apply Ruff safe fixes bf3dfb9
  • apply ruff format to src, tests and scripts 966a221
  • make every Markdown file pass markdownlint 2a13fa9

Maintenance

  • lint: treat typer.Option and typer.Argument as immutable calls 8873db1 (#23)
  • ignore the maintainer's local workspace and generated reports a5cc040
  • ignore the formatting commit in git blame 2aec842
  • remove the stale static web prototype ebebac2 (#12)
  • stop versioning generated reports and stale manifests 62f6065 (#13)
  • add pre-commit hooks 3c2a0f7
  • tidy comments in the Sonar configuration and the denylist 4613775
  • release: prepare 0.8.1 ba4fe33

Issues closed

#10, #11, #12, #13, #14, #15, #16, #17, #20, #22, #23, #24, #25, #26

Verification

sha256sum -c SHA256SUMS
gh attestation verify governed_agent_harness-0.8.1-py3-none-any.whl --repo SebasBarrera/harness-engineering

v0.8.0 — thesis artifact (byte-faithful cut)

Choose a tag to compare

@SebasBarrera SebasBarrera released this 30 Sep 00:54

Governed Agent Harness 0.8.0: the cut evaluated in the thesis.

This release is the byte-faithful import of the research artifact designed, implemented and evaluated in the master's thesis Diseño y evaluación de una arquitectura de harness engineering para el desarrollo de software asistido por inteligencia artificial, con supervisión humana y retrospectiva basada en evidencia (Juan Sebastián Barrera Pulido, Maestría en Informática, Escuela Colombiana de Ingeniería Julio Garavito). It reproduces the evaluated cut exactly. It is not a new version of the software.

Warning

The wheel and sdist attached here are the original binaries of the thesis cut. This repository's CI did not build them, so they carry no build-provenance attestation. Attested, SBOM-backed artifacts start with v0.8.1. Verify these files with SHA256SUMS.

Provenance

Item Value
Cut governed-agent-harness-0_8_0-current.zip
ZIP SHA-256 recorded in the thesis 7e1401ad9f324a9e9fe488b5eb4d9c842f3f8ec52ec7340e5913813440b4d0cd
Files in the cut 236 (macOS .DS_Store metadata excluded)
Versioned in Git 232, byte-identical to the cut (scripts/verify_provenance.py full → matched: 232/232, mismatched: 0, missing: 0)
Attached instead of versioned dist/governed_agent_harness-0.8.0-py3-none-any.whl, dist/governed_agent_harness-0.8.0.tar.gz, .coverage.release (published as coverage.release.sqlite). dist/.gitignore is a 1-byte file and is not versioned.
Reference manifest provenance/v0.8.0.sha256 (also attached as provenance-v0.8.0.sha256)

The ZIP archive itself was no longer available when the repository was published, so its SHA-256 could not be recomputed. Fidelity is anchored to the per-file manifest of the extracted cut. Every import step was checked against that manifest in CI.

The tag also contains repository infrastructure added around the cut. None of it modifies a file of the cut: .gitattributes, .editorconfig, provenance/, scripts/verify_provenance.py, scripts/check_denylist.py, .github/privacy-denylist.txt and .github/workflows/import-ci.yml. The original .github/workflows/ci.yml is kept byte-identical and is disabled through the Actions API (#15).

MANIFEST.sha256 is attached as shipped in the cut. It is stale: 51 of its 88 entries do not match the files (#13).

Snapshot evaluated in the thesis

The thesis author reported these figures for this cut. The last column shows what was re-verified while publishing this repository. These figures describe the frozen cut, not the current state of develop; the CI badges show that.

Fact Thesis value Re-verified during publication
Python modules in src/governed_harness 74 modules, 6,746 lines 74 source files (mypy count)
JSON Schema contracts 25 25 files in schemas/v1
CLI commands 21 21 (command tree introspection)
API routes 9: seven queries, one decision POST, dashboard at / 9 routes in api/app.py
Tests 86: core 79, E2E Python 4, E2E Node 1, performance 2 86 pass; core families 79
Full suite in one process exit 0 in three runs, 19–21 s exit 0 in three runs, 16–20 s (macOS, Python 3.12.11); green in CI on CPython 3.12/3.13/3.14
Core coverage lines 77.48 %, branches 59.29 %, 3,268 statements not recomputed for this release
Ruff 140 findings in src, 11 in tests (0.16.5); 60 F401, 40 B008 identical counts with ruff 0.16.7
Mypy strict package mode blocked by the missing py.typed; 54 errors in 15 files on sources, 34 attr-defined 55 errors in 15 files with mypy 1.20.2
Wheel in a clean environment 18 dependencies; harness runs 18 dependencies (25 with [api]); harness --help exits 0
Governed-process overhead 10.09 % and 11.23 % in two runs, about 1.2 ms microbenchmarks are published from v0.8.1 onwards
Exit codes 0, 1, 2, 3, 4, 5, 6, 130 3 (not found) and 5 (stale approval) reproduced with the original wheel
Brownfield case pallets/itsdangerous 2.2.0, tarball SHA-256 7b0c6d41…37f2b, baseline broken by missing freezegun, 298 tests after installing it, ChangeSet digest invariant reproduced: GitHub tag archive SHA-256 matches; 298 passed; digest sha256:e775aa2d…23d46 unchanged; APPROVE exit 5, APPROVE_EXCEPTION exit 0; 46 events, chain valid

Known limitations and defects

The harness is a research beta. It is not a sandbox: an authorized process keeps the file-system, network, CPU and memory permissions of the OS user. The local web dashboard has no authentication and must stay on loopback (#18).

Behavioral defects are kept unfixed so that this cut stays identical to what the thesis measured. They are tracked in the milestone backlog — thesis-impact:

  • #1: a mandatory validator whose Python module is missing yields FAILED/HIGH instead of BLOCKED.
  • #2: the gate stays FAILED after a passing retry when the ChangeSet digest does not change (needs-decision).
  • #3: workflow YAML phase settings are persisted and digested but not enforced.
  • #4: capabilities are resolved per run and actor, not per phase.
  • #5: allowNetwork, repositoryContentTrusted and destructiveActionsDefault are declared but not enforced.
  • #6: memory store: no production path creates records, exclusions go unrecorded, supersession depends on order.
  • #7: PREEXISTING_ERROR and INTRODUCED_ERROR are never assigned.
  • #8: PLANNING declares approval.request, but no checkpoint is wired.
  • #9: the process runner truncates output only after buffering all of it.
  • #19: contained_path rejects absolute paths under a symlinked ancestor (macOS /var).

Quality and infrastructure items are addressed in v0.8.1: #10–#17, #20, #22–#26.

Assets

File Description
governed_agent_harness-0.8.0-py3-none-any.whl Original wheel of the cut
governed_agent_harness-0.8.0.tar.gz Original sdist of the cut
coverage.release.sqlite Original .coverage.release coverage database of the cut
MANIFEST.sha256 Original integrity manifest, stale (#13)
provenance-v0.8.0.sha256 Per-file SHA-256 manifest of the extracted cut, the provenance reference
SHA256SUMS SHA-256 of all of the above

To verify the binaries:

sha256sum -c SHA256SUMS

To verify a checkout of this tag:

git checkout v0.8.0
python3 scripts/verify_provenance.py full