harness-everything 0.31.1 → 0.31.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +11 -0
- package/ci/mechanism-2as-workflow-disposition-help.test.js +41 -0
- package/hooks/scripts/workflow-disposition.js +4 -0
- package/opencode-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
- package/plugins/harness-everything/hooks/scripts/workflow-disposition.js +4 -0
- package/plugins/harness-everything/plugin.json +1 -1
- package/sbom.cdx.json +12 -12
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"name": "harness-everything",
|
|
11
11
|
"source": "./",
|
|
12
12
|
"description": "Harness OS: an orchestrated agent operating system — tier routing, circuit breaker guardrails, verification gates, WAL session memory, and self-evolving workspace rules.",
|
|
13
|
-
"version": "0.31.
|
|
13
|
+
"version": "0.31.2",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Miya Daniel"
|
|
16
16
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harness-everything",
|
|
3
3
|
"description": "Harness OS: an orchestrated agent operating system — tier routing, circuit breaker guardrails, verification gates, WAL session memory, and self-evolving workspace rules.",
|
|
4
|
-
"version": "0.31.
|
|
4
|
+
"version": "0.31.2",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Miya Daniel"
|
|
7
7
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [0.31.2](https://github.com/dyphn1/Harness-everything/compare/v0.31.1...v0.31.2) (2026-10-15)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **cli:** support successful workflow disposition help ([2bf55f9](https://github.com/dyphn1/Harness-everything/commit/2bf55f92d9a6ffab5e41152dfb38a5ef01659f05)), closes [#310](https://github.com/dyphn1/Harness-everything/issues/310) [#310](https://github.com/dyphn1/Harness-everything/issues/310)
|
|
10
|
+
|
|
5
11
|
## [0.31.1](https://github.com/dyphn1/Harness-everything/compare/v0.31.0...v0.31.1) (2026-10-13)
|
|
6
12
|
|
|
7
13
|
### Bug Fixes
|
|
@@ -31,8 +37,13 @@ All notable changes to this project are documented in this file.
|
|
|
31
37
|
* **workflow:** reject present non-array required/optional binding declarations before accepting a requirement plan, preserving workflow state on invalid input (#303 review).
|
|
32
38
|
* **test:** isolate verification fixtures from an inherited project-check recursion guard while preserving explicit guard coverage.
|
|
33
39
|
|
|
40
|
+
### Security
|
|
41
|
+
|
|
42
|
+
* **deps:** update the locked `fast-uri` transitive dependency to patched version 3.1.8 (#309).
|
|
43
|
+
|
|
34
44
|
### Bug Fixes
|
|
35
45
|
|
|
46
|
+
* **workflow:** make `workflow-disposition --help` and `-h` print usage successfully (#310).
|
|
36
47
|
* **codex:** keep compatibility hooks and session labels in sync
|
|
37
48
|
* **verify:** recognize a validated in-root host `cd <workspace> && <check>` prelude (Claude Code Windows Bash) as verification evidence for exactly one plain check; chaining, redirection, substitution, and out-of-root targets still never count, and verification evidence now requires a confirmed `PostToolUse` or zero exit (#306). Only CDPATH-stable `cd` targets (absolute or explicit `./`/`../`) are accepted, and a declared `.harness/verify.json` check counts only when run in its declared `cwd` (#307 review).
|
|
38
49
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const assert = require('assert');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
const { spawnSync } = require('child_process');
|
|
8
|
+
|
|
9
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
10
|
+
const scripts = [
|
|
11
|
+
path.join(ROOT, 'hooks/scripts/workflow-disposition.js'),
|
|
12
|
+
path.join(ROOT, 'plugins/harness-everything/hooks/scripts/workflow-disposition.js'),
|
|
13
|
+
];
|
|
14
|
+
const stateHome = fs.mkdtempSync(path.join(os.tmpdir(), 'harness-workflow-help-'));
|
|
15
|
+
|
|
16
|
+
function run(script, args) {
|
|
17
|
+
return spawnSync(process.execPath, [script, ...args], {
|
|
18
|
+
cwd: ROOT,
|
|
19
|
+
encoding: 'utf8',
|
|
20
|
+
env: { ...process.env, HARNESS_STATE_HOME: stateHome },
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
for (const script of scripts) {
|
|
25
|
+
for (const flag of ['--help', '-h']) {
|
|
26
|
+
const result = run(script, [flag]);
|
|
27
|
+
assert.strictEqual(result.status, 0, `${path.relative(ROOT, script)} ${flag} exits successfully: ${result.stderr}`);
|
|
28
|
+
assert.match(result.stdout, /^Usage: workflow-disposition\.js </);
|
|
29
|
+
assert.strictEqual(result.stderr, '', 'help is written to stdout without an error');
|
|
30
|
+
assert.deepStrictEqual(fs.readdirSync(stateHome), [], 'help does not read or create session state');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
for (const args of [[], ['unknown']]) {
|
|
34
|
+
const result = run(script, args);
|
|
35
|
+
assert.strictEqual(result.status, 2, `${path.relative(ROOT, script)} invalid invocation retains exit 2`);
|
|
36
|
+
assert.match(result.stderr, /Usage: workflow-disposition\.js/);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
fs.rmSync(stateHome, { recursive: true, force: true });
|
|
41
|
+
console.log('PASS workflow-disposition help is successful, read-only, and packaged');
|
|
@@ -149,6 +149,10 @@ function activatePlan(workflow, plan) {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
function main() {
|
|
152
|
+
if (process.argv[2] === '--help' || process.argv[2] === '-h') {
|
|
153
|
+
process.stdout.write(usage() + '\n');
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
152
156
|
const args = parseArgs(process.argv.slice(2));
|
|
153
157
|
if (!WORKFLOW_CONTROLLER_COMMANDS.has(args.command)) throw new Error(usage());
|
|
154
158
|
const sessionId = args.sessionId || readCurrentSession(getWorkspaceRoot());
|
package/package.json
CHANGED
|
@@ -149,6 +149,10 @@ function activatePlan(workflow, plan) {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
function main() {
|
|
152
|
+
if (process.argv[2] === '--help' || process.argv[2] === '-h') {
|
|
153
|
+
process.stdout.write(usage() + '\n');
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
152
156
|
const args = parseArgs(process.argv.slice(2));
|
|
153
157
|
if (!WORKFLOW_CONTROLLER_COMMANDS.has(args.command)) throw new Error(usage());
|
|
154
158
|
const sessionId = args.sessionId || readCurrentSession(getWorkspaceRoot());
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "harness-everything",
|
|
4
|
-
"version": "0.31.
|
|
4
|
+
"version": "0.31.2",
|
|
5
5
|
"description": "Invariant-first engineering harness for routing, verification, and failure recovery while preserving agent autonomy.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Miya Daniel",
|
package/sbom.cdx.json
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
"$schema": "https://cyclonedx.org/schema/bom-1.7.schema.json",
|
|
3
3
|
"bomFormat": "CycloneDX",
|
|
4
4
|
"specVersion": "1.7",
|
|
5
|
-
"serialNumber": "urn:uuid:
|
|
5
|
+
"serialNumber": "urn:uuid:9d3ce484-1be2-5a01-aaf1-830f69f479f8",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-10-
|
|
8
|
+
"timestamp": "2026-10-15T15:15:14.070Z",
|
|
9
9
|
"tools": [
|
|
10
10
|
{
|
|
11
11
|
"vendor": "Harness Everything",
|
|
12
12
|
"name": "generate-sbom.js",
|
|
13
|
-
"version": "0.31.
|
|
13
|
+
"version": "0.31.2"
|
|
14
14
|
}
|
|
15
15
|
],
|
|
16
16
|
"component": {
|
|
17
17
|
"type": "application",
|
|
18
|
-
"bom-ref": "pkg:npm/harness-everything@0.31.
|
|
18
|
+
"bom-ref": "pkg:npm/harness-everything@0.31.2",
|
|
19
19
|
"name": "harness-everything",
|
|
20
|
-
"version": "0.31.
|
|
21
|
-
"purl": "pkg:npm/harness-everything@0.31.
|
|
20
|
+
"version": "0.31.2",
|
|
21
|
+
"purl": "pkg:npm/harness-everything@0.31.2"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"components": [
|
|
@@ -920,15 +920,15 @@
|
|
|
920
920
|
},
|
|
921
921
|
{
|
|
922
922
|
"type": "library",
|
|
923
|
-
"bom-ref": "pkg:npm/fast-uri@3.1.
|
|
923
|
+
"bom-ref": "pkg:npm/fast-uri@3.1.8",
|
|
924
924
|
"name": "fast-uri",
|
|
925
|
-
"version": "3.1.
|
|
925
|
+
"version": "3.1.8",
|
|
926
926
|
"scope": "excluded",
|
|
927
|
-
"purl": "pkg:npm/fast-uri@3.1.
|
|
927
|
+
"purl": "pkg:npm/fast-uri@3.1.8",
|
|
928
928
|
"hashes": [
|
|
929
929
|
{
|
|
930
930
|
"alg": "SHA-512",
|
|
931
|
-
"content": "
|
|
931
|
+
"content": "GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg=="
|
|
932
932
|
}
|
|
933
933
|
]
|
|
934
934
|
},
|
|
@@ -1896,7 +1896,7 @@
|
|
|
1896
1896
|
"ref": "pkg:npm/ajv@8.20.0",
|
|
1897
1897
|
"dependsOn": [
|
|
1898
1898
|
"pkg:npm/fast-deep-equal@3.1.3",
|
|
1899
|
-
"pkg:npm/fast-uri@3.1.
|
|
1899
|
+
"pkg:npm/fast-uri@3.1.8",
|
|
1900
1900
|
"pkg:npm/json-schema-traverse@1.0.0",
|
|
1901
1901
|
"pkg:npm/require-from-string@2.0.2"
|
|
1902
1902
|
]
|
|
@@ -1999,7 +1999,7 @@
|
|
|
1999
1999
|
]
|
|
2000
2000
|
},
|
|
2001
2001
|
{
|
|
2002
|
-
"ref": "pkg:npm/harness-everything@0.31.
|
|
2002
|
+
"ref": "pkg:npm/harness-everything@0.31.2",
|
|
2003
2003
|
"dependsOn": [
|
|
2004
2004
|
"pkg:npm/%40commitlint/cli@19.8.1",
|
|
2005
2005
|
"pkg:npm/%40commitlint/config-conventional@19.8.1",
|