Tags · ruvnet/metaharness · GitHub
Skip to content

Tags: ruvnet/metaharness

Tags

darwin-v0.12.0

Toggle darwin-v0.12.0's commit message
feat(darwin): independent contrastive confirmation with public pilot …

…evidence

Add frozen paired holdout validation, exact statistical gates, total deadline enforcement, conservative budgets and bound receipts. Include 99 confirmation tests and a pinned CLINC150 experiment. The live candidate tied baseline at 38/40 and cost more; both superiority gates rejected.

830 tests passed, 19 existing skips; package build, fresh consumer acceptance and production audit passed. Validated ruOS source tree matches local commit 1eb56a8d55f2ff430a4095cc1f10a3f266a04f49 exactly. Rust CI blocker tracked in #408.

darwin-v0.11.0

Toggle darwin-v0.11.0's commit message
feat(darwin): bounded contrastive development API v0.11.0

Includes source, built distribution, scoped memory, live editor adapter, adversarial tests, synthetic benchmark, and release evidence.

Validated on ruOS. Published tree exactly matches local reviewed tree 70a8e0f (local source commit 7f9455f, evidence commit d92e932).

v0.4.17

Toggle v0.4.17's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): metaharness 0.4.17 + patch releases for changed packa…

…ges (#356)

Ships the merged dream-cycle fixes: writeAtomic path traversal and host
adapter injection (#300), .env guard (#327), MCP detection (#298),
grade masking (#337), toolSafety (#304), reward-hack tool content (#293),
reviewer isolation (#352) and the flywheel/darwin correctness fixes.

v0.4.5

Toggle v0.4.5's commit message
metaharness 0.4.5 — Meta-Proxy v0.7.4 pin + lifecycle contract (#175)…

…, darwin ^0.9.1

v0.4.4

Toggle v0.4.4's commit message
metaharness 0.4.4 — pin meta-proxy 0.7.2

adr-240-agntcy-outshift-integration

Toggle adr-240-agntcy-outshift-integration's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
ADR-240: AGNTCY identity, OASF export, observability, CASA compiler (#…

…155)

* docs(adr): ADR-237 — AGNTCY identity, OASF export, semantic observability

Adopts Cisco Outshift's AGNTCY/Internet-of-Cognition ecosystem as
complementary build-time infrastructure for generated harnesses:
signed AGNTCY identity in the harness manifest (layered on the
existing ADR-011 witness manifest), OASF capability-record export to
the AGNTCY Directory (a projection of existing score/genome/mcp-scan
output, not new evaluation logic), AGNTCY OTel semantic-convention
mapping for existing telemetry, and the CASA intent-to-authority-
envelope compiler (translation may use an LLM; enforcement, owned by
companion ruflo ADR-324, never does).

Companion to ruflo ADR-324, which owns the runtime half of this
integration (SLIM transport, CASA enforcement, IOC Layer 9 events).

* feat(agntcy): ADR-237 — identity, OASF export, observability, CASA compiler

Implements the buildable-now portion of ADR-237 (AGNTCY identity, OASF
export, semantic observability) as the optional @metaharness/agntcy
sibling package (mirrors @metaharness/darwin/redblue/flywheel — never
a kernel dependency). No public AGNTCY npm packages exist under any
plausible name (verified live) — identity-provider and Directory
network calls are honest, config-gated stubs, never faked successes.

- src/identity/: AgntcyIdentity schema (hand-rolled shape-gate, no Zod
  — this repo has zero existing Zod usage), deriveBadgesFromMcpScan()
  reading the real ScanReport/ThreatModel shapes (not guessed ones),
  and a documented signing integration point citing the real existing
  Rust signer (crates/kernel/src/witness.rs::sign_manifest) rather
  than inventing a second signature scheme — no JS/wasm binding for
  it exists yet, so this is a TODO with the exact wiring documented,
  not a silent parallel signer.
- src/oasf/: OasfRecord projected from real harness-score/-genome/
  -mcp-scan output; fails closed (returns {incomplete, missingFields})
  on fields with no real internal source (e.g. pricingMeteringClass)
  rather than fabricating a value; publishToDirectory() always
  reports {published: false, reason: ...} since no Directory endpoint
  exists publicly yet.
- src/observability/: the 8 AGNTCY OTel attributes this package owns,
  mapped from real @metaharness/router / memory-tier / flywheel
  scorer output.
- src/casa/: the intent-to-authority-envelope compiler (deterministic,
  no LLM call), schema field-for-field identical to ruflo's mirrored
  copy for cross-repo interoperability. This package only compiles
  envelopes — enforcement is owned by companion ruflo ADR-324.
- src/index.ts: wired to re-export all four subsystems as namespaces
  (identity/oasf/observability/casa) — previously landed empty as a
  placeholder while sibling work was in flight.

Adversarial security review (ADR-237 §4's own requirement before this
compiler is trusted) found and this commit fixes a real bug: the
RULE_TABLE matched bare "push"/"publish"/"release"/"deploy" with no
context, false-permissively granting git.push/deployment.create for
objectives like "push notification integration" or "review the
release notes for security issues". Patterns now require a
co-occurring contextual noun. Fixed identically in the mirrored
ruflo copy (plugins/ruflo-agntcy/src/casa/compile.ts) to keep the two
repos' envelopes interoperable, per the module's own sync requirement.

Companion: ruflo ADR-324 (runtime half — SLIM transport, CASA
enforcement, IOC Layer 9 events).

* docs(adr): renumber ADR-237 to ADR-240 — collided with real merged ADRs

origin/main already had real, Accepted/Proposed content at ADR-237
(evals-math-live-gsm8k-fast-domain), ADR-238 (workspace-lens-jacobian-
interpretability), and ADR-239 (workspace-probe) — a numbering
collision from an inaccurate original check (read a concurrent
session's dirty local files instead of origin/main's actual git tree).
Renumbered to ADR-240, the next free slot. Content unchanged, only the
number/filename and internal references moved.

* docs(agntcy): fix stale companion-ADR cross-reference (ruflo ADR-324 -> ADR-380)

Ruflo's own numbering collided too (ADR-324 was already taken by
agentic-policy-engine-codex-swarm on their main) and got renumbered to
ADR-380 — this package's references to it were stale.

* fix(agntcy): real, live-tested AGNTCY Directory integration (was: false "no SDK" claim)

Corrects a wrong claim from the initial scaffold: it said no AGNTCY package
existed on npm under any plausible name. That check only guessed scoped
names (@agntcy/dir, @agntcy/slim) and got 404s — the real Directory SDK is
published unscoped as `agntcy-dir` (v1.5.0), and SLIM's real Node bindings
are `@agntcy/slim-bindings` (handled in the ruflo companion PR).

oasf/publish.ts now pushes and publishes real OASF records via the real SDK,
verified end-to-end against a live local Directory server (Go apiserver +
zot OCI registry + postgres, built and run from agntcy/dir's own
install/docker/docker-compose.yml) — push, publish, and an independent
lookup all exercised for real, not mocked.

Two real, non-obvious things needed to get this working:
- The real Directory schema REQUIRES a non-empty `skills` array with a
  numeric AGNTCY taxonomy id. This repo's internal capability tracking is
  name-based (harness-genome agent names), so a small honest mapping table
  (KNOWN_AGENT_SKILLS) translates known agent kinds to real taxonomy ids
  (empirically derived + cross-checked against agntcy/oasf's schema files,
  documented as such in code comments) with a real category-level fallback
  for anything unmapped — every capability is still recorded verbatim in
  annotations regardless, so nothing is lost to the fallback.
- The live server's schema validator rejects `skills[].name` in every format
  tried (dotted taxonomy path, dot-separated, bare leaf, human caption) —
  including the taxonomy's own real names — and only accepts a bare numeric
  `id`. This looks like a real upstream bug, not a mapping error; filing an
  issue against agntcy/dir with the reproduction.

Also fixed: package.json now declares the real `agntcy-dir` dependency
(previously claimed "dependency-free"); added the required `.npmrc` Buf
Schema Registry scope (one of the SDK's transitive deps is Buf-generated,
not on the default npm registry); corrected README.md's "Status" section
end to end.

AGNTCY Identity (github.com/agntcy/identity) really is Go-only with no JS/TS
SDK — that specific stub (identity/sign.ts's witness-signing TODO) was
correct as originally written and is unchanged.

* docs(agntcy): link the filed upstream issue (agntcy/dir#1943)

Root-caused first: agntcy/oasf-sdk's Go client is just an HTTP client
against a remote hosted validation service (schema.oasf.outshift.com) --
no local source to patch, so a PR isn't possible here, only a report.

* docs(adr): ADR-240 update section + finish the ADR-324->380 cross-ref sync

The cross-reference fix (ruflo's ADR-324 renumbered to ADR-380) was made
earlier but the docs/adrs/ files were never committed, only packages/agntcy/
— completing that now, plus the ADR-240 update section documenting the real
Directory integration and the agntcy/dir#1943 upstream bug filed.

* fix(ci): move Buf registry .npmrc to repo root; regenerate lockfile

The .npmrc I added lived inside packages/agntcy/, but this repo's CI runs
npm install/npm ci from the repo root (npm workspaces) — a subdirectory
.npmrc is never picked up for a root-level install, so every Node CI job
(npm-audit, sbom, real-tools, the full Node 20/22 matrix) started failing
with a 404 on @buf/agntcy_dir.bufbuild_es right after the Directory-fix
push. Moved the registry scope to the repo root .npmrc (the correct place
for a real, repo-wide dependency now that agntcy-dir is one) and
regenerated package-lock.json via 'npm install --package-lock-only' (the
same command CI's own npm-audit job runs, and one that never touches
node_modules — verified the shared workspace node_modules symlink is
still intact after running it).

'npm audit --omit=dev --audit-level=high' (CI's exact gate) -> 0
vulnerabilities.

* fix(test): real bug in the Directory live-server reachability probe — surfaced by real CI, not local review

Real CI (Node 20 macOS, then 22 macOS) caught what local runs against my
already-running local Directory server never could: the connectivity
probe used client.lookup() on a bogus CID as its reachability signal,
wrapped in its own .catch(() => undefined) — swallowing ANY rejection
(including "nothing listening") and unconditionally setting
serverReachable = true afterward regardless of whether the call actually
succeeded. In CI, with no Directory docker stack running, this made every
live-network assertion attempt to run anyway and fail for real.

First fix attempt (remove the inner .catch(), let a real connection
failure propagate to the outer catch) was ALSO wrong, just in the other
direction: a real, reachable server's lookup() rejects for "record not
found" too (a normal, expected response for a synthetic probe CID), which
made a genuinely reachable server look identical to an unreachable one —
verified this by re-running locally with the live server still up and
watching the live test start skipping.

Replaced both with a raw TCP connect() check against host:port —
"is anything listening" has no AGNTCY-protocol-level ambiguity to get
wrong. Verified against both real scenarios directly: a live server
(4/4 tests run, including the real push/publish/lookup) and a genuinely
unreachable port (3 pass, 2 skip cleanly).

Also added a production security note to publish.ts: the plain
`new Config(serverAddress)` construction is the SDK's insecure default
(no TLS, no client auth) — fine for the local dev server this test suite
targets, not safe against a production/public Directory server without
the SDK's x509/JWT auth modes.

* fix(ci): give pack+install smoke test the Buf registry .npmrc

scripts/install-all.mjs installs packed tarballs into a throwaway
project under os.tmpdir(), outside the repo tree, so it never saw the
repo-root .npmrc's @buf:registry mapping. @metaharness/agntcy pulls in
agntcy-dir's @buf/agntcy_dir.bufbuild_es transitive dep, which only
exists on the Buf Schema Registry — npm 404'd against the default
registry in every pack+install CI job (macos/ubuntu/windows). Copy the
repo's .npmrc into the throwaway project before installing.

Verified locally: pack-all + install-all now pass all 33 tarballs.

v0.1.15

Toggle v0.1.15's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(ci): unblock npm publish — add napi package.json + non-blocking n…

…ative matrix (#18)

The publish workflow's `gcp-auth-and-publish` job `needs: [build-native, ...]`,
but `napi build` failed for every target with "package.json not found at
crates/kernel-napi/package.json", cancelling the matrix and skipping the npm
publish entirely (the last 3 release runs never published).

- Add crates/kernel-napi/package.json with the napi-rs v3 config (binaryName +
  targets). Validated locally: `napi build --platform --release` now produces
  kernel.linux-x64-gnu.node (exit 0).
- build-native: continue-on-error + fail-fast=false. The per-platform .node
  artifacts are not yet consumed by the publish job (native publish is a TODO),
  so a flaky cross-compile target must not gate the real npm publish.

v0.1.4

Toggle v0.1.4's commit message
metaharness@0.1.4 — CodeQL security patch

v0.1.3

Toggle v0.1.3's commit message
metaharness@0.1.3 + agent-harness-generator@0.1.1 — iter 132 plugin.j…

…son propagation