Cleanup & Branch Hygiene #14

Closed
opened 2026-03-11 04:07:09 +00:00 by mik-tf · 0 comments
Owner

Cleanup & Branch Hygiene

Follow-up from #13 (Smoke Tests & Service Bug Fixes — completed) and #12 (Infrastructure Sync — completed).

All 3 service bugs fixed (#13), ~110 smoke tests green on both herodev and herodemo. This issue covers the remaining cleanup: stale files and branch hygiene.

Note: No production tier yet — herodemo serves as production for now. hero_aibroker stays on development_theme_sync — it's 2 commits ahead of development, 0 behind, no merge needed now.


Environments

Tier Gateway Port Image Container Status
dev herodev.gent02.grid.tf 8805 hero_zero:dev herodev ✓ 31 services, ~110 tests green
demo herodemo.gent02.grid.tf 8806 hero_zero:demo herodemo ✓ 31 services, ~110 tests green

VM: Both containers on same TFGrid VM at Mycelium IP 495:72fa:8ec3:9264:ff0f:c0a8:abad:234c
Registry: forge.ourworld.tf/lhumina_code/hero_zero


Build Pipeline

cd hero_services
make deploy        # dist → pack → push → deploy to herodev
Step Command What it does
1 make dist docker/build-local.sh — compiles all service repos inside rust:1.93-bookworm with lhumina_code/ and geomind_code/ volume-mounted. Whatever is checked out gets built. 1-3 min incremental, 10-15 min cold.
2 make pack docker build -f Dockerfile.pack — copies pre-built dist/ into thin debian:bookworm-slim. No compilation.
3 make push Push hero_zero:dev to forge registry
4 make update ENV=herodev SSH into VM, pull image, restart container

Promotion: make demo tags :dev:demo, pushes, deploys to herodemo.


Smoke Tests

cd deploy/single-vm
make test ENV=herodev     # or ENV=herodemo
Suite Tests Coverage
smoke_gateway.sh ~47 SPA routing, auth flow, inspector discovery, RPC discovery, MCP gateway, WebDAV, SSE, health checks, UI pages
smoke_test.sh ~52 All UI health endpoints, page content, RPC calls, WASM island RPC, server-side health, socat-bridged services
smoke_theme.sh ~14 hero:theme postMessage listener in all 14 iframe-embedded services

Branching & PRs

development_{name}     ← work freely, many commits, push often
    ↓ PR with "closes #N"
    ↓ Forgejo "Squash commit" merge
development            ← one clean commit per issue

Rules:

  • Same branch name across all affected repos
  • Never rebase — merge development INTO feature branch if needed
  • PRs into development: Squash commit
  • PRs into main: Create merge commit (preserves release boundary)
  • Commit message format: https://forge.ourworld.tf/lhumina_code/home/issues/{N} — Description

11-Step Pipeline (3 human gates)

Step Action Who Gate
1 Fix code on development_{name} in each repo AI
2 make deploy (1-3 min incremental) AI Must compile
3 make test ENV=herodev (30 sec, ~110 tests) AI
Iterate steps 1-3 until green. Push freely. AI
4 Human verifies herodev Human ✓ Must confirm
5 Create PRs: development_{name}development with closes #N AI Only after step 4
6 Squash merge PRs on Forgejo AI/Human
7 git checkout development && git pull all repos, make deploy AI Clean build
8 Human verifies herodev (clean merged code) Human ✓ Must confirm
9 make demo (tag :dev→:demo, deploy herodemo) AI Only after step 8
10 Human verifies herodemo Human ✓ Must confirm
11 Update issue log AI

Tasks

1. Infrastructure Cleanup

  • Delete stale hero_services/Dockerfile (old hero_zero, replaced by Dockerfile.pack)
  • Delete stale hero_services/Dockerfile.prod (SSH-based BuildKit, replaced by Dockerfile.pack)
  • Fix dist/ WASM root-owned files (build-local.sh runs as root in container, leaves root-owned files on host — add chown at end of script)

2. Branch Cleanup

  • Delete development_mik5 branches across all repos (stale from issue #12) — 10 repos
  • Delete development_mik6 branches across all repos (completed in issue #13) — 3 repos
  • Run cargo test on zinit repo — 3 pre-existing failures in binary_signals (timing-sensitive integration tests, not regressions)

Not in Scope

  • hero_aibroker development_theme_sync — 2 commits ahead of development, 0 behind. No merge conflict, no urgency. Will merge when there's a reason to touch aibroker.
  • Production tier (heroprod) — herodemo serves as production for now.
  • CI pipeline — deferred to a future issue.

Completed in Previous Issues

Issue #12 — Infrastructure Sync:

  • SSH→HTTPS migration, Docker [patch] removal, zinit OnceLock fix
  • Fast local build pipeline (build-local.sh + Dockerfile.pack)
  • Both herodev and herodemo deployed (31 services each)

Issue #13 — Smoke Tests & Service Bug Fixes:

  • Fixed hero_redis_ui HTTP 500 (template path in Dockerfile.pack)
  • Fixed hero_indexer_ui HTTP 404 (TCP→Unix socket default)
  • Fixed zinit_ui missing hero:theme listener (Askama template)
  • Extended smoke tests: 6 test bugs fixed, coverage 55→113 tests
  • All ~110 tests green on herodev and herodemo
  • Branches: development_mik6 in hero_services, hero_indexer_ui, zinit — PRs merged

Affected Repos

Repo What
lhumina_code/hero_services Delete stale Dockerfiles, fix build-local.sh
geomind_code/zinit Run cargo test
All repos Delete stale development_mik5, development_mik6 branches

Log

Date Step Notes
2026-03-11 Created Remaining tasks from #13
2026-03-11 All tasks done Commit a62e4a6: deleted Dockerfiles + chown fix. Branches: 10 mik5 + 3 mik6 deleted (local+remote). zinit cargo test: no regressions.
# Cleanup & Branch Hygiene Follow-up from [#13](https://forge.ourworld.tf/lhumina_code/home/issues/13) (Smoke Tests & Service Bug Fixes — completed) and [#12](https://forge.ourworld.tf/lhumina_code/home/issues/12) (Infrastructure Sync — completed). All 3 service bugs fixed (#13), ~110 smoke tests green on both herodev and herodemo. This issue covers the remaining cleanup: stale files and branch hygiene. **Note:** No production tier yet — herodemo serves as production for now. `hero_aibroker` stays on `development_theme_sync` — it's 2 commits ahead of `development`, 0 behind, no merge needed now. --- ## Environments | Tier | Gateway | Port | Image | Container | Status | |------|---------|------|-------|-----------|--------| | dev | `herodev.gent02.grid.tf` | 8805 | `hero_zero:dev` | `herodev` | ✓ 31 services, ~110 tests green | | demo | `herodemo.gent02.grid.tf` | 8806 | `hero_zero:demo` | `herodemo` | ✓ 31 services, ~110 tests green | **VM:** Both containers on same TFGrid VM at Mycelium IP `495:72fa:8ec3:9264:ff0f:c0a8:abad:234c` **Registry:** `forge.ourworld.tf/lhumina_code/hero_zero` --- ## Build Pipeline ```bash cd hero_services make deploy # dist → pack → push → deploy to herodev ``` | Step | Command | What it does | |------|---------|--------------| | 1 | `make dist` | `docker/build-local.sh` — compiles all service repos inside `rust:1.93-bookworm` with `lhumina_code/` and `geomind_code/` **volume-mounted**. Whatever is checked out gets built. 1-3 min incremental, 10-15 min cold. | | 2 | `make pack` | `docker build -f Dockerfile.pack` — copies pre-built `dist/` into thin `debian:bookworm-slim`. No compilation. | | 3 | `make push` | Push `hero_zero:dev` to forge registry | | 4 | `make update ENV=herodev` | SSH into VM, pull image, restart container | Promotion: `make demo` tags `:dev` → `:demo`, pushes, deploys to herodemo. --- ## Smoke Tests ```bash cd deploy/single-vm make test ENV=herodev # or ENV=herodemo ``` | Suite | Tests | Coverage | |-------|-------|----------| | `smoke_gateway.sh` | ~47 | SPA routing, auth flow, inspector discovery, RPC discovery, MCP gateway, WebDAV, SSE, health checks, UI pages | | `smoke_test.sh` | ~52 | All UI health endpoints, page content, RPC calls, WASM island RPC, server-side health, socat-bridged services | | `smoke_theme.sh` | ~14 | `hero:theme` postMessage listener in all 14 iframe-embedded services | --- ## Branching & PRs ``` development_{name} ← work freely, many commits, push often ↓ PR with "closes #N" ↓ Forgejo "Squash commit" merge development ← one clean commit per issue ``` **Rules:** - Same branch name across all affected repos - Never rebase — merge `development` INTO feature branch if needed - PRs into `development`: **Squash commit** - PRs into `main`: **Create merge commit** (preserves release boundary) - Commit message format: `https://forge.ourworld.tf/lhumina_code/home/issues/{N} — Description` --- ## 11-Step Pipeline (3 human gates) | Step | Action | Who | Gate | |------|--------|-----|------| | 1 | Fix code on `development_{name}` in each repo | AI | — | | 2 | `make deploy` (1-3 min incremental) | AI | Must compile | | 3 | `make test ENV=herodev` (30 sec, ~110 tests) | AI | — | | — | _Iterate steps 1-3 until green. Push freely._ | AI | — | | 4 | **Human verifies herodev** | Human | ✓ Must confirm | | 5 | Create PRs: `development_{name}` → `development` with `closes #N` | AI | Only after step 4 | | 6 | **Squash merge** PRs on Forgejo | AI/Human | — | | 7 | `git checkout development && git pull` all repos, `make deploy` | AI | Clean build | | 8 | **Human verifies herodev** (clean merged code) | Human | ✓ Must confirm | | 9 | `make demo` (tag :dev→:demo, deploy herodemo) | AI | Only after step 8 | | 10 | **Human verifies herodemo** | Human | ✓ Must confirm | | 11 | Update issue log | AI | — | --- ## Tasks ### 1. Infrastructure Cleanup - [x] Delete stale `hero_services/Dockerfile` (old hero_zero, replaced by `Dockerfile.pack`) - [x] Delete stale `hero_services/Dockerfile.prod` (SSH-based BuildKit, replaced by `Dockerfile.pack`) - [x] Fix `dist/` WASM root-owned files (`build-local.sh` runs as root in container, leaves root-owned files on host — add `chown` at end of script) ### 2. Branch Cleanup - [x] Delete `development_mik5` branches across all repos (stale from issue #12) — 10 repos - [x] Delete `development_mik6` branches across all repos (completed in issue #13) — 3 repos - [x] Run `cargo test` on zinit repo — 3 pre-existing failures in `binary_signals` (timing-sensitive integration tests, not regressions) --- ## Not in Scope - **hero_aibroker `development_theme_sync`** — 2 commits ahead of `development`, 0 behind. No merge conflict, no urgency. Will merge when there's a reason to touch aibroker. - **Production tier (heroprod)** — herodemo serves as production for now. - **CI pipeline** — deferred to a future issue. --- ## Completed in Previous Issues **Issue #12 — Infrastructure Sync:** - SSH→HTTPS migration, Docker [patch] removal, zinit OnceLock fix - Fast local build pipeline (`build-local.sh` + `Dockerfile.pack`) - Both herodev and herodemo deployed (31 services each) **Issue #13 — Smoke Tests & Service Bug Fixes:** - Fixed hero_redis_ui HTTP 500 (template path in `Dockerfile.pack`) - Fixed hero_indexer_ui HTTP 404 (TCP→Unix socket default) - Fixed zinit_ui missing `hero:theme` listener (Askama template) - Extended smoke tests: 6 test bugs fixed, coverage 55→113 tests - All ~110 tests green on herodev and herodemo - Branches: `development_mik6` in hero_services, hero_indexer_ui, zinit — PRs merged --- ## Affected Repos | Repo | What | |------|------| | `lhumina_code/hero_services` | Delete stale Dockerfiles, fix `build-local.sh` | | `geomind_code/zinit` | Run cargo test | | All repos | Delete stale `development_mik5`, `development_mik6` branches | --- ## Log | Date | Step | Notes | |------|------|-------| | 2026-03-11 | Created | Remaining tasks from #13 | | 2026-03-11 | All tasks done | Commit `a62e4a6`: deleted Dockerfiles + chown fix. Branches: 10 mik5 + 3 mik6 deleted (local+remote). zinit cargo test: no regressions. |
mik-tf changed title from Cleanup, Branch Hygiene & Production Readiness to Cleanup & Branch Hygiene 2026-03-11 04:16:56 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/home#14
No description provided.