Skip to content

release: v0.2.3 (v2026.5.9) — methodology-first landing + multimodal vision + provider polish - #181

Merged
XelHaku merged 1053 commits into
mainfrom
development
May 10, 2026
Merged

release: v0.2.3 (v2026.5.9) — methodology-first landing + multimodal vision + provider polish#181
XelHaku merged 1053 commits into
mainfrom
development

Conversation

@XelHaku

@XelHaku XelHaku commented May 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Third same-day patch over v0.2.2. Cuts to deploy the methodology-first landing rewrite to www.gormes.ai (deploy-gormes-www.yml only fires on push to main).

Headlining changes

  • Public site — methodology-first positioning. Landing hero, title, methodology section, and proof-strip differentiator chips reframed to lead with TrebuchetDynamics' autonomous-porting methodology and the ratified v1 differentiator (30 Hermes skills · 1 Go binary · Termux + Windows-without-Python + locked-down corp Linux). Hermes parity demoted from lede to supporting evidence per docs/content/building-gormes/strategy/success-plan.md. deploy-gormes-www.yml content guards repointed to match.
  • Multimodal vision passthrough. Telegram photo attachments → image_url content parts on the kernel turn message; admission gate exempts image bytes from text MaxBytes; DecideImageInputMode + path hints wired into the channel→kernel submission; vision-unsupported turns auto-retry text-only.
  • Voice STT. Telegram voice STT HTTP fallback (Groq priority), filed pure-Go WASI exploration row, first wazero smoke harness + whisper.cpp WASI module discovery fixture.
  • Provider / auth / runtime polish. Fallback credential aliases preserved, config comments preserved on set, generic timeout classification, file-tool shell+python+structured lint evidence, FAL image-gen binding, OpenRouter Pareto plugin, shell completion command, Telegram placeholder default, curator rename summaries, proxy replay metadata fix.
  • Kanban. Board pinning for chat tools, notify delivery engine, worker log command.

See CHANGELOG.md for the full annotated list.

Why a release vs a plain merge

PR #180 tried to merge dev → main without a version bump but hit 11 conflicts created by today's v0.2.2 squash-merge (2 real code files: internal/config/config.go, internal/tools/file_lint_delta_test.go; 9 regenerated mirrors). The release lane handled the main → dev fold cleanly:

  • All 9 regenerated mirrors → take dev (strictly newer; dev is downstream of v0.2.2)
  • Both code files → take dev (pure dev-only additions; main had nothing in those slots — Telegram notifications config, JS shell-lint test suite)
  • Merge commit cee6308c8 records the history join with no actual file changes

Workflows that fire on merge

  • release.yml (tag-triggered) — fires after I tag v0.2.3 on main; rebuilds binaries, publishes GitHub release with checksums + SBOMs + install.sh + install.ps1
  • deploy-gormes-www.yml — Cloudflare Pages publishes the new methodology hero (the new 998768b00 content guards must pass)
  • deploy-gormes-docs.yml — Cloudflare Pages refreshes docs.gormes.ai
  • ci.yml — full test gate
  • oci.yml — builds + smoke-tests amd64/arm64 OCI images (sha-suffixed local tags, not pushed to a registry)
  • www-mirror-sync.yml — progress.json mirror parity check (also runs on this PR)

Test plan

  • go test ./... -count=1 — full repo green
  • go run ./cmd/progress validate — 8 phases ok
  • git diff --check — clean
  • npm run build (landing) — clean, 2 pages
  • LANDING_E2E_PORT=8181 npm run test:e2e (landing Playwright) — 6/6 passed across desktop + 4 mobile viewports (port 8080 was occupied by an unrelated local mega-bot; codexu's 22ce092f5 added the LANDING_E2E_PORT env override exactly for this case)
  • npm run test:e2e (docs/www-tests Playwright) — 19/19 passed
  • go test ./... -count=1 (legacy go-renderer) — green
  • CI on main after merge
  • release.yml tag workflow ships GitHub release artifacts (install.sh + install.ps1 + checksums + SBOMs)
  • deploy-gormes-www.yml reaches "Verify homepage content" + Cloudflare Pages deploy steps without grep failures
  • gormes.ai serves the new methodology hero

XelHaku added 30 commits May 8, 2026 03:20
- internal/i18n/: core package with T(), language resolution
  (explicit lang arg > GORMES_LANGUAGE env > SetConfigLanguage > en),
  YAML catalog loading with dotted-key flattening, 8-language
  support (en/zh/ja/de/es/fr/tr/uk) with full alias table
- locales/: 8 YAML catalogs ported from hermes-agent/locales/
  covering approval prompts and gateway slash replies
- internal/config/config.go: add display.language to DisplayCfg
- 15 tests: fallback chain, catalog parity, format substitution,
  env/config resolution, missing file, broken YAML
…mes-agent

- All-topic Hermes/Gormes parity sweep: i18n identified as
  source-backed missing feature (Hermes has agent/i18n.py with
  8 languages; Gormes had zero i18n)
- progress.json: added Phase 5.W i18n row (P2, builder-ready),
  fixed Kanban in_progress row phantom fixture paths (removed
  non-existent internal/gateway/kanban_command_test.go,
  internal/tui/kanban_slash_test.go, internal/dashboard/;
  pointed at real files)
- 23 vague planned rows identified (no write_scope) for
  future sharpening
- Kanban dashboard: capabilities endpoint tests, dashboard.go,
  dashboard_contract_test.go, runs.go from ongoing Kanban work
- hermes-agent: submodule bumped to a3131862b (upstream parity
  sweep baseline)
- Regenerated all progress-driven docs and site data
  (go run ./cmd/progress write)
runRegistry.stop() now records a typed run.stopped lifecycle event
into the SSE backlog before closing subscriber channels so SSE
consumers see a terminal event symmetrical with run.completed and
run.failed. Fleet automation surfacing run lifecycles depends on
this typed terminus.
XelHaku added 28 commits May 9, 2026 17:34
The deploy-gormes-www.yml content guards still required the pre-rewrite
hero copy ("AI agent runtime in one Go binary.", "An autonomous engineering
loop ports Hermes to Go, every day.", "HOW IT IS BUILT") that 95864c2
removed. With those guards stale, the next push to main would fail at the
"Verify homepage content" step before reaching the Cloudflare Pages deploy.

Repoint positive grep assertions at the new methodology-first hero strings
and add the old phrases to the negative-grep list so future drift back to
parity-first copy fails the deploy instead of silently shipping.
# Conflicts:
#	benchmarks.json
#	internal/config/config.go
#	internal/tools/file_lint_delta_test.go
#	webpages/docs/content/building-gormes/architecture_plan/_index.md
#	webpages/docs/content/building-gormes/architecture_plan/progress.json
#	webpages/docs/content/building-gormes/contract-readiness.md
#	webpages/docs/data/benchmarks.json
#	webpages/landing/legacy/go-renderer/internal/site/data/benchmarks.json
#	webpages/landing/legacy/go-renderer/internal/site/data/progress.json
#	webpages/landing/src/data/benchmarks.json
#	webpages/landing/src/data/progress.json
Third same-day patch over v0.2.2; shared date alias follows the v0.1.06 /
v0.1.07 and same-day v0.2.1 / v0.2.2 precedent for back-to-back releases.

Cut to deploy the methodology-first landing rewrite to www.gormes.ai
(deploy-gormes-www.yml only fires on push to main). Riding along: the
multimodal photo passthrough + admission gate, native image input mode
wiring, vision-unsupported retry, Telegram voice STT HTTP fallback, the
first WASI STT exploration rows, provider/auth/runtime polish (config
comments preserved on set, generic timeout classification, file-tool
shell+python+structured lint evidence, fallback credential aliases,
proxy replay metadata, FAL image gen binding, OpenRouter Pareto plugin,
shell completion command, Telegram placeholder default, curator rename
summaries), and the kanban suite (board pinning, notify delivery engine,
worker log command).

See CHANGELOG.md for the full annotated list.
@XelHaku
XelHaku merged commit b2a6708 into main May 10, 2026
8 checks passed
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