Skip to content

fix(local): keep username changes in the local development stack - #9804

Merged
NotThatKindOfDrLiz merged 5 commits into
mainfrom
fix/local-name-server
Oct 5, 2026
Merged

NotThatKindOfDrLiz merged 5 commits into
mainfrom
fix/local-name-server

Conversation

@NotThatKindOfDrLiz

@NotThatKindOfDrLiz NotThatKindOfDrLiz commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

LOCAL builds sent username checks and signed claims to the production registry because the local stack had no name server. They now use an isolated local registry on port 43005, including account-deletion username release preparation; a missing local service returns an error without production fallback.

The stack adapter consumes immutable upstream source and a locked npm dependency set, uses a dedicated Wrangler config without production routes or secrets, and migrates local D1 before serving traffic. A named volume retains usernames across normal restarts. Non-LOCAL environments retain their existing endpoint.

The source pin includes the D1 receiver fix merged in divinevideo/divine-name-server#115, exposed by local release preparation. Complete account deletion and production Fastly propagation are outside this change.

On native Linux Docker Engine, the signed smoke test and UI seed use a disposable host-network container to reach the loopback-only published port.
The launcher verifies the local server's ownership, health and image before sending requests; Docker Desktop and non-Linux hosts retain the existing Compose transport.
The server binding, daemon settings and production behavior are unchanged.

Validation:

  • Fresh-database Docker HTTP integration passed: reserved/available/taken checks, signed claims through the published port with localhost and Android Host headers, mismatched-URL rejection, claim conflicts, lookup, release preparation/rollback, and persistence across restart/repeated migrations.

  • 98 focused app tests and 9 profile endpoint tests passed; the offline local-registry test verifies no production fallback.

  • Full Flutter analysis, Android debug build, native transport-security guard, Maestro copy/entry-point contracts, and stack/Android script tests passed.

  • The complete LOCAL-only Maestro flow passed on an Android emulator: device-only account creation, reserved/taken/available checks, signed claim, profile reopen, and direct registry verification that the UI claim persisted. The runner builds and installs a LOCAL debug app and seeds the local taken-name fixture. Testing used an isolated emulator data image because the existing AVD's user remained locked.

  • Native Linux repair verification passed: signed HTTP checks and claims through the published port, conflicts, lookup, release rollback, seed, and persistence after restart/repeated migrations; launcher/stack contracts, 39 focused Flutter tests, app/profile analysis, formatting and the Maestro copy guard also passed.

  • Repair verification did not rerun the Android journey listed above or exercise Docker Desktop on a real runtime; Desktop/non-Linux command selection was fixture-tested.
    Full app/package suites and CI-only checks were not rerun locally; final-head CI is reported in the handback.

Closes #7692.
Closes #7691.

@NotThatKindOfDrLiz
NotThatKindOfDrLiz requested a review from a team as a code owner October 4, 2026 00:42
@NotThatKindOfDrLiz
NotThatKindOfDrLiz requested review from a team, dcadenas and hm21 and removed request for a team October 4, 2026 00:42
@github-actions

This comment has been minimized.

@divine-roborev

divine-roborev Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

roborev: Combined Review (ec98e28)

Verdict: No findings at or above high severity.


Reviewers: 2 done | Synthesis: opencode | Total: 12m50s

@github-actions

This comment has been minimized.

@dcadenas

dcadenas commented Oct 4, 2026

Copy link
Copy Markdown
Member

@NotThatKindOfDrLiz I pushed three commits onto fix/local-name-server to repair the native Linux smoke test and UI seed transport.
Please review the delta from eb7ff21 to e01ae5c; @hm21 your review request remains pending, so I did not duplicate it.

Changes I pushed

  • 2dd6067: shared disposable smoke launcher with local-server ownership checks and launch-contract tests, preserving the loopback-only binding.
  • 350af76: restrict host networking to a Linux host with a non-Desktop Linux engine; other hosts retain the existing Compose transport.
  • e01ae5c: clarify that selection rule in the documentation.

Checks

  • Native Linux signed HTTP integration, seed and restart/repeated-migration persistence passed.
  • 39 focused Flutter tests, launcher/stack contracts, app/profile analysis, formatting and the Maestro copy guard passed.
  • Final-head CI was still queued or running at the post-push read, including Flutter test shards, analysis, guards, service integration and package build: https://github.com/divinevideo/divine-mobile/actions/runs/37212346069.
  • Desktop runtime and a new Android device run were not performed; full app/package suites and CI-only checks were not rerun locally.

The description now documents the repair and its verification limits.
The Linux transport finding is fixed; no other blocking finding remained in the review.
Approval is withheld until required and relevant checks finish successfully on e01ae5c.

@github-actions

This comment has been minimized.

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown

Mobile PR Preview

Preview refreshed for ec98e28

Last refresh: ec98e28 at 2026-10-04 22:07:17 UTC (preview run)

Property Value
Preview URL https://bf8cefa3.openvine-app.pages.dev
Pages project openvine-app
Preview branch pr-9804
PR branch fix/local-name-server
Commit ec98e28

@dcadenas dcadenas left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The full rewritten range 6db7c4f..ec98e28 preserves LOCAL username isolation and the native Linux smoke transport repair.
All five feature commits retain their prior patches, and no blocking findings remain against the current base.
The description still matches the final code and its scope.

Checks

  • Current-head app/profile analysis and formatting passed, along with 39 focused Flutter tests and 9 Maestro smoke-contract tests.
  • Launcher/stack contracts, 91 Maestro copy bindings and the bare-scroll guard passed.
  • Mobile CI, service integration, package CI, semantic title, mergeability, preview and roborev succeeded on ec98e28; iOS native tests and daily service-result publication were skipped.
  • Full app/package suites and CI-only checks were not rerun locally; their workflow results were inspected on this head.

The prior native Linux signed HTTP and restart-persistence run is historical, not a runtime rerun on the rewritten head.
Its tested transport contents are unchanged, and the new base does not touch those paths.
No new native Docker, Docker Desktop or Android device run was performed for this review.

@NotThatKindOfDrLiz
NotThatKindOfDrLiz added this pull request to the merge queue Oct 5, 2026
Merged via the queue into main with commit c497496 Oct 5, 2026
31 checks passed
@NotThatKindOfDrLiz
NotThatKindOfDrLiz deleted the fix/local-name-server branch October 5, 2026 00:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants