Skip to content

v0.27.8

Choose a tag to compare

@rsaglobaltech rsaglobaltech released this 28 Oct 22:20
· 13 commits to main since this release

0.27.7 as it was meant to ship. Its publish stopped on four new tests whose repositories had no git identity on the CI runners; the Docker image 0.27.7 was published, the npm package was not.

Fixed

  • The tests of REQ-264, REQ-267, REQ-269 and REQ-271 give their repositories a git identity, as the other harness tests do.
  • The REQ-266 test compares real paths as Windows names them (RUNNER~1 and runneradmin are one folder), and the coverage run in CI has a larger heap: on macOS it ran out once every test had passed.

[0.27.7] � 2026-10-28

After the sixth truck-flote run: the harness agent can write, a Docker check works in a worktree, every gate step is seen while it runs, and a reviewed draft no longer turns the branch red.

Fixed

  • The client's brief at the root goes below the front matter (REQ-259): with brief.md pushed first and forja's template in docs/brief.md, draft --agent wrote the front matter over the "Paste the client's brief here" placeholder and the person pasted the text by hand. draft now puts the root file's text there first, keeps the root file, and says so; a body the person wrote is left alone.
  • BRIEF-SETUP.md is removed once the front matter is complete (REQ-260): it stayed untracked, and the harness refuses a tree that is not clean.
  • D6 reads a value made of listed parts (REQ-261): "1234-BCD � Ejes" and "Luc�a Mart�n � E000001234567890" were unlisted although every part was; a value joined with �, � or � is listed when each part is.
  • An answer in questions.md no longer leaves its requirement blocked unnoticed (REQ-262, REQ-263): the draft said Ready to review and status kept four answered requirements "Waiting for an answer". The checklist now reports each answered question whose requirement is still Needs Clarification, with the fix and --agent, and status lists it under "Answered � update the spec".
  • The sbom check writes the bill of materials of a Quarkus application (REQ-276): its pom skips deploy, and CycloneDX then wrote nothing ("Skipping CycloneDX goal, because module skips deploy"), so the dependency scan had nothing to read. It now runs with -Dcyclonedx.skipNotDeployed=false.
  • Every gate step is seen while it runs (REQ-273..REQ-275): harness run printed attempt 1/3 and nothing more for 19 minutes, and /live stayed empty, while a semgrep check hung. The setup command, validate --strict, the end-to-end test, the architecture check, the test command and each quality check are now a gate-start event and a gate event with its ms, written as each happens � the quality checks used to be reported only once every check of the stage had run � and a started � and passed � in 3m 05s line of the run, without --verbose and whatever the agent command is. /live names the step that is running, with its image and how long it has run, and the studio's Build moves to Revisa la calidad when a quality check starts.
  • The harness gives Claude Code permission to write (REQ-264): claude -p < {prompt_file}, the command the docs gave, wrote nothing in print mode and spent three attempts on "the agent produced no files". The harness now adds --permission-mode acceptEdits right after claude, as the drafting commands do, and says so; an attempt that writes nothing ends the requirement instead of running the same command again, pointing at docs/agent-setup.md.
  • A ./ inside quotes stays as written on Windows (REQ-265): an agent's allowance 'Bash(./mvnw:*)' reached Claude Code as 'Bash(.\mvnw:*)'.
  • Docker checks work in the harness's worktrees (REQ-266): a worktree's .git names a host folder the container does not have, so semgrep failed to list files and hung until its 15-minute timeout. The repository's git folder is now mounted read-only, with GIT_DIR and GIT_WORK_TREE pointing at the worktree.
  • A check that could not run is reported to you, not to the agent (REQ-267): a gate check that is to write SARIF and wrote none � it timed out or failed first � stops the requirement with its output, instead of telling the agent to "fix what the check found" for two more attempts.
  • The reviewer and the adversary read a draft's requirement (REQ-268): their prompts said spec.md had no section for a requirement of a reviewed, unarchived draft; they are now built from the project as the harness judges it, like the implementer's.
  • harness report counts each requirement once (REQ-269): a failed run and a passing one of the same requirement read "1 of 2 passed". The latest outcome counts, every run's time stays in the cost, and a run stopped by hand is in the ledger, its requirement reported as stopped.
  • The studio's report judges the project as check does (REQ-270): after --chain delivered a draft's requirement, the report said "No pasa" for a feature the written matrix has no row for until the draft is archived.
  • The agent is kept once (REQ-271): specgate config set agent "<command>" writes it to harness.config.yaml, with the permission above; status names the step while it is missing, and a harness run --agent � ends with the command that keeps it.