Skip to content

v0.11.0: ContextEngine, learned JEV policy & Observatory - #19

Merged
AronAxe merged 26 commits into
mainfrom
feat/hermes-context-engine-v0.10.0
Sep 29, 2026
Merged

AronAxe merged 26 commits into
mainfrom
feat/hermes-context-engine-v0.10.0

Conversation

@AronAxe

@AronAxe AronAxe commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner

v0.11.0 — Context, learning & observability

Owner-approved for release. Aron explicitly authorized merging this PR, publishing a fresh release, updating crates.io/wiki/README and refreshing technical schematics while preserving the Terminator artwork. The previous published version is v0.9.0; the unshipped v0.10.0 milestone is included here. The branch name retains the original review history.

What ships

  • Selectable Hermes ContextEngine: supported plugin discovery, full-available-history JEV attention, exact pinned evidence and session-scoped rediscovery/recovery. Selecting TT excludes upstream LCM/built-in context selection; middleware-only mode remains available. No generative history summarizer or Hermes core patch.
  • Purpose-first call isolation: native and forwarded embedding/reranking/classifier/helper/service work bypasses conversational reduction. Internal JEV/counting callbacks cannot recursively capture the main request. Retries and async ownership remain tested. Native JEV is a typed-decision service; the conservative JEV-backed-wrapper policy does not supply a chat wrapper.
  • Actual external learning: bounded System-2 feature-question proposal/revision from grouped development-CV errors, batched JEV probability/distribution features and real CatBoost omission-harm/recovery-cost fitting. Questions, models and threshold freeze before final holdout evaluation; JEV weights remain fixed. Runtime inference is bounded numeric JSON, not pickle, with explicit SHA-256 approval. Training-only CatBoost dependency.
  • Conservative learned deployment: default off, separate shadow and active modes. A learned policy may veto an otherwise eligible omission but cannot overrule protected/uncertain context, source integrity, call scope, JEV-wrapper preservation or the final actual-token gate. Explicit labelled dataset and consent required for live training; no background learner, vault mining or automatic promotion.
  • Observatory: read-only localhost:7474 dashboard with per-profile/bot input/output accounting, trends, model-rate values and coverage. Native Hermes Desktop bottom status counter opens an upward summary popover. Correct task-local profile attribution, scoped backend access, duplicate detection and explicit ambiguous historical accounting. No model calls on refresh.

Release polish

The README, changelog, install/migration/security guides and wiki now describe the complete release rather than a development branch. Two self-contained, accessible SVG schematics show the two runtime modes and the external learning loop; Terminator hero/artwork remains unchanged. Rust package guides are updated to 0.11.0 and explicitly describe the interoperability-only scope. Historical published release notes remain preserved; 0.10.0 is documented as unshipped.

docs/releases/v0.11.0.md provides the complete GitHub release notes. The publication workflow uses these notes and uploads verified SHA256SUMS alongside wheel/source distributions. Existing main-push workflows publish the release, Rust crate and wiki after merge. No secret values or running Hermes profiles are changed.

Verification

Before this docs-only release pass, the training-enabled suite had 611 passed / 2 optional external-integration skips, including 58 dashboard/accounting tests. Main Python/Windows/Rust/package checks, real CatBoost regression, both pinned Hermes contracts, Context IR and real localhost Chromium dashboard QA passed. The final release-head workflows run the same checks again; the final results and merge/publication identities will be recorded below.

The documentation pass does not change runtime code, tests, benchmarks, defaults or Terminator artwork. No paid model calls are required.

Qualifications retained in the release

Exact counts measure complete canonical request JSON, not hidden provider billing framing. Unknown tokenizer/evidence failures fail open; protected-history overflow still needs host/provider enforcement. Persistent pins require retention planning. Archive-only recall is bounded lexical search, not universal semantic retrieval or LCM import.

Synthetic fixtures demonstrate executable learning/inference, exact recovery and token invariants, not production answer quality, service calibration, monetary saving or LCM superiority. No trained production policy ships. Output generated is not measured output saved; subscription API-equivalent value is not a reduced invoice or net saving. Desktop contribution/backend contracts and browser dashboard are tested, not a full Electron/authenticated-gateway end-to-end session.

Entry points

Release notes · ContextEngine · Learning · Dashboard

Installation remains deliberate: installing a package does not enable/select a ContextEngine, activate a learned policy, start a dashboard or modify a running profile.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-28T01:27:12.368080Z 0cfe572 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

AronAxe commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Final verification — candidate remains unmerged and unpublished

Verified final head 0cfe572506fc87df4ccf54fcc9ed34757ac05b5f, source tree d54a0cecc05be2ea3f3f54b2c51f58349c184e2e.

All final PR workflows completed successfully:

Downloaded and inspected the context-engine-verification artifact (ID 10947392180, SHA-256 8af542dfe9c2d04f2aa95ffae8a7bb2f54079f4dad4805a5d03f2874cf9a356d). It contains the actual smoke output, JUnit report and complete 120-trial benchmark—not just workflow status.

The real-Hermes smoke confirms loader discovery, ABC subclassing, factory selection, shared CLI/web options, engine-tool injection, request middleware, clone isolation, untouched full host history and exact recovery. The built-in compressor was not constructed. Its complete fixture request measured 14,531 → 4,051 tokens with two fixture JEV batches and zero paid calls.

CI reproduced all committed token totals exactly: engine 31,934 / 32,100 versus quality-preserving age-collapse-off middleware 70,554 / 74,251 (GPT-4o / GPT-4 tokenizers). All 120 transformations were non-enlarging; the engine passed 30/30 visible-data golden checks. The legacy age-collapse-on arms again failed those old-evidence checks; their shorter prompts are not quality-preserving wins.

CI median local latency was 590.125 / 607.052 ms for the engine and 97.384 / 117.372 ms for quality-matched middleware. These are runner-specific local times, not live service latency; the earlier committed report records the separate local-container timings. Recovery-probe full-resend input medians reproduced 6,296 / 6,324 versus 17,014 / 17,755. No real JEV/model calls were made, so live cost, real classifier/model quality and a reproducible LCM comparison remain unmeasured.

Latest release independently rechecked: v0.9.0, still targeting b87969b42e02fcdd119fe8d3dce12e8ede3fac6b. No merge, tag, publication, live wiki update or running Hermes change has been performed. Owner approval is still required before any of those actions.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0cfe572506

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +221 to +224
if (
"token_terminator_history" not in names
or choice == "none"
or isinstance(choice, dict)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Require every recovery tool used by the pipeline

When a restricted profile exposes token_terminator_history but not the separate token_terminator tool, this check permits the shared compiler/compactor pipeline to run. That pipeline can replace an old tool result with a [Token Terminator artifact ...] receipt whose recovery action requires the missing token_terminator tool, so an accepted request irreversibly hides evidence from the model. Require the general recovery tool whenever the downstream stages can emit its references, or disable those stages when it is absent.

Useful? React with 👍 / 👎.

Comment on lines +270 to +272
decision = runtime._middleware_pipeline(
request=plan.request, _tt_engine_plan=plan, **kwargs
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Persist request metrics only after the outer acceptance gate

Calling _middleware_pipeline here writes the durable request_metrics row with plan.request as its raw payload before the engine compares the result with the actual original request. The later correction updates only token accounting and attribution, not request_metrics; consequently accepted JEV/history savings are omitted from character totals, while a candidate rejected by the outer token gate can still leave metrics describing a payload that was never sent. This corrupts status and experiment results, so the row must be rewritten from original to the accepted final payload or persistence must be deferred until after this gate.

Useful? React with 👍 / 👎.

AronAxe and others added 3 commits September 28, 2026 09:25
Exercise real main-request retries, auxiliary clients, embeddings, reranking, JEV-target preservation and all 72 new scope evaluations. Remove temporary transfer workflow. Keep PR #19 unmerged and v0.9.0 unchanged.

AronAxe commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Call-scope safety review completed — latest verification

Final review head: d063d30fa81ce7dbeac8e1c29ee86ec32f03fccd; tree 8d2318faea847a76982a18a03b4ae68d821f8547. Same PR #19 / feat/hermes-context-engine-v0.10.0. Not merged or published. These results supersede the original 331-test baseline count in the PR description.

Already safe, preserved rather than rewritten

TT was not a global SDK/HTTP interceptor. Native Hermes auxiliary clients use separate auxiliary observer hooks; native Mem0 search/rerank/embedding integrations and SDK embedding calls do not automatically enter TT's llm_request middleware. Tokenizers are local measurement tools. TT's default internal JEV transport already uses direct Decisions/System One requests rather than the Hermes conversation path. No SDK or Hermes core patch was added.

The integration tests now exercise the real main request builder, auxiliary relay helpers, OpenAI SDK embedding serialization, and real Hermes Mem0 adapters with fake provider/HTTP endpoints. They confirm exact service arguments and prove native auxiliary clients do not dispatch TT middleware. This is a TT guarantee, not a claim that the host's own unrelated preprocessing never changes service inputs. Existing compression of service results subsequently included as conversational evidence is retained.

Actual vulnerability reproduced and fixed

At original head 0cfe572506fc87df4ccf54fcc9ed34757ac05b5f, an ambient ContextEngine binding could authorize reduction even when a generic forwarded call explicitly supplied request_purpose="classifier" and aux_task="classifier". Reproduced with the original packaged candidate: 5,267 → 1,536 tokens. The same fixture now bypasses unchanged: 5,267 → 5,267 tokens, reason auxiliary_call. This does not mean the already-separated native auxiliary path was intercepted.

A boundary check now runs before engine dispatch, vault/scorer/tokenizer work or model-cache mutation. Internal/auxiliary/delegated roles, non-generation operations, embedding/rerank/service envelopes, negative/unknown/conflicting purposes and unscoped generic calls veto reduction. An inherited binding or model name alone is not authorization. The registered Hermes adapter uses the actual main-hook metadata contract plus existing auxiliary-task/delegated-parent signals. Generic non-Hermes adapters explicitly authorize only real generation via out-of-band request_purpose="conversation"; payload/prompt metadata cannot authorize it.

Execution-local guards prevent internal JEV/custom transport and measurement callback re-entry, including independent OpenRouter and direct TypeSafe scorer invocation, exceptions and async propagation. Known internal lifecycle calls cannot overwrite/capture into the main engine binding. Provider retries preserve that binding/cache; outgoing model changes are reconsidered each attempt.

JEV as the final chat model

Purpose is decided first. Optional trustworthy host target-family metadata has priority; inspected Hermes has no dedicated target-family field, so its fallback uses the actual outgoing provider-qualified TypeSafe JEV identity, not a fuzzy substring, stale session model or TT scorer model. Custom aliases can force TOKEN_TERMINATOR_CHAT_TARGET_POLICY=preserve (default auto). No new keys or API lookups.

With room, all supplied history is retained: no semantic pruning, age-collapse, SkillGate omission or compiler receipts/working-state injection. Enabled reversible Context IR may still run if exact recovery and strict complete-request token/character savings are verified, without a JEV call just to choose IR. Only known budget pressure permits existing bounded relevance/guard/salience selection, stopping after enough safe, exactly backed omissions to fit. Output reserve and safety margin remain included; a fallback never borrows another model's window.

Hard-limit qualification: protected/unscored history may still not fit. TT records context_limit_unresolved and preserves the original rather than silently truncating. Hermes' fail-open middleware cannot enforce an unconditional abort by throwing; host/provider hard-limit enforcement is still necessary for that unresolved case. Exact measurement means complete canonical provider-request JSON, not hidden billing framing. JEV policy arithmetic tests use an explicitly labelled fixture tokenizer, not an invented actual JEV tokenizer. No live JEV chat quality/economics claim.

Tests and final CI

  • Full local suite: 403 passed, 2 optional external integration skips — 72 additional scope/policy evaluations.
  • Final CI: success, including Python 3.10–3.13, Windows, Ruff, Rust, wheel/sdist, Twine and release verification.
  • Existing Context IR verification: success.
  • ContextEngine + call-scope verification: success on both pinned Hermes snapshots 801a9022a742562a3c4578c0d8dd12cfd393fc47 and current-at-audit 5458de948379badc5b84ba624dc029367a28ece4.
  • Downloaded and inspected both CI artifacts, rather than relying only on workflow status. Each contains 135 passed / 0 failed / 0 skipped engine+async+scope tests, all native call-path assertions true, and the complete 120-evaluation offline benchmark. Main-generation smoke remains 14,531 → 4,051 tokens, full host history unchanged, exact recovery successful, two fixture JEV batches, zero paid calls.

Verified artifact IDs/digests:

  • Current-at-audit: 10956662611, SHA-256 0782926df55f6163d328038823c5c409503101a5e4f434a93366b9e85a672a6f.
  • Prior pin: 10956682654, SHA-256 f3be72c776ad1bc8ae86e0e6243a394c6d2b50279d0468721cd49cd730b79580.

Ordinary non-JEV regression

Both CI jobs reproduce all original token totals exactly (five tasks counted once):

Arm GPT-4o tokenizer GPT-4 tokenizer
Default middleware 19,002 20,088
Middleware + JEV + IR 12,962 13,598
Quality-preserving middleware, age-collapse off 70,554 74,251
ContextEngine + JEV + IR 31,934 32,100

All 120 transformations per run are non-enlarging; engine visible-answer/exact-target checks remain 30/30. The two legacy age-collapse arms still fail the old-evidence checks; their short prompts are not relabelled as quality-preserving. No paid calls or new LCM comparison.

README, changelog/release-note source, migration/security guidance and docs/CALL_SCOPE_REVIEW.md describe the changed behavior. The final diff contains no transfer payload or temporary workflow, no global interception, no new key model, and no unrelated compressor rewrite. Main/v0.9.0, live wiki, registries and running Hermes profiles were not changed. Approval is still required to merge/publish.

AronAxe commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

JEV architecture clarification requested by Aron

I rechecked TypeSafe's primary System One, coding-agent, skill-suggestion, intent-routing, RAG, citation-checking, guardrail, and verification/escalation documentation against head d063d30fa81ce7dbeac8e1c29ee86ec32f03fccd. My earlier review should not have been presented as exhaustive, and the phrase “JEV as the actual final chat model” is misleading without a separate conversational wrapper.

JEV can supply agentic control (workflow/skill/tool/handler/priority selection and escalation) and support a reasoning/writing LLM through context selection and input/output verification. These are roles composed in application code using the same typed decision primitives, not two generative modes or separate System Two API endpoints. TypeSafe explicitly says JEV itself is not a drop-in conversational/code-generation model.

The current TT integration correctly uses batched Noul judgments for relevance/guard/salience and exact evidence, a subset of System 2 support. It does not implement a JEV-powered workflow controller or post-answer citation/requirements verifier. Existing deterministic SkillGate must not be described as TypeSafe's two-stage skill-suggestion integration. A preservation policy is not an implementation of those features.

Code inspection found that raw state/questions decisions already bypass conversational reduction, even if incorrectly labelled conversation, and internal JEV transports already have re-entry protection. No runtime rewrite is warranted for those already-safe paths. I am tightening the documentation and adding explicit System 1-control/System 2-support regression cases on this PR. No merge, release, live wiki publication or profile change is authorized.

Primary sources:

AronAxe and others added 3 commits September 28, 2026 14:54
…ontext gate

Document RLCD versus external policy learning and the implementation boundary. Add 18 offline regressions for feature extraction, proposal/evaluation helpers and main-request retries. No runtime, credentials, training or publication changes.

AronAxe commented Sep 28, 2026 •

Copy link
Copy Markdown
Owner Author

Architecture correction: external learning around JEV is not TT's fixed context gate

At Aron's clarification, checked TypeSafe's AI primer and autoresearch feature-discovery cookbook, including its implementation and validation split. These references supplement the earlier System 1 / System 2 role clarification; the earlier gate-only description did not capture the learned outer system.

For reviewers and future implementers: do not conflate (a) RLCD training of JEV, (b) JEV's decision/control and LLM-support roles, and (c) training an external predictor or policy on JEV-derived semantic features. The latter can learn while JEV's weights remain unchanged. A fixed threshold, hand-written weighted sum or score cache is not evidence that this learning loop exists.

The current runtime preserves continuous relevance/guard/salience Noul values but consumes them with conservative fixed rules. It does not implement an external fitted policy, CatBoost training, automated feature discovery, question revision, or a post-answer verification/escalation controller. No such capability is claimed by this change.

This correction

Commit bff951c3816f1bf5723337bd39bfa1a5c72d0aaa on the existing review branch adds only:

  • docs/JEV_ROLES.md: explicit external-learning distinction, present implementation boundary, and requirements for any future TT-specific learner (evidence/constraint quality and recovery-adjusted cost, not token reduction alone).
  • tests/test_jev_learning_scope.py: 18 additional offline scope/retry cases covering feature-extraction/proposal/evaluation/training purposes, both JEV provider settings, unchanged typed source/rubric/probability payloads even under misleading conversational authorization, and main generation/retry continuity after intervening learning work.

The existing scope guard already handled these cases correctly; no runtime rewrite was needed. No new training job, dataset export, model dependency, credential, paid inference call, model fine-tuning or automatic policy promotion was introduced. README/release behavior was not changed.

Final verification

All three workflows for this commit have now completed successfully. The full Python 3.13 CI log reports 449 passed, 2 skipped, with Ruff checks and formatting passing. Python 3.10–3.12, Windows, Rust and packaging jobs also succeeded.

These are software regression checks, not validation of a learned TT policy or live JEV accuracy/economics. PR #19 remains open and unmerged. No merge, tag, release, registry publication, live wiki update or running Hermes change was performed.

AronAxe and others added 3 commits September 28, 2026 16:25
…g CI

Retain PR #19 and its existing branch. Add opt-in actual-fit verification, align Cargo metadata, document the new learned layer and unreleased version, and remove temporary transfer/correction workflows. No merge, tag or publication.
@AronAxe AronAxe changed the title v0.10.0: selectable Hermes ContextEngine with exact history, JEV attention and Context IR v0.11.0: Hermes ContextEngine, call-scope safety and learned JEV omission-risk policy Sep 28, 2026
Windows CI exposed text-mode newline translation invalidating approval hashes. Write deterministic UTF-8 bytes on both atomic-link and exclusive-create paths; simulate CRLF translation in two platform-independent regression tests. Preserve checksum rejection and fail-open behavior.

AronAxe commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Final v0.11.0 learned-policy verification — unmerged / unpublished

Final head 9cfdbcc91f7640fffeb0b369bb76249c37b7c9c6, tree 88520adb58f5825ad8a27b4f7df60fea87f0f340. Same PR #19 and feat/hermes-context-engine-v0.10.0; the unreleased 0.10 milestone is included in 0.11.0. Latest release independently rechecked: v0.9.0, target b87969b42e02fcdd119fe8d3dce12e8ede3fac6b. Nothing was merged, tagged, published, installed in a running Hermes profile or activated.

Actual implementation, not another documentation-only correction

The new policy-train command fits CatBoost omission-harm and recovery-token predictors on JEV-derived continuous Noul/Score features. A bounded System-2 proposal/revision loop consumes grouped development-CV errors; questions, weights and operating threshold freeze before final holdout assessment. Both existing JEV routes are supported. The built-in generative proposer uses the existing OpenRouter credential; replay or an existing Python callback supplies an alternative. JEV weights are unchanged.

Runtime modes are off (default), shadow (return the original fixed-gate request; separately audit the learned plan), and active (approved policy adds an omission veto). Active extra questions share existing region batches. The learner cannot authorize discarding protected/uncertain material or bypass purpose checks, exact source integrity/recovery, conservative JEV-wrapper behavior or the final complete-request tokenizer gate. Standard-library-only numeric JSON inference is tested against CatBoost's exported predictions; CatBoost is training-only. SHA-256 approval, scorer/schema and evaluated generation-target identity are required.

An explicit independently labelled dataset is required; no automatic vault mining, data export, self-labelling, online training or promotion is enabled. Sources sharing session/task/exact evidence are kept together across CV/holdout splits. Tests show changing holdout outcomes does not change the frozen questions/models/thresholds. Live training requires explicit consent and limits combined feature/proposal calls, rows, rounds, request volume and timeouts; these limits are not a hard dollar ceiling.

Final tests and CI

553 passed, 2 optional external-integration skips in the full training-enabled local suite and final learning CI artifact. This supersedes the earlier 551/102 count in the implementation-stage PR description: there are 104 new evaluations versus the 449-test baseline.

All four final-head workflows are successful:

  • Main CI: Python 3.10–3.13, Windows, Ruff, Rust, wheel/sdist, Twine and release verification. Normal CI intentionally does not require CatBoost; the optional fitting module is skipped there.
  • Learned policy verification: actual CatBoost fitting, full suite and three-repeat synthetic benchmark.
  • ContextEngine verification: both existing pinned Hermes snapshots.
  • Context IR verification: existing regression workflow.

Downloaded, SHA-256 verified and inspected the final artifacts—not only green statuses. Both Hermes reports contain 135 passed / 0 failures / 0 skips, all native call-scope assertions true, and main-generation smoke 14,531 → 4,051 tokens with exact recovery and unchanged full host history. Each 120-evaluation old engine benchmark reproduces all original token totals exactly; all transformations are non-enlarging and the engine's visible-answer/target checks remain 30/30. No new LCM comparison is claimed.

Cross-platform defect caught and fixed

The first Windows job exposed text-mode CRLF translation invalidating the policy approval hash. The runtime rejected the mismatch and preserved history. The final writer emits and hashes identical UTF-8 bytes on both atomic-link and exclusive-create paths. Two platform-independent regression tests simulate newline translation and both paths. Actual final Windows CI now passes; checksum enforcement was not weakened.

New actual-fit synthetic benchmark

160 synthetic omission experiments (128 development, 32 holdout), two feature proposals, real CatBoost fitting. The first uninformative proposal is rejected; the useful revised question is accepted. Training uses 36 fixture JEV batches plus two fixture proposer calls. The fitted policy is temporary, not shipped or automatically deployed.

Target tokenizer Full request Fixed gate / shadow Active learned policy Required exact spans visible, fixed → active
GPT-4o 8,150 1,716 3,325 0/8 → 8/8
GPT-4 8,147 1,696 3,309 0/8 → 8/8

All 18 deployment trials preserve protected boundaries and exact recovery, never enlarge the original full request, and make zero extra fixture calls on identical retries. Active retains all required spans while using 59.20% / 59.38% fewer tokens than full history. It is intentionally larger than the incorrectly pruned fixed result, not a claim of extra reduction versus that result.

Final CI median local off/shadow/active latency: 231.897 / 327.408 / 310.514 ms (GPT-4o) and 217.912 / 369.162 / 351.991 ms (GPT-4). Deployment uses 3 fixture batches in off/active and 6 in shadow. The active induced recovery append/resend is 3,577 / 3,561 input tokens. These are runner-local times and an induced recovery probe, not live service latency or a full Hermes network transaction; the committed README separately records local-container timings.

The dataset, JEV/proposer answers and recovery-cost labels are synthetic; the fixed gate was deliberately given weak scores. This proves executable learning, revision and inference wiring, not real JEV calibration, real-model answer quality, representative error rates or money savings. Zero paid API calls were made. Production activation still needs a representative independently labelled, target-specific dataset and a reviewed policy. Finite holdout eligibility is not a statistical safety certificate; existing unresolved protected-history overflow still depends on host/provider enforcement.

Artifact verification

  • Final learning artifact 10976401372: 3f23d53814f31dfae7c97aaf98535297b8c4dfbcfbed60d3be43df99fafd7b2f
  • Final package artifact 10976271511: 204b60ac7ef8fc11ff5b09ec84d0e1fc643a383af3fa743cd49c829e1686aab9
  • Final Hermes baseline artifact 10975814855: 5c82eb2d86076a62d203d3f6a1268e9f62c45ab6f4776714bf181b0f69c0398d
  • Final Hermes scope artifact 10975319730: 8cfa322e5db660177b30cff5ba7e2c95c5df723fefda4781bd8380ae3195edc0

The final CI source distribution matches all 28 locally tested packaged-file hashes; wheel source contents and both archives pass release verification. Wheel SHA-256: 6734e90ed18f4f6cec228d234c251bf89e911c89cf6b894063c89f5b5f3ba169; sdist: 260168c4c8941a843c65bbea69591b3a09a726aa6f965e7897ed3d86ca51c2c5.

README, configuration, security, migration, JEV roles, changelog, Python/Cargo versions, release-verifier rules and wiki/release-note sources are updated. Temporary transfer/correction workflows are absent from the final tree. Main, published releases, registries, live wiki and running Hermes remain unchanged. Ready for owner review before release.

AronAxe and others added 4 commits September 29, 2026 03:27
… dashboard

Add bounded real-browser and current-Hermes backend checks. Remove temporary development/transfer workflows. Keep v0.11.0 in PR #19 only; no main, release, registry, live wiki or running Hermes changes.
@AronAxe AronAxe changed the title v0.11.0: Hermes ContextEngine, call-scope safety and learned JEV omission-risk policy v0.11.0: Hermes ContextEngine, learned JEV policy and per-profile token dashboard Sep 29, 2026
…ssets

The installer intentionally normalizes UTF-8 text assets to LF. Test both checkout newline forms and byte-exact preservation of the user's existing CRLF configuration. No runtime or accounting change.

AronAxe commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

Dashboard completed and verified — v0.11.0 candidate remains unmerged

Final head bf861413728957be6925202fae0e0e6b559c2e64, same PR #19 / feat/hermes-context-engine-v0.10.0. The release remains v0.9.0 and main remains b87969b42e02fcdd119fe8d3dce12e8ede3fac6b. No merge, publication, live wiki update, running Hermes change or paid model call was performed.

User-facing additions

  • Local dashboard on http://localhost:7474: opt-in token-terminator dashboard, responsive desktop/mobile interface, per-profile/bot filtering, aggregate totals, a 14-day input-savings trend, model/rate breakdown, measurement coverage and recovery-read counts. It reads existing accounting only; no model calls, frontend build, vault-content inspection or extra runtime dependency.
  • Native Hermes Desktop bottom status bar: TT ↓ … counter opens an upward summary popover. It uses the supported statusbar.right contribution and the native authenticated plugin API, not raw cross-origin localhost requests. Backend profile, connection and cache identities are separate; stale responses after profile switches cannot relabel another bot's totals. The popover works without the local dashboard process running.
  • Input/output separation: exact measured input savings, prepared input and host-reported input/output are separate. Output generated is not output saved. The latter stays “Not measured” because TT has no valid counterfactual answer-output baseline. Native tool-output reductions are not miscounted as generated-output savings.
  • API/subscription valuation: manually configured exact-model USD-per-million input/output rates produce API-equivalent input savings, output-usage value and token-weighted averages, with price coverage and provenance. Recorded actual host cost is separate. Subscription/API-equivalent value is not an invoice reduction, subscription quota estimate, net saving, or proof that the monthly fee fell. Unpriced/mixed-model data remain unknown rather than guessed. No live pricing API or new key is required.

Attribution and safety

The native integration exposed an existing profile-home precedence issue: TT could use the launch HERMES_HOME instead of Hermes' task-local profile home. The lookup now respects hermes_constants.get_hermes_home() first, preserving standalone/environment fallback and explicit TT path overrides. Tests exercise the actual profile dependency and verify that context is restored afterward.

Historical shared/mismatched profile ledgers are reported as ambiguous, not reassigned to the default bot or migrated silently. Duplicate/hardlinked database mappings are rejected. Exact request identities are deduplicated; pipeline stages, turn/session counts and character-only estimates are not added to exact totals.

The reader uses bounded read-only SQLite queries and cached refreshes. It returns accounting, not conversation text, artifact bodies, keys or local paths. Missing/busy/corrupt sources are marked without hiding healthy profiles. Native API configuration cannot escape the authorized profile home. Standalone binds only to 127.0.0.1, rejects unexpected Host/Origin/cross-site requests, exposes only GET routes, and has restrictive CSP/no-store headers. It is not authenticated against other local users/processes and must not be publicly proxied.

Installation after installing this candidate in Hermes' Python environment

token-terminator install-dashboard
token-terminator dashboard

Open http://localhost:7474. install-context-engine also installs the managed dashboard assets. Neither installer changes the selected context engine or enables a plugin automatically. Enable token-terminator in Hermes' general plugin list, restart the gateway, then enable its Desktop half under Capabilities -> Plugins and reload Desktop. Install in each profile home where required. The standalone page aggregates local Hermes profiles by default; explicit source mappings support other compatible TT bot stores.

The Desktop counter follows the active gateway profile, not an independently focused tiled bot. Remote connections use the remote authenticated plugin API; the UI does not pretend local port 7474 belongs to a remote host. Launch/forward the dashboard on the appropriate machine when needed. Full configuration and definitions: docs/DASHBOARD.md, examples/dashboard.json; README/security/migration/changelog/wiki sources updated.

Final verification

611 passed, 2 optional external-integration skips in both the local full training-enabled suite and downloaded final learning CI report. This adds 58 dashboard/attribution tests to the earlier 553 baseline. All five final-head workflows succeeded:

  • Main CI: Python 3.10–3.13, Windows, Ruff, Rust, packaging and release verification.
  • Dashboard verification: 58/58 tests; actual localhost Chromium desktop/mobile page including HTTP/CSP, profile filtering, exact totals, hostile-label rendering, stale state, zero browser errors and zero external requests.
  • Learned-policy verification: real fitting/full suite; prior synthetic deployment token totals reproduced unchanged.
  • ContextEngine verification: both pinned Hermes integrations, 135/135 engine/scope tests each, unchanged 120-evaluation token totals per pin; main fixture still 14,531 -> 4,051 with exact recovery and untouched history.
  • Context IR verification: success.

Current Desktop/backend contract was inspected and exercised against Hermes fd0b98f6256446a9115c54f1a92ace5ea74c929f: actual discovery/API mount/allowlist/profile dependency and real React ESM/rendering/query contracts pass. A full Electron click-through and complete gateway authentication end-to-end session were not run; these limits are explicit in the artifacts. Browser screenshots contain labelled synthetic QA data, not Aron's actual savings. No performance/financial improvement is inferred from fixture numbers.

Windows initially caught a test comparing CRLF checkout bytes with the installer's intentionally LF-normalized text. The final test covers both LF and CRLF resources and proves byte-for-byte preservation of an existing CRLF user config; no runtime/accounting change or assertion weakening was used.

Downloaded artifact verification

All final artifacts were SHA-256 checked and their reports inspected:

  • Dashboard 11009665819: 3a3833940793578355e5fa099285cf5aaa70c1e4e3b725b52c32eb374030f0fe
  • Learning 11009626594: 3da8af6024959a03fcae1ea97ab6d5ad504c122f824b65b6e3da7ab06aafae5c
  • Packages 11009219536: 2d2002b19dba1b9021640e0ae7d8f5854a069c4dcc08a4124bf71f45fcee2757
  • Engine baseline 11009715838: bc1d27e893e12fbe6355dfa57f076f36e5876ec776d957d9cf9ca52edfc49599
  • Engine scope 11009576632: 20400ccadac078aed5a963ae99dd6e2f0699ec3ef46b98ff51d0d1ce38d0fa2c

The source distribution matches all 24 locally verified packaged dashboard-file hashes; the wheel matches all 10 changed runtime/asset hashes. Both archives pass release verification. Wheel SHA-256: 6f3bba86cc202dcfc9345ff90ee81fcc0c210ee7edaa9ca356f60db3ad93ddc7; source: f75ad9d3844ea59015e92ececca04168c126109dd3b0aa56e6fd89bfaf0e17c1.

Temporary dashboard development/transfer workflows and payloads are absent from the final tree. Ready for owner review; still no merge or release.

AronAxe and others added 5 commits September 29, 2026 05:31
Use the complete curated release notes instead of only the last changelog addition. Upload verified SHA256SUMS alongside wheel/source; refresh the manual crate target. Remove temporary documentation workflow. Runtime, tests and Terminator artwork remain unchanged from the verified dashboard candidate.
Refresh the crates.io README and version examples without changing Rust code. Correct stale review-only wiki instructions and list all managed Desktop/backend adapter files for rollback. Preserve prior release notes and exact-evidence caveats.
@AronAxe AronAxe changed the title v0.11.0: Hermes ContextEngine, learned JEV policy and per-profile token dashboard v0.11.0: ContextEngine, learned JEV policy & Observatory Sep 29, 2026
@AronAxe
AronAxe merged commit df235a9 into main Sep 29, 2026
12 checks passed

AronAxe commented Sep 29, 2026

Copy link
Copy Markdown
Owner Author

Released: v0.11.0 — Context, learning & observability

Owner-approved merge and publication completed September 29, 2026.

  • Verified review head: 1a0f0fc278bf47dc94ce9061a68f1fb7bdb0b549.
  • Merge / release tag commit: df235a96a9e2aa636d46a194dc2ea4281da9e2c6.
  • Published GitHub release v0.11.0, ID 398807906, is neither draft nor prerelease. The tag and target commit match the merge.
  • crates.io 0.11.0 is published; registry version endpoint independently confirms it (version ID 3352833, created 2026-09-29T03:46:48.108073Z). The registry's rendered README also contains the updated v0.11.0 interoperability scope and install instructions.
  • Live wiki and release page were retrieved independently after publication. A remaining old shared-footer version label was corrected in documentation-only main commit 18f4045e7341c6671bc6c14214ab3e3ffdd1105f; its live raw footer now says v0.11.0. This did not move or modify the release tag/artifacts.

Release presentation

README, complete release notes, version examples, wiki navigation, migration/security and Rust guides now describe the shipped product rather than the review branch. The unshipped v0.10.0 milestone is included in v0.11.0. Two accessible self-contained SVGs show both runtime modes and the external learning loop:

  • docs/assets/architecture.svg — purpose-first authorization, engine versus middleware ownership, bounded JEV/learned selection, existing mechanisms, IR, exact recovery, final gate and Observatory.
  • docs/assets/learning-loop.svg — labelled exact-source experiments, System-2 question revision, JEV features, CatBoost fitting, grouped development validation, frozen holdout and explicit deployment.

The release-head distribution was compared with the prior verified dashboard candidate: all 47 runtime/source assets, 36 test files and 35 benchmark files are byte-identical. The three original Terminator artwork files (hero.webp, judgement-day.webp, mark.svg) are also byte-identical. Both SVGs were rendered and visually checked. The v0.9.0-and-earlier changelog tail is unchanged.

Final verification

All five review-head workflows completed successfully before merging:

  • CI: Python 3.10–3.13, Windows, Ruff, Rust, packaging and release verification.
  • ContextEngine: both pinned Hermes contracts.
  • Dashboard: accounting/native integration and real-browser checks.
  • Learned policy: full optional-training suite and bounded synthetic benchmark.
  • Context IR: existing regression checks.

The downloaded final learning artifact 11012091557 has SHA-256 491d8cad4b25530dcd589a833d2f3018c724fd16d7255d31b6c3c29eddc95ae2. Its JUnit reports 613 collected, 611 passed, 2 skipped, 0 failures, 0 errors. The release-head package artifact 11011333491 also passed checksum verification (8697909a44cd3f7386b424a83b36c505afa857c0110fecd675849e9199a0e114). A documentation test caught the missing explicit current-version migration command during polish; the document was corrected, not the test.

All jobs in the released commit's post-merge CI and Context IR verification passed, including Windows. Publication jobs also completed successfully:

Published assets / integrity

The publication workflow built, checked with Twine/release verifier, and uploaded the wheel, source distribution and SHA256SUMS. The publicly retrieved checksum manifest matches the GitHub asset digests:

412a45b9ccadd2451b85aac69e061d6e84e8d5cbf1ec1219d4bbb94ebc3d7601  token_terminator-0.11.0-py3-none-any.whl
a9113c03be053ce1b4f56e96e7acba4802825ab88e2707f91ac2ac4bf2532973  token_terminator-0.11.0.tar.gz

Manifest SHA-256: d35b2e8a6b66f7f29561103f4ed9dadd2db6f7a0905e93f887313d73054bec32 (204 bytes). The GitHub release has exactly these three uploaded assets; source-code archives are additionally supplied by GitHub.

Boundaries unchanged

This is publication, not installation or activation. No running Hermes profile, selected engine, private vault, credentials or learned production policy was modified. Optional features remain opt-in. No paid inference tests were run. Synthetic evidence/learning results remain labelled as such; output savings remain unmeasured, subscription valuation remains API-equivalent, and unresolved protected-history overflow still needs host/provider enforcement. The Rust crate remains the interoperability companion, not a Python-runtime port. v0.9.0 and prior releases remain untouched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant