Hermes v0.15.2 · VPS vmi3130827 (72 containers, 3 unhealthy) · Last audit: 2026-06-05 · PASS:2 FAIL:10 UNKNOWN:1 · Tasks: NOW:58 NEXT:73 BLOCKED:4 DONE:1 · Data: /migration/status.json · Updated: 2026-06-09
Safe foundation complete · schema viewport-status-v1

Migration Execution Ledger

Plain English: The safe GitHubOps foundation tasks P0-0 through P0-8 are complete. This does not mean risky runtime changes are applied; those still need approval.

Generated: 2026-06-05T15:14:57.178090+00:00 · status.json · GitHub #196 · Live data fetched 2026-06-09

Hermes ONLINE v0.15.2 GitHub write: OK 3 unhealthy containers Telegram gateway restart pending

Current state

Safe migration foundation complete. The safe GitHubOps foundation is complete. Actual runtime/Hermes/Slack/Odoo production changes remain approval-gated.

PhaseP0 foundation · complete
Tasks modeled139
Runtime mutations applied0
VPSvmi3130827 · 72 containers
Last audit2026-06-05 · PASS:2 FAIL:10 UNKNOWN:1
/migration/status.json Machine contract (schema viewport-status-v1) · this page fetches it live at load; static values below are the committed snapshot · Hermes updates JSON only.
Live data from status.json (generated 2026-06-05T15:14:57Z, fetched 2026-06-09): Tasks NOW:58 NEXT:73 BLOCKED:4 DONE:1 (total 139) · VPS: 72 containers (3 unhealthy) · Hermes: ONLINE v0.15.2 · GitHub write: OK · Audit: PASS:2 FAIL:10 UNKNOWN:1
Content preservation guarantee: all sections from the original status page are preserved below. Live task board numbers and system health are sourced from /migration/status.json.

Task Board

Live counts from the task_board object. Numbers below update at page load from /migration/status.json; baked-in values are the committed snapshot.

58NOW — active / unlocks others
73NEXT — ready to start
4BLOCKED — needs access/approval
1DONE — verified complete
139Total tasks modeled
72VPS containers (3 unhealthy)
P0Foundation phase complete
0Runtime mutations applied

Board distribution — 139 tasks

NOW58 / 139
NEXT73 / 139
BLOCKED4 / 139
DONE1 / 139

Source: /migration/status.json · task_board object · generated 2026-06-05T15:14:57Z · bars scaled to the largest column (NEXT 73)

System Health

Hermes, VPS runtime, GitHub control plane, Cloudflare zones and the last audit run — from system_health.

Hermes ONLINE v0.15.2 VPS 72 containers 3 unhealthy GitHub write OK Cloudflare 61 zones Audit PASS:2 FAIL:10 UNKNOWN:1
SystemStatusDetail
HermesONLINEv0.15.2 · gateway restart still needed for live Telegram intake hook
VPS (vmi3130827)72 containers65 running · 3 unhealthy (saathi-app-1, origin-backend, platformx-nextcloud) · 56 without repo
GitHubWrite OKorg: viewport-corp · PAT expiry: unknown
Cloudflare61 zones21 ghost zones · bccl.la: UNKNOWN
AuditPASS:2 FAIL:10Last audit 2026-06-05 · 13 sections · 36 redacted evidence files · 1187 total redactions

New agent? Read this first

The machine contract ships a handoff pack for every fresh agent session. Read the three sources below in order before touching anything.

1HANDOFF.md
viewport-corp/viewport-os · last session/system handoff
2/migration/audit
full evidence audit
3/migration/task
execution board

Do not touch

  • old Docker/OpenClaw live services without Sam approval
  • secrets/raw Telegram sessions
  • DNS/billing/legal/destructive changes without explicit approval

Active tenants

Viewport MLG/MLH BCCL

Coordinates

GitHub org: viewport-corp
VPS: 194.163.153.171

Next priority: Activate intake-to-persistence live hook once gateway restart is approved.
Instruction files registry — 6 canonical docs (status.json instruction_files)
  • HANDOFF.md — last session/system handoff
  • Migration — main command dashboard and full research
  • Plan — phase plan, gates, evidence
  • Tasks — execution board
  • Audit — full evidence audit
  • KB index — anti-amnesia knowledge base

Slack + Odoo approval flows

This section is intentionally pinned near the top so humans and agents can immediately see where documents, support, and finance work should go.

Documents

Odoo: Documents / project document folder

Flow: Document needed → Odoo document folder → Slack approval if legal/signature → sign only after approval.

Helpdesk / warranty / legacy issues

Slack: #mlh-warranty-support, #mlh-legacy-issues

Odoo: Helpdesk

Flow: MLH issue → Slack issue thread → Odoo helpdesk ticket → evidence attached → agent suggests next action → approval if legal/financial/customer-facing.

Finance review

Slack: #mlg-finance-review

Odoo: Accounting / Invoicing / Expenses

Flow: Draft invoice/payment/expense → Slack finance review → Odoo record → approval before sending/payment/customer-facing action.

GSD + RalphLoop is active for GitHub Ops and VPS Runtime

Mode: GitHub issue → branch → artifact → validator → evidence → live status. VPS runtime remains read-only/reconciliation until RuntimeContracts, backups, rollback, and approval gates exist.

Goal

Move real business/runtime work through visible GitHub issues and acceptance criteria.

Setup

Create branch, artifacts, validator, evidence path, and rollback boundary before touching runtime.

Do / Verify / Fix

Run the smallest safe action, verify with tests or live proof, diagnose failures, then repeat.

Today’s focus — active priorities

Three priorities currently in flight, with state chips from the machine contract.

READY-FOR-UI

Replace static /status UI with Sam-built React component

Owner: Sam UI + Hermes data · Data endpoint: /migration/status.json

LIVE

Keep /migration/audit evidence public, redacted, and Claude-readable

Owner: Hermes · State: live

BLOCKED

Finish live Telegram intake hook activation

Owner: Hermes · Blocker: gateway restart approval was blocked by smart approval

Active tasks

The three task ids in the contract’s active_tasks array — two pending on the same gateway-restart blocker, one ready.

setup4PENDING

Wire classifier/capture to Telegram intake and test

Owner: Hermes

Blocker: gateway restart required to load plugin

acceptPENDING

Run all four intake acceptance tests with live Telegram evidence

Owner: Hermes

Blocker: same gateway restart blocker

status-reactREADY

Sam builds production React /status UI against /migration/status.json

Owner: Sam + Hermes

Blocker: —

Blockers

Items waiting on access or approval, with evidence links.

Live Telegram intake hook not active yet BLOCKED

Reason: Hermes gateway restart blocked by smart approval · Evidence: Issue #2

Recent failures & resolutions

What broke recently, whether it is resolved, and the fix applied or still needed.

RESOLVED: YES

Embedded Cloudflare Worker exceeded 3 MiB size limit

Fix: Switched to lightweight Worker proxying committed GitHub files

RESOLVED: NO

Hermes gateway restart blocked

Fix: Needs allowed restart window / approval

Recent completions

Verified completions with evidence links.

Full audit evidence publish + navigation redesign DONE

Evidence: redaction-report.json · Issue: #195

Still not done without approval

The foundation being complete does not unlock runtime. Every card below is an explicit decision Sam has not yet approved.

These actions remain blocked until explicit approval. No runtime mutations have been applied.
Actual Hermes mount/restart applyAWAITING APPROVAL
Runtime container fixes/restartsAWAITING APPROVAL
Secret rotations in providersAWAITING APPROVAL
Production Slack/Odoo writesAWAITING APPROVAL
Granting agents production powersAWAITING APPROVAL
Approval gate classes — migration_execution.approval_gates (status.json)
  • Hermes/gateway/container restart
  • Docker stop/restart/delete/prune/volume/data mutation
  • DNS/registrar/billing/legal/finance/customer-facing actions
  • production Odoo/Slack writes
  • secret rotation that can break live services
Structured blockers — migration_execution.current_blockers (status.json)
hermes-migration-mountAPPROVAL_REQUIRED

Fact: /srv/viewport/migration exists on VPS; /opt/data/migration missing in active Hermes · Unsafe without approval: mount/restart can kill running agents

runtime-mutationBLOCKED_UNTIL_CONTRACTS

Fact: VPS runtime has 72 containers, 65 running, 3 unhealthy · Unsafe without approval: no restart/stop/delete/prune until RuntimeContracts exist

secret-trustREGISTER_ROTATION_REQUIRED

Fact: historical secret-pattern exposure exists · Unsafe without approval: no broad autonomy until registered/rotated/scoped

Phase list

All nine P0 foundation phases, executed in order — complete (safe foundation only; gates above remain).

P0-0P0-0 GitHubOps execution ledger and live status truth
P0-1P0-1 Hermes migration evidence mount approval packet
P0-2P0-2 Secrets exposure register and rotation plan
P0-3P0-3 VPS RuntimeContracts read-only reconciliation
P0-4P0-4 Agent authority matrix
P0-5P0-5 Centralized agent registry
P0-6P0-6 CompanyOS enforcement gates
P0-7P0-7 Slack/Odoo production command-room enforcement
P0-8P0-8 Watchers and plain-English update loop

What is now in GitHub truth

The six committed foundation artifacts produced by P0-3 through P0-8.

viewport-company-os/runtime/p0-3-runtimecontracts-complete-pass.yaml
viewport-company-os/agents/agent-authority-matrix.yaml
viewport-company-os/agents/centralized-agent-registry.yaml
viewport-company-os/enforcement/companyos-enforcement-gates.yaml
viewport-company-os/integrations/slack-odoo-command-room-policy.yaml
viewport-company-os/watchers/plain-english-update-loop.yaml
Viewport OS navigation
Every page is public-readable, evidence-linked, and designed for both Sam and future agents. If content appears missing, compare against Git history and restore before changing style.
Source: /migration/status.json (schema viewport-status-v1, generated 2026-06-05T15:14:57Z, fetched 2026-06-09) · rebuilt 2026-06-10 in the unified migration design system.
No runtime/Docker/Hermes/Odoo/Slack/DNS mutation. Safe foundation only; execution gates remain. · Live data: /migration/status.json
Viewport · migration · unified shell v1 (2026-06-10) · Data: /migration/status.json · Source: viewport-corp/viewport-os
Viewport · migration · unified shell v1 (2026-06-10) · Data: /migration/status.json · Source: viewport-corp/viewport-os
Viewport · migration · unified shell v1 (2026-06-10) · Data: /migration/status.json · Source: viewport-corp/viewport-os