Release v0.1.06 (v2026.5.7) — The Pivot Release - #173
Merged
Conversation
Add retry logic to SendThread/SendThreadReply/SendThreadChatAction: - Thread-not-found errors retry once without message_thread_id - Non-thread BadRequest fails immediately (no retry) - TimedOut never retries (avoids duplicate messages) - Transient NetworkErrors bounded to 3 attempts - New helpers: isThreadNotFoundError, isTimedOutError, isTransientNetworkError TDD: 15 new tests across thread_fallback_test.go + send_retry_test.go. Matches Hermes b816fd4e2 _is_thread_not_found_error retry loop semantics.
Row status: planned→complete. Planner pass: sharpened contract_status draft→validated, updated ready_when/not_ready_when to reflect completed thread-aware send seam dependency. Regenerated all progress-derived docs via go run ./cmd/progress write. 720 complete, 49 planned remaining.
Phase 2 has all 21/21 subphases and 73 routing/context rows shipped. Tests TestLoad_RealFile and TestLoad_RealFile_Phase2ExecutionQueue were asserting in_progress for Phase 2 and 2.B.5 respectively; both are now complete. This restores CI green.
Port Hermes BROWSER_SESSION_INACTIVITY_TIMEOUT (default 300s) to Gormes as a BrowserSessionTracker with background reap goroutine. TDD delivers six fixtures: idle reaping, active preservation, reap-interval ticking, env-var override, nil-backend safety, and close-failure evidence recording.
All-topic parity sweep (CLI/TUI, provider/auth, gateway/channels, tools, sessions/memory/Goncho, install/runtime, browser automation, docs/public, release/operator) identified browser inactivity cleanup as the highest-impact source-backed gap. Added P2 row under 5.C with contract, write_scope, test_commands, and Hermes upstream ref. Regenerated all progress surfaces.
Completes Phase 6.L 'Skill validation on load with execution proof' (P2): - ForceLoad field on SkillValidator persists validation errors while allowing operator override. - ValidateAsync and ValidateCanaryAsync run in background goroutines with channel-based result delivery (<500ms guarantee). - ValidateCanary uses language-specific minimal safe inputs (python, bash, javascript) to catch gross syntax/import errors quickly. - ForceLoadMsg formats human-readable force-load explanations. - 13 new tests covering: force-load on/off, async success/failure, canary success/failure, fallback for unknown languages, duration, and ForceLoadMsg content verification.
…brellas Parity sweep (2026-05-07) findings applied: - Phase 6.L 'Skill validation on load with execution proof' (P2) marked complete. - Phase 5.O deprecated CLI profile umbrella marked complete (replaced by siblings). - Phase 5.D Multimodal in/out umbrella closed (all children complete). - Regenerated progress-driven docs and landing site progress data.
Convert the in-repo hermes-agent reference checkout from a gitignored side- clone into a tracked submodule pinned to NousResearch/hermes-agent main. Local mods on the previous side-clone (Karpathy guardrails template added to AGENTS.md/CLAUDE.md by onboarding tooling) were not upstream work and were backed up to /tmp before resetting. The submodule now matches upstream HEAD exactly so the gormes-hermes-parity sweep classifies against current truth instead of a 3-day-stale checkout.
Teach gormes-hermes-parity to update the in-repo hermes-agent submodule to upstream main HEAD before reading parity references, and to pass that bumped sha through to gormes-git when builder rows land. Falls back to fetch+ff-only for legacy clones, no-op if absent. Prevents stale-baseline classification.
Remove the gitignore entry that hid the previous side-clone, and replace it with a marker comment pointing to .gitmodules. Without this, the submodule worktree would still be ignored at the parent level and confuse contributor tooling.
Mark 'Skill code execution runtime' (P2) and 'Skill dependency resolution and composition' (P3) as complete with implementation evidence and passing test verification. Both rows had full Go implementations on disk (internal/skills/code_executor.go, dependency_resolver.go) with passing tests but were incorrectly marked as planned in progress.json. Evidence: 4 code executor tests (success, error exit, empty code, default timeout) + 5 dependency resolver/composer tests (linear, circular, missing, compose, validate chain) all pass. Regenerated progress surfaces.
…weep
gormes-planner pass over Hermes releases v2026.4.8..v2026.5.7
(v0.8.0..v0.13.0). Adds six progress.json rows materializing the
highest-leverage gaps surfaced by the sweep, with full builder contracts
(contract, contract_status, slice_size, execution_owner, trust_class,
degraded_mode, fixture, source_refs, ready_when, not_ready_when, blocked_by,
unblocks, acceptance, write_scope, test_commands, done_signal, note,
provenance):
- 5.Q P2/medium Provider client lazy-init for TUI cold-start budget
(v0.12.0 #17046 lead of the ~57% cold-start cut family)
- 5.I P2/small Plugin lifecycle hook: transform_llm_output
(v0.13.0 #21235)
- 5.D P2/medium Native video_analyze tool contract (v0.13.0 #19301)
- 5.M P1/medium Kanban worker heartbeat, reclaim, and zombie detection
(v0.13.0 #21183, #21214, #20188, #20410)
- 7.E P2/small Google Chat shared-chassis platform adapter seam
(v0.13.0 #21306, #21331)
- 5.J P0/small Auth state TOCTOU close + redaction default-on parity
(v0.13.0 #21193, #21194, #21241; reverts v0.12.0 #16794)
Each row's `unblocks` field names sibling work explicitly deferred from this
pass (cold-start mtime cache / tool memoize / pattern precompile,
pre_gateway_dispatch / pre_approval / duration_ms hooks, Gemini video
transport, Google Chat transport binding, etc.) so future planner picks have
an obvious next step. Provenance is recorded as the schema struct
(origin_type=upstream); upstream_ref left empty pending symbol-level mapping
when each row is picked up by a builder.
Derived surfaces regenerated by `go run ./cmd/progress write`. Validated by
`go run ./cmd/progress validate` (7 phases ok) and
`go test ./internal/progress -count=1` (ok).
Strategic pivot for Gormes from "Hermes in Go" parity chase to TrebuchetDynamics reputation play. The methodology is the product; Hermes-parity is the receipt that proves the methodology works. New strategy doc: docs/content/building-gormes/strategy/success-plan.md - North Star: "TrebuchetDynamics is the team that figured out how to autonomously port large Python projects to Go in production. Gormes is the receipt." - Quarterly roadmap (Q1 foundation → Q2 toolkit OSS → Q3 sharp v1.0 → Q4 compound). - 30-day action sprint (TD blog, README rewrite, writeup #1 draft, sharp differentiator decision, $/iteration cost telemetry). - Operating principles: publication cadence > commit cadence; solo devs win on opinion not scope; the loop is the product; cost discipline. - Reputation metrics scoreboard replacing row-count vanity metrics. - Risk register including publication paralysis, identity drift, loop spend without learning. New progress.json Phase 8 with 7 subphases and 10 builder-tractable rows (all gormes-owned, provenance.origin_type=gormes): - 8.A Publication Infrastructure P1 TD engineering blog scaffolded and live P3 TD social presence connected to blog feed - 8.B Repository Messaging P1 README rewrite to methodology-first positioning P2 gormes.ai landing page positioning audit - 8.C Engineering Writeups P1 Engineering writeup #1: autonomous Hermes-porting loop - 8.D Sharp v1.0 P0 Sharp v1.0 differentiator decision P1 Single-binary cross-platform release pipeline - 8.E Toolkit Extraction P2 Agentic-porting-kit repo scaffold - 8.F Cost Discipline & Loop Economics P1 Loop $/iteration cost metric in status file - 8.G Community & External Contributions P3 Built-with-Gormes page scaffold Each row carries the full builder contract (contract, contract_status, slice_size, execution_owner, trust_class, degraded_mode, fixture, source_refs, ready_when, not_ready_when, blocked_by, unblocks, acceptance, write_scope, test_commands or no_test_required, done_signal, note, provenance). Strategy-only rows that need operator taste (writeup voice, differentiator decision) explicitly carry no_test_required with a human-checked acceptance contract. Validated: go run ./cmd/progress write/validate (8 phases ok), go test ./internal/progress (ok), git diff --check.
…alization) Materializes progress.json row 8.B "gormes.ai landing page positioning audit" under the methodology-first North Star captured in success-plan.md. Hero changes: - New title: "Hermes-Compatible AI Agent Runtime in One Go Binary". - New headline: "AI agent runtime in one Go binary." (outcome-first per landing-quality-rubric). - New sub-lines lead with Hermes-ecosystem compatibility, then introduce the autonomous engineering loop as the trust play. - New kicker: "OPEN SOURCE · MIT LICENSE · AUTONOMOUSLY PORTED FROM HERMES". - Secondary CTA changes from "View on GitHub" to "See how it is built" pointing at the new methodology section. - Proof strip adds "Autonomous porting loop ships daily". New section: HOW IT IS BUILT (#methodology), placed between hero and install. Contains: - A measured-loop-output metrics row (rows shipped, code base, binary) bound to benchmarks.json so it stays current. - Four pillar cards: validation-gated commits, progress.json as system of record, Hermes is the parity oracle, reusable porting toolkit. - Link to /building-gormes/architecture_plan/. Trust posture: - Adds "Every autonomous-loop commit passes a validation gate (go test, progress validate, git diff --check) before landing" to the trust list. Top nav restructured: - "Docs" replaced with "How it is built" (jumps to methodology). - "Install" added as a top-level anchor. Playwright tests updated to match the new strings; mobile-overflow tests updated for the new headline. All 5 tests pass at iPhone SE through iPhone Plus widths. Validated: npm run build -> ok npm run test:e2e -> 5 passed go run ./cmd/progress -> validated 8 phases git diff --cached --check -> ok Other dirty paths in the worktree (kanban .go files, progress.json status updates, derived builder-loop docs) belong to the autonomous loop's in-flight work on row 5.M and will land via the loop's own gormes-git step.
The Pivot Release. Adopts the Hermes-style dual versioning taxonomy
(canonical semver tag v0.1.06 paired with date alias v2026.5.7),
captures a 12-month methodology-first strategy, and stands up Phase 8
in progress.json.
Highlights
- Methodology-first repositioning: success-plan.md is the new North
Star ("TrebuchetDynamics is the team that figured out how to
autonomously port large Python projects to Go in production. Gormes
is the receipt").
- Phase 8 (Reputation & Publication) added with seven subphases
(8.A-8.G) and ten gormes-owned builder-ready rows.
- Six Hermes-parity rows materialized from upstream v2026.4.30 +
v2026.5.7 sweep (cold-start lazy-init, transform_llm_output hook,
video_analyze tool, Kanban worker heartbeat, Google Chat adapter,
auth TOCTOU + redaction default-on P0).
- Landing page rewrite: outcome-first hero, new methodology section
with live loop-output metrics, four pillar cards.
- hermes-agent now tracked as git submodule pinned to upstream
NousResearch/hermes-agent main (sha 7e2af0c2e).
- opencode/deepseek-v4-pro builder backend added alongside codexu;
GORMES_BUILDER_BACKEND switch on the cron loop.
- Phase 6.L code executor and dependency resolver rows complete.
Versioning Taxonomy
- Canonical git tag: v0.1.06 (semver; gates with cmd/gormes/version.go).
- Date alias: v2026.5.7 (Hermes-style vYYYY.M.D, surfaced in release
notes filename header, GitHub release title, and CHANGELOG entry).
- A future row migrates the canonical git tag to the date form once
the release workflow extracts version from cmd/gormes/version.go
independently of the tag string.
Validation
go test ./... -count=1 ok (full suite)
go run ./cmd/progress validate validated 8 phases
git diff --check ok
landing build ok
landing e2e 5 passed (homepage + 4 mobile vps)
Files
- cmd/gormes/version.go 0.1.05 -> 0.1.06
- CHANGELOG.md [0.1.06] - 2026-05-07 entry
- RELEASE_v0.1.06.md Hermes-style release notes (new)
- webpages/landing/src/data/release.json
version bump for landing surface
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The Pivot Release. Adopts the Hermes-style dual versioning taxonomy (canonical semver tag
v0.1.06paired with date aliasv2026.5.7), captures a 12-month methodology-first strategy in a checked-insuccess-plan.md, and stands up Phase 8 inprogress.jsonso the autonomous loop can ship reputation-building rows alongside parity rows.Highlights
docs/content/building-gormes/strategy/success-plan.mdis the new North Star: "TrebuchetDynamics is the team that figured out how to autonomously port large Python projects to Go in production. Gormes is the receipt."transform_llm_outputhook,video_analyzetool, Kanban worker heartbeat, Google Chat adapter, auth TOCTOU + redaction default-on P0).#methodologysection with live loop-output metrics frombenchmarks.json, four pillar cards.hermes-agentis now a git submodule pinned to upstreamNousResearch/hermes-agentmain(sha7e2af0c2e);gormes-hermes-parityskill refreshes it before each sweep.GORMES_BUILDER_BACKENDswitch on the cron loop.Versioning Taxonomy
v0.1.06(semver; gates withcmd/gormes/version.goand the release workflow's tag-vs-source check).v2026.5.7(Hermes-stylevYYYY.M.D, surfaced inRELEASE_v0.1.06.mdfilename header,release.json(next iteration), CHANGELOG entry, and the GitHub release title).cmd/gormes/version.goindependently of the tag string. Until then, both labels reference the same merge commit onmain.Test plan
go test ./... -count=1— full suite passes locallygo run ./cmd/progress validate— 8 phases validatedgit diff --check— cleancd webpages/landing && npm run build— builtcd webpages/landing && npm run test:e2e— 5 passed (homepage + 4 mobile viewports)v0.1.06push triggersRelease Binariesworkflow → publish GitHub release with archives + checksums + SBOM + attestations