libgnss++ v0.2.0
Highlights
- Native C++20 GNSS tooling and the exported
libgnsspp::gnss_libCMake
package now report version0.2.0. - A release-tag workflow builds repeatable, tag-driven TGZ and Debian packages
for Ubuntu 24.04 amd64, checks their contents, and publishesSHA256SUMS
with the release assets. These binaries target that environment; the TGZ is
not claimed to be universally portable. - The public Docker quick start uses the stable
v0.2.0image tag and its
tracked, offline synthetic PPP demo fixture.
The demo validates CLI, build, and packaging plumbing. Its synthetic inputs
are not a field-accuracy or real-world satellite-geometry benchmark.
What's Changed
- [codex] repo: enforce scoped development slices by @rsasaki0109 in #184
- [codex] madoca: add core helper parity layer by @rsasaki0109 in #182
- [codex] python: add read-only artifact API by @rsasaki0109 in #181
- [codex] ppc: add sigma-demote coverage profile by @rsasaki0109 in #185
- [codex] ppc: add MADOCALIB RTKLIB smoke config by @rsasaki0109 in #183
- [codex] ci: harden optional RTK signoff contract by @rsasaki0109 in #186
- [codex] clas: add ZD component diff artifact by @rsasaki0109 in #187
- [codex] clas: expose exact RINEX observation identity by @rsasaki0109 in #188
- [codex] clas: gate GPS L2W bias identity parity by @rsasaki0109 in #189
- madoca: add residual component diff artifact by @rsasaki0109 in #190
- madoca: add optional residual component diff signoff by @rsasaki0109 in #191
- clas: add optional ZD component diff signoff by @rsasaki0109 in #192
- ci: share optional diff artifact runner by @rsasaki0109 in #193
- ci: fail optional diffs on missing artifacts by @rsasaki0109 in #194
- ppp: expose exact observation code artifacts by @rsasaki0109 in #195
- [codex] clas: expose bias lookup provenance by @rsasaki0109 in #196
- [codex] clas: use exact osr observation lookup by @rsasaki0109 in #197
- [codex] clas: guard exact OSR observation lookup by @rsasaki0109 in #198
- [codex] ci: slim ubuntu prepare build deps by @rsasaki0109 in #199
- [codex] clas: expose observation lookup provenance by @rsasaki0109 in #200
- [codex] clas: test OSR bias materialization identity by @rsasaki0109 in #201
- [codex] clas: summarize ZD identity provenance by @rsasaki0109 in #202
- [codex] ci: surface CLAS ZD identity metrics by @rsasaki0109 in #203
- [codex] clas: route profile wrapper through OSR path by @rsasaki0109 in #204
- [codex] clas: normalize CLASLIB ZD dumps by @rsasaki0109 in #205
- [codex] clas: add ZD diff slice filters by @rsasaki0109 in #206
- [codex] clas: add ZD diff duplicate policy by @rsasaki0109 in #207
- [codex] clas: add ZD row breakdown diagnostics by @rsasaki0109 in #208
- [codex] clas: document A4b base-only code bias policy by @rsasaki0109 in #209
- [codex] clas: forward ANTEX through wrapper by @rsasaki0109 in #210
- [codex] ppp: add receiver antenna type override by @rsasaki0109 in #211
- [codex] clas: materialize receiver antenna osr terms by @rsasaki0109 in #212
- [codex] clas: sync receiver antenna aggregate osr terms by @rsasaki0109 in #213
- [codex] clas: align gps l2w receiver antenna slot by @rsasaki0109 in #214
- [codex] clas: extend base code bias on phase-only rows by @rsasaki0109 in #215
- [codex] ci: add lightweight cli ux smoke by @rsasaki0109 in #216
- [codex] ci: add artifact manifest ux smoke by @rsasaki0109 in #217
- [codex] ci: add web http ux smoke by @rsasaki0109 in #218
- [codex] ci: guard cli help example commands by @rsasaki0109 in #219
- [codex] ci: guard dispatcher python targets by @rsasaki0109 in #220
- [codex] ci: guard doctor text ux by @rsasaki0109 in #221
- [codex] ci: guard doctor strict json ux by @rsasaki0109 in #222
- [codex] ci: guard docs cli examples by @rsasaki0109 in #223
- [codex] ci: guard app cli examples by @rsasaki0109 in #224
- [codex] ci: consolidate cli ux example guards by @rsasaki0109 in #225
- [codex] cli: suggest close command names by @rsasaki0109 in #226
- [codex] cli: dispatch help to subcommands by @rsasaki0109 in #227
- [codex] cli: expose command registry by @rsasaki0109 in #228
- [codex] cli: search command registry by @rsasaki0109 in #229
- [codex] ci: harden optional diff artifact contract by @rsasaki0109 in #230
- [codex] ci: add clas a4b native selfdiff by @rsasaki0109 in #231
- [codex] docs: guard clas maturity claims by @rsasaki0109 in #232
- [codex] ci: validate docker cli json by @rsasaki0109 in #233
- ci: validate dashboard artifact manifest by @rsasaki0109 in #234
- [codex] madoca materialization snapshot dump by @rsasaki0109 in #235
- [codex] madoca materialization snapshot diff by @rsasaki0109 in #236
- [codex] ci madoca materialization diff signoff by @rsasaki0109 in #237
- madoca: add materialization dump-only self-diff by @rsasaki0109 in #238
- madoca: summarize materialization snapshots by @rsasaki0109 in #239
- ci: summarize optional MADOCA materialization inputs by @rsasaki0109 in #240
- ci: summarize optional MADOCA residual inputs by @rsasaki0109 in #241
- ci: summarize optional CLAS ZD inputs by @rsasaki0109 in #242
- ci: summarize CLAS A4b native dump by @rsasaki0109 in #243
- ci: harden MADOCA materialization self-diff contract by @rsasaki0109 in #244
- ci: harden MADOCA residual summary contract by @rsasaki0109 in #245
- ci: harden CLAS A4b native identity summary by @rsasaki0109 in #246
- ci: surface CLAS ZD dominant component by @rsasaki0109 in #247
- ci: reuse CLAS A4b native dump for ZD diff by @rsasaki0109 in #248
- clas: normalize CLASLIB OSR ZD dumps by @rsasaki0109 in #249
- ci: generate CLASLIB OSR ZD base dump by @rsasaki0109 in #250
- ci: focus CLAS A4b ZD diff on components by @rsasaki0109 in #251
- ci: use CLASLIB atmosphere gates in A4b selfdiff by @rsasaki0109 in #252
- analysis: derive CLASLIB OSR iono from PRC closure by @rsasaki0109 in #253
- ci: surface top optional diff component delta by @rsasaki0109 in #254
- ci: add CLAS PRC closure diff component by @rsasaki0109 in #255
- analysis: normalize CLASLIB OSR iono per frequency slot by @rsasaki0109 in #256
- ci: add CLAS ionosphere scale closure diff by @rsasaki0109 in #257
- ci: add CLAS STEC closure diff by @rsasaki0109 in #258
- ci: highlight CLAS ZD closure metrics by @rsasaki0109 in #259
- ci: expose CLAS ZD atmosphere references by @rsasaki0109 in #260
- ci: surface CLAS ZD top-row context by @rsasaki0109 in #261
- [codex] Gate A4b trop climatology by @rsasaki0109 in #262
- [codex] ci: surface CLAS ZD top-row values by @rsasaki0109 in #263
- clas a4b atmos provenance by @rsasaki0109 in #264
- clas a4b claslib grid provenance by @rsasaki0109 in #265
- clas zd default component contract by @rsasaki0109 in #266
- clas a4b lifecycle provenance by @rsasaki0109 in #267
- claslib osr iono provenance by @rsasaki0109 in #268
- clas code bias ref provenance by @rsasaki0109 in #269
- clas avoid future code bias by @rsasaki0109 in #270
- clas add delayed code bias bank policy by @rsasaki0109 in #271
- clas refresh delayed code bias rows by @rsasaki0109 in #272
- fix CLAS code bias boundary selection by @rsasaki0109 in #273
- classify CLAS network compensation diffs by @rsasaki0109 in #274
- clas materialize network compensation in code dumps by @rsasaki0109 in #275
- clas apply sis continuity at update boundaries behind env gate by @rsasaki0109 in #281
- Add loosely-coupled GNSS/IMU fusion (15-state ESKF) + Windows/MSVC support by @rsasaki0109 in #280
- clas suppress st11 network orbit and close sis boundary compN by @rsasaki0109 in #277
- clas add claslib base-clock parity gate with bias hold and sd-mar blunder rejection by @rsasaki0109 in #278
- clas qzss zd parity and isb: first net-positive qzss config (#161 pass) by @rsasaki0109 in #279
- GTSAM FGO backend with tightly-coupled GNSS/IMU RTK and urban robustness by @rsasaki0109 in #282
- Add GNSS/IMU tightly-coupled FGO results to README by @rsasaki0109 in #283
- Phase 18 L5/N5 widelane AR state + WP9-10 float trust policy / NLOS weights / RTK knob wiring by @rsasaki0109 in #284
- Add fix plausibility demotion and GNSS/IMU parity figures by @rsasaki0109 in #285
- Define MADOCA correction contract and L6D snapshots by @rsasaki0109 in #289
- Add time-indexed MADOCA ionosphere products by @rsasaki0109 in #291
- Add MADOCA L6D PPP shadow diagnostics by @rsasaki0109 in #292
- Add real-data L6D snapshot oracle parity by @rsasaki0109 in #293
- Audit MADOCA GLONASS phase residuals by @rsasaki0109 in #294
- Add MADOCALIB PPP-AR profile smoke by @rsasaki0109 in #295
- Record native MADOCA PPP-AR baseline by @rsasaki0109 in #296
- Select state model for per-frequency AR by @rsasaki0109 in #297
- Expose PPP convergence gate telemetry by @rsasaki0109 in #298
- Add satellite-count RTK ratio experiment by @rsasaki0109 in #300
- Fix satellite-count ratio forwarding by @rsasaki0109 in #301
- Guard deep Partial AR after full-set fixes by @rsasaki0109 in #302
- Enable guarded Partial AR in PPC coverage by @rsasaki0109 in #303
- Expose RTK elevation mask in PPC sweeps by @rsasaki0109 in #304
- Add Doppler-propagated RTK float seed by @rsasaki0109 in #305
- Add paper constellation AR fallback by @rsasaki0109 in #306
- Document MADOCALIB native migration gates by @rsasaki0109 in #307
- Add PPP-AR convergence stage telemetry by @rsasaki0109 in #308
- Fix PPP wide-lane-only admission by @rsasaki0109 in #309
- Port MADOCALIB partial ambiguity resolution by @rsasaki0109 in #310
- Preserve RINEX extra frequency bands by @rsasaki0109 in #311
- Track per-frequency PPP ambiguity lifecycle by @rsasaki0109 in #312
- Port MADOCALIB L3/L4 ambiguity states by @rsasaki0109 in #313
- Fix MADOCA bias identity parity expectation by @rsasaki0109 in #314
- Align MADOCA materialization bias contract by @rsasaki0109 in #315
- Fix MADOCA float covariance overconfidence by @rsasaki0109 in #316
- Align MADOCA measurement variance by @rsasaki0109 in #317
- Align MADOCA first-epoch phase admission by @rsasaki0109 in #318
- Align MADOCA SSR ephemeris admission by @rsasaki0109 in #319
- Align MADOCA QZSS frequency rows by @rsasaki0109 in #320
- Add tightly coupled DD/IMU bridge by @rsasaki0109 in #321
- Stabilize DD/IMU processor test by @rsasaki0109 in #322
- Use unittest skip for optional bindings by @rsasaki0109 in #324
- Align MADOCA per-frequency AR admission by @rsasaki0109 in #323
- Restore MADOCA per-frequency AR trial state by @rsasaki0109 in #325
- clas: port MRTKLIB v0.5.1 dynamic PPP-RTK parity by @rsasaki0109 in #326
- configs: organize templates by purpose by @rsasaki0109 in #328
- apps: separate native and compatibility entrypoints by @rsasaki0109 in #330
- Restore MADOCALIB opt-in build contract by @rsasaki0109 in #329
- Align MADOCA ionosphere state prediction by @rsasaki0109 in #327
- Improve CLAS parity and PPC moving validation by @rsasaki0109 in #331
- Full six-run PPC moving-CLAS benchmark with SSR lookup optimization by @rsasaki0109 in #332
- Guard kinematic CLAS SPP reseed against multi-km blunders by @rsasaki0109 in #333
- Revert #333: SPP blunder guard regresses fixed-epoch quality by @rsasaki0109 in #334
- SPP blunder guard v2: gate seed, freeze tt, and suppress AR during coasts by @rsasaki0109 in #336
- Fix CLAS seed recovery and WLNL hold parity by @rsasaki0109 in #337
- Add surplus-satellite independent AR validation (rescue + demotion cross-check) by @rsasaki0109 in #335
- Improve CLAS partial AR recovery by @rsasaki0109 in #338
- Fix CLAS float recovery parity after bad seeds by @rsasaki0109 in #339
- fix CLAS maxdiff AR recovery by @rsasaki0109 in #340
- update CLAS benchmark results by @rsasaki0109 in #341
- Clear PPC 2024 benchmark goals by @rsasaki0109 in #342
- Improve CLAS non-FIX continuity by @rsasaki0109 in #344
- Add PPC FIX status trajectories and reduce wrong FIX by @rsasaki0109 in #343
- Improve CLAS float recovery from bad seeds by @rsasaki0109 in #345
- Improve PPC FIX integrity and audit evidence by @rsasaki0109 in #346
- Refresh six-run CLAS benchmark on current develop by @rsasaki0109 in #347
- Add realtime FIX integrity gate and fix MADOCA MSVC/CI build by @rsasaki0109 in #348
- CLAS kinematic: maxdiff-only hold-continuation carve-out with hold track-record gate by @rsasaki0109 in #349
- Refresh six-run CLAS benchmark after hold-continuation carve-out (#349) by @rsasaki0109 in #350
- CLAS: fix per-satellite outage counter false positives (MRTKLIB reset parity) by @rsasaki0109 in #351
- Refresh six-run CLAS benchmark after outage-counter fix (#351) by @rsasaki0109 in #352
- Streamline README benchmark sections by @rsasaki0109 in #353
- Simplify gnss_fuse help for preset users by @rsasaki0109 in #354
- Stabilize high-uncertainty RTK FLOAT output by @rsasaki0109 in #355
- Add compact TOML config for gnss_fuse by @rsasaki0109 in #356
- Simplify gnss_solve CLI configuration by @rsasaki0109 in #357
- Make MADOCALIB AR diagnostics locally repeatable by @rsasaki0109 in #358
- Preserve raw MADOCA ionosphere ambiguity seed by @rsasaki0109 in #359
- Honor MADOCA RINEX frequency slots by @rsasaki0109 in #360
- Match MADOCA ZTD initialization variance by @rsasaki0109 in #361
- Reset MADOCA clocks from SPP system biases by @rsasaki0109 in #362
- Match RTKLIB receiver phase windup frame by @rsasaki0109 in #363
- Enable MADOCA receiver antenna corrections by @rsasaki0109 in #364
- fix(ppp): match MADOCA ambiguity windup seed by @rsasaki0109 in #365
- fix(ppp): use GPS L1 MADOCA ionosphere state by @rsasaki0109 in #366
- fix(ppp): seed MADOCA STEC from corrected codes by @rsasaki0109 in #367
- Fix MADOCALIB bridge QZSS signal order by @rsasaki0109 in #368
- Fix MADOCA postfit shadow geometry by @rsasaki0109 in #369
- Align MADOCA GLONASS and STEC priors by @rsasaki0109 in #370
- fix(ppp): match MADOCA GLONASS code IFB variance by @rsasaki0109 in #371
- fix(ppp): match MADOCA geometry-free slip threshold by @rsasaki0109 in #372
- Match MADOCA STEC windup propagation by @rsasaki0109 in #373
- fix(ppp): align multifrequency MADOCA slip resets by @rsasaki0109 in #374
- fix(ppp): align MADOCA solid tide convention by @rsasaki0109 in #375
- docs(madoca): refresh migration ledger baseline by @rsasaki0109 in #376
- Align MADOCA SSR clock and first-fix safety by @rsasaki0109 in #377
- Stabilize MADOCA Galileo WL admission across platforms by @rsasaki0109 in #378
- Fix MADOCA ionosphere history after cycle slips by @rsasaki0109 in #379
- Stabilize MADOCA N1 partial-AR subset selection by @rsasaki0109 in #380
- Fix MADOCA L6D secondary-channel snapshot time by @rsasaki0109 in #381
- Apply native MADOCA L6D STEC constraints by @rsasaki0109 in #382
- Support hourly MADOCA L6D input sequences by @rsasaki0109 in #383
- ci: add MADOCA release parity matrix by @rsasaki0109 in #384
- build: isolate MADOCALIB oracle CLI by @rsasaki0109 in #385
- cleanup: retire MADOCA preview selectors by @rsasaki0109 in #386
- docs: close out MADOCA native migration by @rsasaki0109 in #388
- Expose FGO TDCP backend insertion counts by @rsasaki0109 in #390
- Filter stale FGO LAMBDA marginal keys by @rsasaki0109 in #391
- Gate surplus AR rescues on state separation by @rsasaki0109 in #392
- Harden surplus ambiguity rescues by @rsasaki0109 in #393
- Add fail-closed safe library FIX promotion by @rsasaki0109 in #394
- Fix safe bridge runtime linkage by @rsasaki0109 in #396
- Add anchor-gated FIX demotion reprieve by @rsasaki0109 in #403
- Gate ambiguity reacquisition with DDPR anchor by @rsasaki0109 in #404
- Preserve terminal ambiguity outcomes by @rsasaki0109 in #405
- Add AR candidate attrition telemetry by @rsasaki0109 in #407
- Expose provisional LAMBDA candidate telemetry by @rsasaki0109 in #409
- Allow macOS CI build 120 minutes by @rsasaki0109 in #408
- Allow extended CI Docker smoke 120 minutes by @rsasaki0109 in #410
- feat(fgo): add ratio-impact AR telemetry by @rsasaki0109 in #411
- feat(fgo): trace ratio-impact exclusion trials by @rsasaki0109 in #412
- feat(fgo): expose fresh SPP seed telemetry by @rsasaki0109 in #413
- Gate residual reprieve with fresh SPP agreement by @rsasaki0109 in #415
- Expose FGO BSR and FFRT telemetry by @rsasaki0109 in #416
- Trace geometry-free cycle-slip exposure by @rsasaki0109 in #418
- Trace Doppler-confirmed cycle-slip bands by @rsasaki0109 in #419
- Trace temporal LAMBDA integer consensus by @rsasaki0109 in #420
- Widen validated fresh-SPP reprieve gate by @rsasaki0109 in #421
- feat(fgo): safely reset geometry-free slip arcs by @rsasaki0109 in #423
- Add conditional multi-band AR shadow by @rsasaki0109 in #424
- Add multi-epoch AR shadow telemetry by @rsasaki0109 in #425
- Isolate Docker smoke CI by @rsasaki0109 in #427
- Add held-out carrier witness telemetry by @rsasaki0109 in #426
- Add multi-epoch graph-cost shadow telemetry by @rsasaki0109 in #428
- Add clock-resilient temporal carrier shadow by @rsasaki0109 in #429
- Add causal temporal carrier and DDPR quality telemetry by @rsasaki0109 in #430
- Stabilize macOS CI cold builds by @rsasaki0109 in #431
- Add causal DDPR bias-state telemetry by @rsasaki0109 in #432
- Add disjoint constellation AR shadow audit by @rsasaki0109 in #433
- Audit FGO ambiguity lifecycle events by @rsasaki0109 in #434
- Audit external Doppler DR ambiguity witness by @rsasaki0109 in #435
- Audit FGO NHC/ZUPT motion constraints by @rsasaki0109 in #436
- Add default-off quarantine/arc-restart FGO audits with negative-result documentation by @rsasaki0109 in #437
- Add adaptive-R phase-only/per-system alpha and low-count AR surplus-quality relaxation by @rsasaki0109 in #438
- docs(fgo): record adaptive-R phase-only/per-system real-data validation by @rsasaki0109 in #439
- docs(fgo): record low-count AR full-run1 falsification and backlog update by @rsasaki0109 in #440
- docs(fgo): record adaptive-R full-run1 A/B by @rsasaki0109 in #441
- Add low-count AR separation witness + correct wrong-FIX root cause by @rsasaki0109 in #442
- docs(fgo): record navi776-tc + adaptive-R combo A/B (negative) by @rsasaki0109 in #443
- docs: trim FGO comparison section in README by @rsasaki0109 in #444
- chore: clean repository layout and deduplicate RTK tooling by @rsasaki0109 in #445
- chore: consolidate experiment and archive directories by @rsasaki0109 in #446
- chore: consolidate analysis scripts under scripts/analysis by @rsasaki0109 in #447
- chore: consolidate PPC experiment scripts by @rsasaki0109 in #448
- test: split benchmark regression suite by domain by @rsasaki0109 in #449
- ci: move GitHub Actions to Node 24 by @rsasaki0109 in #450
- test: split CLI regression suite by @rsasaki0109 in #451
- refactor: extract web UI template by @rsasaki0109 in #452
- refactor: share receiver input handling by @rsasaki0109 in #453
- Add safe RINEX 4 reader dispatch by @rsasaki0109 in #463
- Add RINEX 4 observation parsing by @rsasaki0109 in #464
- Add RINEX 4 navigation metadata by @rsasaki0109 in #465
- Add RINEX 4 system data records by @rsasaki0109 in #466
- Add RINEX 4 GLONASS CDMA ephemerides by @rsasaki0109 in #467
- test: characterize observable CLI parser contracts by @rsasaki0109 in #454
- test: characterize observable CLI success contracts by @rsasaki0109 in #455
- refactor: share observable seed processing by @rsasaki0109 in #456
- refactor: share observable measurement helpers by @rsasaki0109 in #457
- refactor: share observable Huber helpers by @rsasaki0109 in #458
- refactor: reuse observable seed positions in gnss_vel_d by @rsasaki0109 in #459
- apps: discover Python command installs by @rsasaki0109 in #460
- apps: remove receiver sys.path fallbacks by @rsasaki0109 in #461
- apps: load shared scripts without sys.path by @rsasaki0109 in #462
- docs: fix Pages canonical URLs by @rsasaki0109 in #468
- feat: add self-contained offline demo by @rsasaki0109 in #469
- docs: improve first-run onboarding by @rsasaki0109 in #470
- release: prepare v0.2.0 distribution by @rsasaki0109 in #471
Full Changelog: v0.1.0...v0.2.0