Conversation
|
@MrAlders0n, this observer-release slice is ready for your/Claude's review at The combined Pi preview is live at https://canadaverse.org/beacon-dev/?tab=Observers with server Docs #5 carries the observer-first plan and subsequent connected-investigation work. The proposed public per-IATA MeshMapper scope catalogue is drafted separately, with manual scopes retained; its endpoint/schema is not yet published. The captured historical 1,810 counter difference remains unexplained, not a measured packet-loss claim. |
60ed339 to
91b2199
Compare
|
@MrAlders0n, ready for your / Claude's review at The preview/source now runs server |
91b2199 to
39c9d18
Compare
MrAlders0n
left a comment
There was a problem hiding this comment.
- Migration 040. Please fold it into 039 (see the #167 review). On prod both would run back to back, and the ingest pause doubles.
- The latest partial bucket is gone.
until = now.Truncate(interval)together withheard_at < untildrops the current partial bucket, so web's 15m, 1h and 6h charts lag by up to one bucket, and a quiet observer looks dead at the right edge. I'd rather keep the partial bucket whenuntilisn't supplied, and truncate only when a client asks for a specificuntil. - Cache key.
internal/cache/reader.go:376keys on the rawuntil, while the store truncates it. A client sendingDate.now()never hits the cache and writes a new key every request. Truncate before building the key. summary(lastCompleteHour,latestRecordedAt) ignoresuntil. Either document that or leavesummaryout whenuntilis set.- Nits: the
ObserverActivitydoc comment now sits aboveObserverActivitySummary. Please put the new query indb/queries/queries.sqlrather than a separate file.
The NaN/Inf filtering and broker freshness changes look good.
Observer monitoring separates broker presence from packet arrival: status and neighbor reports no longer advance packet freshness. The compatible legacy counter is explicitly documented. Activity responses include effective UTC bounds, generation time, stored total, last complete hour and latest retained packet time; optional until aligns comparisons. Migration 040 accounts for unknown payloads without inventing discarded signal samples.
Closes #168. Follows server #167. Parent
70c5c389f9886cb8d8c9d9d34462c805cad6fc6b, head39c9d185087dcf6bc5aede8f8d1e86c61c1365c9. Focused diff.Validated after integration with accepted #177–#180: local build/format/vet/tests and published-head CI pass. The composed Pi build
2ed2e031includes all current server candidates and independent #166; its full PostgreSQL suite passes, including route-lock batching/cancellation and queue behavior. An isolated 504-scope replay preserved 100 packets, 800 observations, 100 decrypted messages and 2,400 opt-in live hearings from 3,200 inputs while a later maintenance batch was blocked. This is fixture evidence, not a universal delivery guarantee.The backend is deployed on the Pi preview with exact source and changelog, retaining configuration, schema042 and rollback. All earlier review features remain included. Owners retain merges and production release. AI-assisted implementation continues under the contributor’s standing project authorization.