RegistryDashboard

Changelog

Version history across all UluOps packages.

For the latest versions, see the version badges on individual SDK pages.

July 2026

PDL v1.4.0 — July 11, 2026 (convergence hardening)

Both extensions come straight from the first live convergence run (aristotle-convergence on sdk-core, 4 iterations):

  • Stall exitstall_iterations (default 2) + on_stall: after N consecutive iterations applying zero mechanical fixes, the loop exits UNCONVERGED / exit_reason: stalled rather than burning remaining budget on a score that cannot move. A stalled exit is a success of triage — the loop has cleanly separated machine-fixable from human-gated.
  • Tracker no-save contracttracker.suppress_agent_saves (default true) injects a no-save instruction into every loop-stage agent prompt; postflight is the single owner of run persistence (the live run surfaced an investigator autonomously saving its own orphaned sub-run). Executor exception: issue-level updates on pre-existing issues stay allowed.
  • convergence.exit_reason (converged | max_iterations | stalled | user_pause) in the postflight namespace; validator rule 7 warns when the stall window can never fire.
  • definition-factory 0.46.0 / udl CLI 0.17.0; aristotle-convergence 1.1.0.

PDL v1.3.0 — July 11, 2026 (convergence loops)

  • New pipeline-level convergence block — the first executable loop construct in the definition languages. Designated loop_stages re-execute until a score gate passes (aggregate of gate-stage agent scores ≥ threshold) or max_iterations is reached. The gate evaluates immediately after the gate stages complete — fresh-score exit, no wasted fix cycle. UNCONVERGED is a first-class outcome; post-loop stages (synthesis) run on both exit paths. Carry-context injects prior-iteration findings, dispositions, and fix summaries into loop-stage prompts.
  • definition-factory 0.45.0 / udl CLI 0.16.0 — schema + six semantic validation rules (loop-stage existence, gate subset, no gate-stage conditions, min ≤ max, no post-loop dependencies, advisory-gate warning) + convergence-protocol rendering in generated pipeline runbooks.
  • First consumer: aristotle-convergence pipeline — Aristotle validator/analyst/forecaster trio ∥ → finding-investigator → executor, looping to average ≥ 95 (max 5 iterations), post-loop synthesis.
  • Enforcement boundary documented: enacted by the harness PDL executor (/pipelines:run); @uluops/core parses but does not yet enforce the loop.

Docs — July 10, 2026 (cognitive-lens findings)

A four-lens blank-slate analysis (Confucius explorer + analyst, Wittgenstein analyst, Socrates explorer) was run against this site; the actionable findings are folded in:

  • Fingerprinting: the category double role is now stated honestly. category is both a fingerprint input (identity-bearing) and the taxonomy-distribution axis — a reclassification moves the distribution and breaks issue identity (phantom resolved+new pair). The previous "distribution is robust even if fingerprints drift" claim is scoped to title/path drift, and the unmeasured category-reassignment rate is flagged as an open question.
  • Executor ↔ oversight reconciled. The first executor agent is live (executor, general-purpose fix applier), and both the agent-types and Recursive Appreciation pages now state the scope boundary that keeps executor autonomy compatible with the external-judgment requirement: mechanical fixes are autonomous, judgment-bearing findings surface as PARTIAL, validators re-check, humans keep resolution-labeling authority.
  • RAH statistics get a drift guard. The corpus-pinned research figures (FP rates, verifiability cliff, convergence stats) now live in a canonical manifest (lib/rah-stats.json) with an invariant test against the page — the same protection class the homepage method count received.
  • Spec-version freshness is now mechanical. A new invariant test asserts each spec page's meta.version matches the newest schema copied from definition-factory, closing the one hand-sync seam all three Confucian layers converged on.
  • Taxonomy falsification test refined. The cross-domain portability test now distinguishes a mode gap (software-derived mode vocabulary not yet ported — extend, don't refute) from domain failure (annotators can't agree on STR/SEM/PRA/EPI at all — the actual refutation signal).
  • "Status" disambiguated in-band. A callout on the Definitions page names the four distinct status state machines (definition, issue, model, scan) and the deprecated trap — the same treatment validation already had.
  • Agent-type maturity table refreshed to July 2026 registry counts (74 validators, 92 analysts — now the largest type, 41 forecasters, 25 explorers, 8 generators, 1 executor; 556 published definitions total).

Docs — July 10, 2026 (metrics + reference catalogs)

  • Ecosystem metrics refreshed to July 2026 90-day windows on Validation, Failure Taxonomy, Fingerprinting, and Recursive Appreciation: 14,471 classified issues in-window, 238 active agents, 104 tracked projects. Notable shifts vs the March snapshot: SEM overtook STR as the largest failure domain, and the EPI share grew 9.8% → 13.7% — the predicted effect of cognitive-lens agents becoming a substantial share of runs. Regression stats now use the tracker's current issue-level shape (5 of 5,229 resolved regressed, 0.10%); RAH-derived percentages remain pinned to the hypothesis document's April 2026 corpus and are labeled as such.
  • SDK reference catalogs audited against live exports: core gains the Root Helpers group (parseRef, classifyDecision, buildVocabularyMap, resolveDecisionCategory, deriveCompleteness); sdk-core gains streaming (requestStream/getStream), isRedirectError, and the integrity-hash utilities; ops-sdk gains the Session group plus getAgentRunsAnalysis, getAgentLifecycle, getByMetric, getAvatar; registry-sdk gains isVerdictTrustworthy under Safety Helpers.

Docs — July 10, 2026

  • New: Definition Safety concept page. The publish-time risk analysis system — sync scan vs deep analysis, risk levels (deliberately no low tier), the evidence-not-capability design principle, the version-scoped risk profile shape, and the trust contract (scanStatus: 'failed' and deep.status: 'error' sentinels; gate rendering on isVerdictTrustworthy).
  • PDL page: Runtime Enforcement section. Stage gates (enacted as of core 0.32.0, abort-by-default), stage output forwarding, opt-in steps: execution, and condition semantics.
  • Version catch-up: package badges, SDK/CLI reference catalogs, and MCP tool tables brought current (core 0.32.0, registry-sdk 0.43.0, ops-sdk 5.7.0, sdk-core 0.15.0, cli 0.23.0, ops-mcp 49 tools incl. update_profile).

core v0.32.0 — July 10, 2026

  • PDL stage gates are now enacted. gate.on_failure: abort halts the pipeline, warn continues with a warning, and on_success: skip_remaining early-exits — previously gate blocks were parsed but never read, so hard build gates silently auto-passed. Skipped downstream stages report why (gate_abort / gate_skip / gate_early_exit).
  • Integrity pins reachable from every execution entrypoint. runCommand accepts pins in overrides; runWorkflow / runPipeline / startPipeline / run accept trailing pin options. Pins verify fail-closed on every return path, including registry-cache hits.

cli v0.23.0 — July 10, 2026

  • Integrity pins on every exec surface. --hash is accepted by exec run, exec command, exec workflow, and exec pipeline (previously exec agent only); --prompt-hash by exec run and exec command. Pins verify the resolved definition fail-closed before anything executes and refuse with exit code 4 on mismatch.
  • Deep-analysis errors are named at both consumer surfaces. ulu def get prints "Deep analysis failed (reason) — could not determine" instead of a clean rendering; exec agent emits a pre-run "verdict is sync-only" advisory for sync-clean definitions whose deep audit errored.
  • Ambiguous-name hints now name commands that exist (the typed exec <type> <name> subcommands, with the actual name filled in).

registry-sdk v0.43.0 — July 10, 2026

  • isVerdictTrustworthy is now deep-aware: returns false when deep.status === 'error', so a sync-clean definition whose background deep analysis errored no longer reads as trustworthy-clean. deep: null (pending/skipped/legacy) stays trusted.

core v0.31.0 — July 8, 2026

  • Pipeline stages forward upstream results into downstream agents' prompts. Inline-agent stages with depends_on receive an ## Upstream Analysis section (decision, score, summary, top recommendations from each dependency). Producer-side forward: auto|none|full, consumer-side receives: auto|none; deterministic size caps (8K/stage, 32K total). Kill switch: ULUOPS_DISABLE_STAGE_FORWARDING=1.

core v0.30.0 — July 8, 2026

  • Custom-vocabulary negative verdicts now gate pipelines. Stage progression is decided on the vocabulary-resolved decision category (so EXPOSED, BEWITCHED, or a WDL-remapped BLOCK fails a stage like FAIL does), propagated as decisionCategory through every aggregation site. Vocabulary maps cannot remap core-register strings (CWE-345 guard).

ops-sdk v5.7.0 / ops-mcp v0.9.2 — July 8, 2026

  • save_run correlation is nullable: idempotent replay of a pre-correlation run returns correlation: null (counts not stored, not fabricated). ops-mcp conflict errors now carry cause-specific guidance (name collision vs idempotency reuse vs soft-deleted tombstone).

registry-sdk v0.40.0–0.42.0 / registry-mcp v0.3.0–0.3.2 — July 7, 2026

  • Safety-verdict trustworthiness surface (0.42.0): RiskProfile.scanStatus + scanFailedReason, DeepAnalysisResult.status + errorReason, and the isVerdictTrustworthy(profile) predicate — a failed scan's aggregateRiskLevel: 'none' is a sentinel ("could not determine"), not a clean verdict.
  • Provenance-aware quality analytics (0.40.0–0.41.0): effectiveness carries metrics.provenance (independent vs self-reported quality split, voter counts, provisional-until-3-actors confidence); headline numbers are voter-weighted (one actor, one vote); agent passRate is now null (participation-based quality) rather than a fabricated rate. registry-mcp passes the provenance block through and documents the semantics in tool descriptions.

cli v0.22.0–0.22.3 — July 2–7, 2026

  • A failed safety scan no longer renders as "clean" (0.22.3): def get prints "Safety scan incomplete (reason) — could not determine"; exec emits an incomplete-scan advisory before running (suppressible via --no-safety-warnings).
  • Security-event warnings (0.22.0): blocked upstream redirects (possible MITM), rejected credentials, and failed token refreshes surface to stderr on every ops/registry/core client.

core v0.29.0–0.29.1 — July 7, 2026

  • Engine execution of PDL steps: blocks — opt-in (ULUOPS_ALLOW_STAGE_STEPS=true, default off), sequential shell steps honoring the full PDL contract (timeouts, retries, continue_on_error, expect_match, per-step env) with hardened confinement (secret-class env scrubbed, loader-var overrides rejected, working_dir realpath-contained).
  • Condition-expression evaluator: per-agent and per-stage condition gating over params.* and stages.* paths; absent params evaluate false (agents gated on an unset param no longer dispatch on every run).
  • Steps-only stages no longer fabricate score: 100; stages with no executable content fail loud instead of auto-passing.

ops-sdk v5.3.0 / ops-mcp v0.8.0 — July 2, 2026

  • Status-change reason cap widened 500 → 1000 chars (matching the API's status_history column). agent_id provenance field on run agent entries followed in 5.5.0 / ops-mcp 0.9.0.

Docs — July 8, 2026

  • New: Export Your Data guide. Covers all three tracker export shapes — single-dataset streaming, whole-project ZIP bundles, and asynchronous whole-organization export jobs — with the paid-tier/publisher-role posture, the manifest.json shape, insert-level coherence, and the job lifecycle (queue → poll/email → download; 72 h retention).

June 2026

core v0.25.0–0.27.0 / sdk-core v0.14.0 — June 26–28, 2026

  • Structured security-event channel (core 0.27.0 / sdk-core 0.14.0): onSecurityEvent config hook receives typed events (auth_failure, redirect_rejected, token_refresh_failed, credential_swap); sdk-core hardens redirects (RedirectError on cross-origin) and rejects credentials embedded in baseUrl.
  • Token accounting fixes (0.25.1–0.26.0): Google thinking tokens no longer double-counted in total_effective_tokens; cached input is tracked separately (cached_input_tokens) and subtracted from effective totals; harness field identifies the executing harness on metrics.
  • Semantic analysis record IDs (0.25.0): recordId limit raised 20 → 100 chars so namespaced IDs survive instead of being hashed.

Docs — June 17, 2026

  • New: @uluops/core SDK reference. Full reference for the execution engine — UluOpsClient and its 18 methods across Execution (runAgent, runCommand, runWorkflow, runPipeline, run, startPipeline), Convenience (validate, security, optimize, ship, postImplementation), Discovery (list, describe, clearCache), and Submission & History. Includes constructor configuration, subpath exports (/types, /errors), and per-method response types.
  • MCP install instructions. The ops-mcp and registry-mcp pages now show npm install @uluops/ops-mcp / npm install @uluops/registry-mcp, and their .mcp.json command values now match the bins those packages ship (uluops-ops-mcp / uluops-registry-mcp).

setup v0.8.0 — June 7, 2026

  • Multi-target install: one invocation, every detected harness. --all-detected (or --harness all) installs into every detected stable harness in a single run; --harness claude-code,codex installs into a comma-separated subset. Interactive multi-detection uses a checkbox prompt with every option checked by default — the "install everywhere" case is a single Enter press.
  • Per-target failure isolation: one harness failing does not abort the others. Each per-harness pipeline runs in its own try/catch; failures land in a per-section summary block with ✓ / ⚠ / ✗ / ⊘ status icons and a Re-run: npx @uluops/setup --harness <name> hint.
  • 4-tier exit-code classifier: CI scripts wrapping --harness all only fail on operational errors (EACCES, ENOSPC, etc.). User-rejected conflict prompts no longer poison the exit code.
  • --uninstall --harness <name> filter: symmetric to install. Subset uninstall removes only the named harnesses, preserves shared infrastructure (@uluops/cli, @uluops/agent-metrics, shell-profile export), and updates the manifest in place. Unknown harness in the filter fails fast with a helpful error listing what IS in the manifest.
  • --verify partial-install warning: when a previous install hit a partial-state error (post-MCP step threw), verify surfaces the warning + re-run hint so you know how to recover.
  • Full Codex harness implementation: TOML mcp_servers write/read/remove + skills install path. Status remains experimental (excluded from auto-detection; opt in with --harness codex).
  • Non-interactive runs preserve today's first-detected behavior to keep CI scripts predictable.

May 2026

ADL v1.16.0 — May 10, 2026

  • Tightened: forecast section forbidden on non-forecaster agent types (validator, executor, analyst, generator, explorer) via "forecast": false in the schema's allOf rules. Previously forecast validated for all types but only the forecaster template rendered it, causing silent absorption — the field passed validation but vanished from output. Discovered by the Bateson pipeline (FD-1).
  • Non-breaking: no existing definitions used forecast on non-forecaster types.

ADL v1.15.0 — May 9, 2026

  • Added Machiavelli cognitive lens suite (analyst, forecaster, explorer, validator)
  • Strategic Terrain composition (Sunzi + Machiavelli + Seneca) now fully operational
  • Pipeline definitions fully supported across all definition languages

cli v0.5.0 — May 21, 2026

  • Command aliases: ulu p (projects), ulu r (runs), ulu i (issues), ulu a (analytics), ulu x (exec)
  • Usage examples on all 17 command groups via --help
  • Help shown after every error — no more guessing syntax
  • Polished subcommand descriptions across 14 commands
  • Suppressed dotenv v17 tip noise via @uluops/sdk-core 0.10.1

ops-sdk v1.4.0 — May 6, 2026

  • Added high priority level for findings
  • Multi-model execution support (Claude, GPT, Gemini, Qwen)
  • Full billing and tier-gating integration
  • 86 methods across all namespaces

registry-sdk v0.16.1 — May 2026

  • Format param on versions.diff()
  • VersionFieldDiff / VersionUnifiedDiff types
  • Batch publish support
  • Fork lineage and dependency graph APIs

sdk-core v0.5.0 — April 2026

  • Unified schema validation
  • Extraction confidence scoring
  • Semantic deduplication improvements

@uluops/core v0.9.0 — April 2026

  • MIT open-source release (thin client architecture)
  • DAG executor for pipeline orchestration
  • Prompt hash attribution (3-axis: definition, translator, model)
  • Trade secret remediation (secrets removed from package)

Tracker MCP — 48 tools (May 2026)

  • Full taxonomy analytics (get_full_taxonomy_analytics)
  • Agent lifecycle and reliability tracking
  • Run archiving and diff capabilities
  • Burndown and velocity analytics

Registry MCP — 44 tools (May 2026)

  • Batch publish and batch user management
  • Execution stats and webhook recording
  • Translation analytics and model sync
  • Fork lineage and ecosystem overview

April 2026

Database Consolidation — April 29, 2026

  • Consolidated 3 databases to 1 unified MySQL instance
  • Eliminated 2 HTTP bridge services
  • Added real foreign key constraints (previously application-enforced)
  • 50 tables unified under single connection pool

Multi-Target Architecture — April 30, 2026

  • ADL → IR → target adapter pattern shipped
  • 4 adapters: Claude Code, OpenCode (GPT/Qwen), Gemini CLI, generic
  • Definitions are now model-agnostic by design

@uluops/tier-gate v0.1.1 — April 11, 2026

  • Full access control migration complete
  • Tier-based definition gating (free/pro/enterprise)

@uluops/analytics — April 10, 2026

  • Extracted from tracker API as standalone package
  • 423 tests, tier gating active
  • Health scores, trend analysis, agent reliability metrics

March 2026

ADL v1.13.0 — March 24, 2026

  • Added epistemic_nature object to agent interface with three independent axes: verifiability (mechanically_checkable, expert_judgment, not_checkable), determinism (deterministic, stochastic, environment_dependent), claim_type (factual, normative, observational)
  • Supports empirical analysis of agent effectiveness across epistemic categories
  • 100 agent definitions backfilled with classifications
  • Extracted RAH service to standalone package (@uluops/rah-service)

ops-sdk v0.1.5 — March 4, 2026

  • Added bulk status update operations
  • Added validator reliability analytics
  • Fixed pagination cursor handling

sdk-core v0.1.1 — March 3, 2026

  • Added rate limit header parsing
  • Fixed retry logic for 429 responses

registry-sdk v0.2.1 — March 2, 2026

  • Added fork lineage tracing
  • Added definition rendering API
  • Fixed hash verification for YAML normalization

cli v0.1.0 — February 2026

  • Initial release
  • 10 command groups
  • Interactive and non-interactive authentication