Skip to content

feat: integrate native Hermes Agent TUI - #6536

Open
nikhilachale wants to merge 30 commits into
OrchestratorInc:mainfrom
nikhilachale:feat/hermes-tui-integration
Open

nikhilachale wants to merge 30 commits into
OrchestratorInc:mainfrom
nikhilachale:feat/hermes-tui-integration

Conversation

@nikhilachale

@nikhilachale nikhilachale commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Code changes: +932 -22
Tests: +1065 -10
Others: +311 -4

Binary assets in this source snapshot: 5 (excluded from line counts).

Linux classic interactive TUI; exact corroborated native identity and persisted restore. Modern --tui, sticky/named/managed profiles, NULL-cwd restore, Chat and handoff excluded.

Current status

Current source snapshot: fb42974461279f1e0a931cd0bd700ce428478cf0 (base 994d609a9385152b64ea26fa218baafbe65722f7). Open for review; GitHub mergeability MERGEABLE, merge state BLOCKED. Exact-head CI: all 23/23 reported checks successful. CI run 1 · CI run 2 · CI run 3 · CI run 4. Green source CI does not establish current native/UI runtime proof or full integration readiness.

This fix created only clean isolated source worktrees and temporary review reports; it created no AO/native sessions, provider profiles or owned runtime processes. No local build, gofmt, test, fixture, provider or UI run was performed.

Historical runtime build: Historical Linux AO/UI source c5615c8494821d572649ae3847977b8aaa4fd4b8; official Hermesv0.21.6 upstream 818c13be1dc4fd28987e1e881a9408224afd4535. Final008 and failed/intermediate003–007 remain separate. Later source/platform/observer/migration/rebase follow-ups did not rerun that Linux native proof. Report · evidence index, original receipts, image/provenance hashes. Receipt SHAs/bytes are unchanged. Linux/VPS proof is not Windows/macOS native proof. Runner SHA256 8887aa2e7101b9e6d3950bfca08ffddf2e1e6c1c3f1d030c8dec2676443aecea remains historical where reported; manual/standalone proof is not a strict runner PASS.

Changes since runtime proof: The existing official Hermes icon remains mapped. Source review/platform/observer/migration/rebase follow-ups and evidence relocation are not a fresh Linux native lifecycle run. Historical local focused checks and their Windows/resource/gcc limitations remain scoped as recorded; current-head source CI is recorded separately below.

The matrix separates current verification from recorded historical passes; NOT_RUN does not erase those passes. Excluded interfaces/manual model input are deliberate supported-scope decisions.

Area Supported scope Verification Proof or reason
Registration and UI Linux classic interactive TUI; exact corroborated native identity and persisted restore. Modern --tui, sticky/named/managed profiles, NULL-cwd restore, Chat and handoff excluded. NOT_RUN Adapter/registry/API/generated/product paths are present; current Settings/task journeys not reverified.
Models Native model IDs/manual input; historical catalog/auth runner gaps retained. No strict catalog pass claimed. NOT_RUN Historical native selection separate from current picker/default verification.
Setup Official manual native install; Linux only. Settings explains unsupported non-Linux launch. NOT_RUN Installer metadata/API enum alone is not onboarding proof.
Readiness Linux-only support; non-Linux install_check_unsupported/picker disablement recorded separately from Linux native task proof. NOT_RUN Historical native proof does not qualify all advertised OS/current config cases.
Identity and logo Existing official Nous Research Hermes icon, label and avatar mapping. NOT_RUN Source branding already present; actual current avatar UI NOT_RUN.
TUI and Chat Classic TUI supported; modern --tui/Chat/handoff excluded deliberately. Historical actual AO screenshots retained. NOT_RUN Historical actual AO images; excluded interfaces are deliberate.
Permissions and instructions Process-local HERMES_EPHEMERAL_SYSTEM_PROMPT additive route; preserve user-selected personality/native safety; unsupported profiles fail closed. NOT_RUN Historical scoped PASS/limits; current live path NOT_RUN.
Lifecycle Historical Ctrl+C, Kill/control, exact persisted restore/fresh instructions, /new identity rotation; later guards need current-source requalification. NOT_RUN Historical scoped PASS/limits; current live path NOT_RUN.
Evidence Pinned historical source/native/runner/UI receipts, attempts, images and provenance; missing originals disclosed. NOT_RUN Historical evidence retained; current native/UI proof NOT_RUN. Reproduction-input limitations below remain explicit.
CI and handoff Exact source checks/merge snapshot; incomplete live qualification and historical cleanup. PASS Exact-head CI all 23/23 reported checks successful; mergeability MERGEABLE. Source CI scope only; current native/UI qualification NOT_RUN.

