Skip to content

release: cut v0.3.4 — buffer ring for scope def (#208) #209

Closed

Description

@diffwireauto

Owner direction, 2026-10-19: run #208 through dev, then tag for prod.

Filed before the tag this time. v0.3.2 (#202) and v0.3.3 (#205) were both backfilled after the fact, which left prod's running version with no readable record twice in a row.

Contents

One commit [verified: git log v0.3.3..origin/master]:

commit
ec540b91 #208 buffer ring for scope def (ITblacksheep), refs #188

829 insertions / 18 deletions across 9 files. No migrations, no schema change [verified: git diff --name-only v0.3.3..origin/master | grep -iE 'migration|schema|\.sql$' → none], so no database backup is required.

What #208 adds

  • The ring. The region-def page draws a dashed ring (default: largest nearMiles of any layer, else 10 miles; settable in the UI or via ?ring=) and lists every region it touches as NEAR rows with distances. Display only.
  • Tree-shaped commands. New layer keys root, parentProperty and nearMiles turn the generated region def command from a flat chain into a tree, so a border repeater carries the regions on both sides. With none of those keys set the command is the plain chain it always was.
  • scripts/dev-server.js — dependency-free front-end dev server, and devcontainer wiring to start it on port 8080.
  • tests/unit/test-region-def-near.js (349 lines) asserting exact command strings for the Ohio / Kentucky / Indiana / cvg / day cases, plus E2E additions.

Version: v0.3.4, and the reasoning is worth stating

Going v0.3.4, a patch bump, to match the immediately preceding precedent: v0.3.3 shipped #187 — the entire region-def page, a far larger feature — as a patch. Being inconsistent release-to-release is worse than being technically wrong about semver.

Strict semver would call a user-visible feature a minor bump (v0.4.0). If the owner prefers that, this is the moment to say so, and it is worth settling the convention once rather than re-deciding every release.

Pre-flight

Dev is the gate here. Verified before tagging:

Deploy

Tag v0.3.4 at ec540b91 → release-fast-path.yml re-tags :edge as :v0.3.4 → deploy-prod.

Expected cost: prod cold start measured at ~260s previously, against a 300s healthcheck window with auto-rollback. Roughly four minutes unavailable.

Verification on prod

Note on process

#208's body carried Closes #188, which auto-closes the issue on merge and bypasses the Testing gate (CLAUDE.local.md; DifferentWire/standards#201). Raised in review and not changed before merge; the owner's call was that this work is not going through Testing. Recording it because #188's state will reflect the keyword rather than a QA decision.

Done when

Prod serves v0.3.4 and the region-def ring works against prod's region data.

Refs #208, #188, #205, #202

Activity

  1. diffwireauto commented on Oct 19, 2026

    @diffwireauto
    ContributorAuthor

    Shipped and verified

    Tag v0.3.4 (annotated, 350bb936) at ec540b91. Fast path: :edge re-tagged, no rebuild. Both jobs of run 39317802845 succeeded and prod cleared its 300s healthcheck without triggering auto-rollback.

    The dev gate, which came first as instructed

    [box: corescope-dev on offband, 2026-10-19]

    check result
    master run 39312597797 all jobs success, including 🚀 Deploy Staging
    dev version / commit edge / ec540b9
    dev container Up 20 minutes (healthy)
    in-container crashes 0
    /region-layers/layers.json on dev real JSON

    Worth recording: dev never had the #204 defect. Its compose uses explicit paths rather than reusing a variable —

    - /opt/corescope-dev/data:/app/data
    - /opt/corescope-dev/frontend/region-layers:/app/public/region-layers:ro

    so the two mounts were always distinct there. Only prod's compose reused ${DATA_DIR}. That is the drift #207 is about: two boxes, two hand-maintained files, no mechanism comparing them.

    Prod

    [box: /api/stats + docker on deadbeef, 2026-10-19]

    version v0.3.4
    commit ec540b9
    container Up 4 minutes (healthy)
    RestartCount 0
    in-container crashes 0 (exited: corescope- over 300 lines)
    ingesting 10,069 packets/hour, 1,731 nodes

    #204 regression check, deliberately repeated after the deploy

    The deploy recreates the container from /opt/corescope/docker-compose.yml, so it was the first real test of whether the #204 mount fix survives a deploy rather than only a manual up -d. It did:

    /opt/corescope/data                   -> /app/data
    /opt/corescope/frontend/region-layers -> /app/public/region-layers
    

    and /region-layers/layers.json returns real JSON. Had the fix not persisted, this release would have silently re-broken the region-def page it exists to improve.

    Filed before the tag, which is the point

    v0.3.2 (#202) and v0.3.3 (#205) were both written up after the fact. This one existed before the tag was cut, so the pre-flight criteria were set in advance and not reverse-engineered from the outcome.

    Version

    v0.3.4, patch, owner-confirmed. Matches v0.3.3 shipping the whole region-def page (#187) as a patch. Noted at the time that strict semver would call a user-visible feature a minor bump; consistency was chosen over correctness and the owner agreed.

    Carried forward

    Closing as done.

  2. diffwireauto commented on Oct 19, 2026

    @diffwireauto
    ContributorAuthor

    v0.3.4 live on prod and verified. Full record above.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions