mirror of
https://github.com/MeshCore-Beacon/beacon-docs.git
synced 2026-10-23 07:32:29 +00:00
Merge branch 'codex/release-core-20261021' into codex/release-telemetry-20261021
This commit is contained in:
commit
0d70bf7372
2 files changed
+116
No files matched your search
@@ -5,6 +5,9 @@ Review this as a paired server/web candidate before promoting it from `dev` or
|
||||
Atlas sensor cards are a separate dependent change. Basic Atlas and Topology do
|
||||
not require that optional service.
|
||||
|
||||
See the [21 October qualification record](release-qualification-20261021.md)
|
||||
for the paired drafts, exact preview build, measurements and remaining gates.
|
||||
|
||||
## What the core changes
|
||||
|
||||
| Area | Result |
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
# Candidate qualification, 21 October 2026
|
||||
|
||||
The core backend, basic Atlas and animated Topology candidate has a separate
|
||||
optional telemetry layer. All org PRs remain drafts. Only the Canadaverse preview
|
||||
was deployed; this record is not production acceptance or a dev/dev1 deployment.
|
||||
|
||||
| Layer | Server dev / dev1 | Web dev / dev1 | Documentation |
|
||||
| --- | --- | --- | --- |
|
||||
| Core | [266](https://github.com/MeshCore-Beacon/beacon-server/pull/266) / [267](https://github.com/MeshCore-Beacon/beacon-server/pull/267) | [182](https://github.com/MeshCore-Beacon/beacon-web/pull/182) / [183](https://github.com/MeshCore-Beacon/beacon-web/pull/183) | [43](https://github.com/MeshCore-Beacon/beacon-docs/pull/43) |
|
||||
| Optional collection | [268](https://github.com/MeshCore-Beacon/beacon-server/pull/268) / [269](https://github.com/MeshCore-Beacon/beacon-server/pull/269) | [184](https://github.com/MeshCore-Beacon/beacon-web/pull/184) / [185](https://github.com/MeshCore-Beacon/beacon-web/pull/185) | [44](https://github.com/MeshCore-Beacon/beacon-docs/pull/44) |
|
||||
|
||||
The optional branches include core ancestry until the core is accepted. Review
|
||||
their optional-only difference against `codex/release-core-20261021`, then
|
||||
refresh them after core acceptance. Do not independently merge both the old
|
||||
focused implementations and these consolidations. Flutter [draft 11](https://github.com/MeshCore-Beacon/beacon-flutter-app/pull/11)
|
||||
targets its canonical dev branch; the app has no upstream dev1 branch.
|
||||
|
||||
## Source and deployment identity
|
||||
|
||||
Current upstream dev is included: server `080141145e964945d3f105be01903b082ebbfd8b`,
|
||||
web `811f8430ea7eea0a556068904e71a43e07ac93f7` and app
|
||||
`a8107047f52da43f8b30afb98655bc4452b7a74e`.
|
||||
|
||||
The preview combines core/optional source with its existing preview UI and
|
||||
route-evidence extensions. Server is `fdae02d4b7c501264280995d145bfe529b9e0d2f`
|
||||
and web is `79edb9ce26a8eda0764b32de6545d1d486afa98b`, labelled
|
||||
`2.5.0-n30nex.1`. The server API version remains 2.1.0; the separate `/info`
|
||||
build fields identify the binary. App is `1f704187a94ea5c84c458a5d63ab8c0a4fdef525`,
|
||||
version 2.1.0+3. Intake and headless client retain a separate private lifecycle.
|
||||
|
||||
[Public preview](https://canadaverse.org/beacon-dev/),
|
||||
[build manifest](https://canadaverse.org/beacon-dev/build.json) and
|
||||
[Changelog/source archives](https://canadaverse.org/beacon-dev/source.html)
|
||||
identify the running preview. The server/web minimum versions and optional
|
||||
capability remain distinct from health and release acceptance.
|
||||
|
||||
Artifacts were built locally from exact clean commits qualified by native CI;
|
||||
Actions artifact uploads are unavailable for this account. These are preview
|
||||
artifacts, not Actions-produced stable releases. The ARM64 runtime uses the
|
||||
qualified Alpine 3.22.6/PG16 stage and UID/GID 65532. Original private addresses,
|
||||
proxy trust and container limits remain intact. No source credential was added.
|
||||
|
||||
## Checks completed
|
||||
|
||||
- Core server build/vet/unit and native PostgreSQL, race, vulnerability and
|
||||
runtime-image checks passed. The query-plan fixture corpus has 692 cases:
|
||||
680 ordinary passes, 11 deliberately planted regressions detected, one
|
||||
existing skip. All eight added Topology/history cases pass.
|
||||
- Basic web passed 1,512 tests in 164 files. Combined preview web passed 1,555
|
||||
tests in 171 files on native Linux CI, plus build/lint. Two existing React
|
||||
Compiler warnings remain. Initial merged chart-test assumptions were fixed;
|
||||
Windows shell-entrypoint cases are covered by Linux CI.
|
||||
- Both private preview databases were backed up and restored off-host. Core
|
||||
retained schema 53. New intake initialization preserved all 951 restored
|
||||
reports and added its separate ledger. No database reset or historical
|
||||
signal rewrite was performed.
|
||||
- All 34 public assets and both source archives matched. Both MQTT brokers
|
||||
connected. A 12-second WebSocket sample received 70 packet observations with
|
||||
valid hello/subscription and no parse error in that sample.
|
||||
- Public contract checks verified an instance-bound challenge, rejection of
|
||||
invalid enrollment signatures and unenrolled reports, six retained histories,
|
||||
coverage/cap metadata and channel-2 values. No accepted synthetic report or
|
||||
RF test request was generated by these checks.
|
||||
- Browser checks confirmed four saved Atlas cards, bright gap-aware histories,
|
||||
the six-node telemetry filter and live 24-hour Topology with 5,362 loaded
|
||||
nodes and 15,248 connections at the sampled moment. Node/edge counts change
|
||||
with the live dataset.
|
||||
- App analyzer and 347 Flutter tests passed. Org/fork Android builds and five
|
||||
native telemetry-service tests passed. The local debug APK signature and
|
||||
package were verified: `meshcorebeacon.app.telemetry`, version 2.1.0+3,
|
||||
Android API 24 minimum and 36 target.
|
||||
- The headless worker was updated with its schedule, configuration, private
|
||||
credentials and radio path preserved. RemoteTerm remains suspended. Its
|
||||
post-update journal reported `not_due`; no forced poll or fresh worker
|
||||
acceptance is claimed.
|
||||
|
||||
Native CI evidence: [server](https://github.com/n30nex/beacon-server-contributions/actions/runs/39692021754),
|
||||
[web](https://github.com/n30nex/beacon-web-contributions/actions/runs/39692465604),
|
||||
[Android fork](https://github.com/n30nex/beacon-flutter-app/actions/runs/39689785160).
|
||||
|
||||
## Measured limits and remaining gates
|
||||
|
||||
Cold global Topology still needs optimization qualification. One public cold
|
||||
24-hour request took 13.877 seconds, then 0.336 seconds cached. A later local
|
||||
Pi check crossed a minute boundary and measured 5.8027 and 5.2405 seconds for
|
||||
two different cold snapshots, followed by a same-window cache hit in 0.0316
|
||||
seconds. The new historical-decryption job was progressing; CMI and packet-sites
|
||||
were complete. These are individual shared-host samples, not p95 or FPS claims.
|
||||
|
||||
Path deduplication before edge expansion returned identical edge sets on the
|
||||
restored dataset, but showed no consistent warm speedup. That query change was
|
||||
not shipped. Measure query-family cost and cache occupancy before choosing a
|
||||
bounded shared snapshot/precomputation model. Preserve explicit as-of/window
|
||||
metadata and exact expiry semantics; avoid per-browser pagination fanout.
|
||||
|
||||
Private metrics/statement/IO instrumentation and scrapes, whole-host pool/memory
|
||||
budgets, least-privilege migration/runtime roles, broker-to-database replay and
|
||||
durability, production RPO/RTO and a full maintenance-cycle soak remain explicit
|
||||
operator/design work. Sender-time versus receipt-time policy and bounded Atlas
|
||||
summary/downsampling contracts also remain follow-ups. The current patch does
|
||||
not make these guarantees by adding counters or passing fixture tests.
|
||||
|
||||
No Android debugging device was available for this revision. Fresh physical
|
||||
BLE/Wi-Fi, screen-off/unlock/reconnect, notification controls, mobile RF-to-intake
|
||||
upload and overnight qualification remain pending. Keep the app draft. A
|
||||
cross-client RF coordination policy is also needed before broad mobile/headless
|
||||
coexistence; signed enrollment is not hardware attestation or sensor truth.
|
||||
|
||||
Promote core before optional collection. Rehearse against the actual target
|
||||
schema/config/roles, deploy a paired immutable candidate to authorized dev/dev1,
|
||||
and qualify the remaining workload/recovery gates before operators approve a
|
||||
stable live release. Retained preview recovery copies do not authorize a
|
||||
database restore over new traffic or a production deployment.
|
||||
Reference in new issue
Block a user