Historical implementation and evidence

Native /new rotates corroborated identity, but NULL-cwd conversations remain nonrestorable. Persisted restore requires matching durable workspace/history and owned identity evidence; SQLite errors remain distinct from missing history/cwd mismatch. Later source follow-ups cover pending-input echo recovery, environment bounds, special-character DSNs/read-only-recovery errors, current-bottom modal/spoof guards, observer/lifecycle consistency and guarded migration0203. Current rebase preserves both migration/catalog entries and main ACP timeout. These source changes and Windows Linux-only readiness/Electron controls do not rerun the historical Linux task lifecycle. Historical source c5615c8 and follow-up source check sets are not current Linux runtime proof. Native001–005/AO003–007 failures and incomplete blank capture remain retained. Later local focused/SQLite/Go vet/frontend checks passed in their own scope; full Windows-environment suites had unrelated failures, frontend typecheck had resource/missing-tsc gaps and race lacked gcc. No full local validation pass is claimed.

historical receipt 1

Reproduction and retained-original limitations

The pinned reports/JSON retain action/result, file/token effects, process identity, cancellation, native-history continuity and capture assertions. A complete sanitized executable reproduction bundle is not established for every manual helper: exact helper bytes/hash and invocation, applicable local-contract bytes/hash with probe argv and interrupt/readiness/draft-cleanup settings, and complete native/AO fingerprints are unavailable where not recorded in the linked receipts; recoverability of those original inputs is unknown. No missing command, contract, hash or result is invented. Later reproductions must use a new attempt and cannot replace original failed/missing evidence.

Recorded owned-process/session/daemon/Electron cleanup is historical. Source worktrees, native profiles/history, dirty scratch workspaces, binaries and raw logs were reported retained privately; a complete current inventory/location/hash and recoverability of every original class are unavailable in the public record. Current recoverability is unknown; this reporting fix reconstructs no missing input and silently substitutes none. Share sanitized artifacts only; exclude credential stores, raw DBs and provider-profile directories. Preserve the retained failures and original screenshots.

@github-actions

Copy link
Copy Markdown
Contributor

🏆 Review leaderboard

Oct 4–11, 2026 · UTC

Rank Reviewer PRs reviewed Review rounds PR comments
🥇 @illegalcall @illegalcall 31 50 10
🥈 @ronishrohan @ronishrohan 17 20 12
🥉 @Vaibhaav-Tiwari @Vaibhaav-Tiwari 13 16 7
4 @Prasad-D-Ware @Prasad-D-Ware 11 27 1
5 @nikhilachale @nikhilachale 9 22 3
6 @axisrow @axisrow 8 10 29
7 @mohakchakraborty2004 @mohakchakraborty2004 7 7 1
8 @Rishet11 @Rishet11 5 12 2
9 @Pritom14 @Pritom14 5 5 3
10 @codebanditssss @codebanditssss 4 4 2

Ranked by distinct external PRs reviewed, then review rounds, then PR comments. Self-activity and bot activity are excluded.

Show 6 more reviewers
Rank Reviewer PRs reviewed Review rounds PR comments
11 @Annieeeee11 @Annieeeee11 3 6 1
12 @harshitsinghbhandari @harshitsinghbhandari 2 4 0
13 @neversettle17-101 @neversettle17-101 2 3 0
14 @whoisasx @whoisasx 2 2 0
15 @AgentWrapper @AgentWrapper 1 3 0
16 @ApexYash11 @ApexYash11 1 2 0

@nikhilachale
nikhilachale marked this pull request as draft October 11, 2026 06:49
@nikhilachale

nikhilachale commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator Author

Final source c5615c8494821d572649ae3847977b8aaa4fd4b8: all 23 CI checks successful. Actual scoped proof report includes retained failures, exact serving-binary/generation provenance and cleanup.

Actual AO Electron hermes

These are real original VPS AO Electron captures. Unsupported native surfaces remain explicit; no strict runner PASS or unsupported history restore is claimed.

@nikhilachale
nikhilachale marked this pull request as ready for review October 11, 2026 08:34
@i-trytoohard i-trytoohard added this to the Agents & orchestration milestone Oct 11, 2026
@i-trytoohard i-trytoohard added comp/daemon Go daemon, process lifecycle, and backend control plane. enhancement New feature or request labels Oct 11, 2026
@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Harness-specific reports, JSON receipts, screenshots and provenance now live on this integration PR branch, rather than the skill PR #6509.

Evidence index with embedded screenshots and JSON links.

Historical successes, failures and scope limitations remain as recorded. Moving these files does not rerun native/AO testing or upgrade any verdict.

This is evidence relocation only. Existing tested source/native hashes and failures are preserved; the documentation commit is not a fresh runtime pass. Applicable checks run in PR CI.

Recorded harness evidence — see scope above

@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main conflicts reconciled at d68ff623e0b3, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries.

@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main conflicts reconciled at 7c10c121a918, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries.

@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main conflicts reconciled at 854f42e2ce31, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

Validation is PR CI only; current-head checks are pending until GitHub reports them. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries.

@nikhilachale

Copy link
Copy Markdown
Collaborator Author

Canonical main and the green shared ACP replay CI budget reconciled at ea2344dd4492, preserving previous source/evidence ancestry and every existing harness report/screenshot byte. Reconciliation receipt.

The shared test-only fix PR6617 had21 green applicable checks; this integration head still needs its own exact-head CI. The full20543-frame replay burst and exact-once assertions remain unchanged. No routine local suites ran. This merge does not constitute a new native/AO run or promote historical fresh/restore/provider-role proof. Harness evidence stays on this integration PR; PR6509 remains reusable guidance and linked summaries.

Comment thread backend/internal/daemon/lifecycle_wiring.go
Comment thread backend/internal/adapters/agent/hermes/hermes.go Outdated
Comment thread backend/internal/adapters/agent/hermes/hermes.go Outdated
Comment thread backend/internal/adapters/agent/hermes/hermes.go Outdated
Comment thread backend/internal/adapters/agent/hermes/hermes.go Outdated
Comment thread backend/internal/observe/activity/observer.go Outdated
Comment thread .github/workflows/harness-proof-build.yml
Comment thread backend/internal/adapters/agent/hermes/hermes.go Outdated
Comment thread backend/internal/adapters/agent/hermes/hermes.go Outdated
Comment thread backend/internal/adapters/agent/hermes/personalities.go
@nikhilachale
nikhilachale force-pushed the feat/hermes-tui-integration branch from 1e4e89d to fb42974 Compare October 14, 2026 13:36

@wesleymatosdev wesleymatosdev 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.

Re-reviewed at fb42974. All previously flagged items are fixed and verified against the current head, not just marked resolved:

  • Admission lock no longer sticks: pending clears on send error, runtime handle/launch-id change, and fast turns release via the settled-frame fallback (covered by new tests for send-error, fast-turn, echo-timeout, and generation change).
  • Native binary identity is anchored (exact-match regex on the version line) and the PATH-first probe is gone - only documented install locations are executed.
  • Read-only state DB open now distinguishes SQLITE_READONLY_RECOVERY (WAL recovery needed) from missing history, and read DSNs carry busy_timeout.
  • Composer/idle detection moved from bare prompt-substring matching to bordered-composer + dim-placeholder classification, fail-closed on partial frames; modal detection anchors on bottom-pane native chrome instead of scrollback substring matching.
  • Env-size budget accounts for NAME=, NUL, and the second copy in AO_HERMES_ORIGINAL_EPHEMERAL.
  • Migration 0203 guards both Up and Down with a verification table; the silent no-op case now fails instead of recording a bogus applied migration.
  • Observer identity resolution is gated on activity/state change or explicit continuous opt-in, resolve errors are logged, and permission-resolved carries the observed destination state.
  • Proof workflow is renamed, dispatch-only, and no longer runs on every PR.

Verified locally on the PR head: hermes adapter, activity observer, terminalui, daemon guarded-input tests, and the full sqlite suite pass with -count=1; go vet clean on the changed packages. CI green at head.

One documented residual: the integration is Linux-only by design (readiness reports install_check_unsupported elsewhere), and the VPS runtime proof is the author's evidence rather than independently re-executed here - neither is blocking for this PR.

This branch has not been deployed

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

Labels

comp/daemon Go daemon, process lifecycle, and backend control plane. enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants