Skip to content

Release 2026.5.0 - #197

Open
josephbirkner wants to merge 34 commits into
mainfrom
release/2026.5.0
Open

josephbirkner wants to merge 34 commits into
mainfrom
release/2026.5.0

Conversation

@josephbirkner

@josephbirkner josephbirkner commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Release 2026.5.0

Mapget provides native map-data tools and an authenticated relay for erdblick viewer actions. Native discovery no longer requires a viewer, and browser-native WebMCP can call native tools through the current browser login.

Merge first

Included

  • Opt-in MCP with provider-neutral bearer verification, resource metadata, bounded same-owner viewer routing and trusted build-exported catalogs.
  • Native source/layer/coverage discovery, field/type/enum schema queries, expression validation, feature/attribute extraction, source-data inspection, and independently authorized config/diagnostic tools.
  • Ranked schema domains with representative paths, enum previews, expansion arguments and narrowing guidance. Bounded extraction cursors retain scan positions and active tiles, check principal/catalog identity, expire and support retries.
  • Searchable, hot-reloaded Markdown help across packaged component documentation.
  • /mcp/browser authenticates verified browser proxy claims with mandatory allowed Origin/Host, preserves native permissions and denies session discovery or relayed viewer calls. Bearer authentication at /mcp remains unchanged.
  • Canonical schema transport, efficient shared-domain traversal, and protocol 5.3 projection sequences with compound values and per-expression errors.
  • Source-data metadata/model fixes and geometry bounds regression coverage. Standalone builds pin the simfil bounds fix rather than relying on a sibling checkout.

Validation

  • Full native suite before WebMCP: 276 cases / 14,136 assertions; final focused auth/native/action/help suite: 91 cases / 2,324 assertions.
  • 29 HTTP/WebSocket and browser-auth tests; 66/66 integrated help retrieval cases.
  • Actual Live/Classic extraction and schema probes, plus real Chrome WebMCP calls through erdblick.
  • All Linux, macOS and Windows platform/wheel build-and-test jobs passed at 9b45940 (run). Windows 3.12 passed on a fresh-runner retry after Git Bash failed to start. Standalone simfil pin and MSVC string-view comparison fixes are included.
  • Dev-wheel publication uploaded part of 2026.5.0.dev40201, then PyPI rejected further files because the mapget project reached its 10 GB quota. Publication requires storage quota relief before a retry.
  • Sonar remains a separate failing gate: new-code reliability rating D (required A).

Release TODOs

  • Complete current platform/wheel, coverage, Sonar and dev-wheel publication CI.
  • Merge dependency release first.
  • Finalize release notes and publish the final tag only after approval.
  • Complete hosted staging acceptance before enabling production MCP.

Deploy matching mapget/simfil/erdblick protocol 5.3 revisions. Hosted NDS SSO, proxy claim export and token refresh remain deployment acceptance tasks; disposable/local fixtures do not establish them.

@josephbirkner josephbirkner mentioned this pull request Sep 30, 2026
1 of 4 tasks
@josephbirkner

Copy link
Copy Markdown
Contributor Author

Schema-finalization fix published as 24a55d5; erdblick consumes it at 65e0b956, and MapViewer at 31e12bf.

The identical-snapshot WASM benchmark improved Classic Routing metadata initialization from 49.0 s to 0.58–0.74 s without removing query/schema metadata. Local validation passed all 206 native mapget cases, 109 erdblick native cases, the required WASM/profiling rebuild, and completion in all three browsers.

CI follow-up 2f743cb is test-only: serialize concurrent appends to the point-group test's result vector. The unmodified test reproduced the missing-result failure after 64 passing repetitions; the correction passed 500 repetitions and the full native suite. The separate ARM64/Python 3.11 WebSocket timeout passed on a single-job rerun without changes.

All 23 checks on this PR's current head are green, including the full platform matrix and coverage. MapViewer's 12 checks and erdblick's four checks are also green. Their pins remain on 24a55d5, because 2f743cb changes no production code.

@github-actions

Copy link
Copy Markdown
Package Line Rate Branch Rate Health
libs.detail 80% 43% ✔
libs.geojsonsource.include.geojsonsource 100% 50% ✔
libs.geojsonsource.src 70% 42% ➖
libs.gridsource.include.gridsource 40% 0% ❌
libs.gridsource.src 55% 30% ➖
libs.http-datasource.src 70% 40% ➖
libs.http-service.include.mapget.http-service 100% 100% ✔
libs.http-service.src 80% 41% ➖
libs.location.include.mapget.location 100% 100% ✔
libs.location.src 95% 46% ✔
libs.logging.include.mapget 14% 7% ❌
libs.model.include.mapget.model 57% 31% ➖
libs.model.src 75% 42% ➖
libs.service.include.mapget.service 82% 50% ✔
libs.service.src 82% 44% ✔
Summary 76% (24549 / 32437) 41% (34765 / 84235) ➖

Minimum allowed line rate is 50%

Use simfil's shared schema domains for metadata queries and completion. Preserve zero, one or multiple projected model values with indexed errors and native model-pool copies. Advance the stream contract to 5.3 and pin the matching simfil release revision.
Add an opt-in provider-neutral OAuth resource server, trusted action catalog and bounded viewer relay on an independent control loop. Use opaque UUID session identities and enforce same-owner action access. Include native authentication/relay tests, real HTTP/WebSocket integration coverage and deployment documentation. Prepare release 2026.5.0.
Replace linear visited-node searches with indexed marks, collect field and enum metadata in one traversal, and reuse fully finalized child summaries including completeness. Preserve cycles, unknown domains and refinalization after mutation.

Classic Routing WASM schema import falls from 49.0 seconds to 0.58-0.74 seconds against the same datasource snapshot. Add cyclic/refinalization and shared attribute-query-root coverage.
The source-union test receives independently completed output tiles on service worker threads. Protect its shared result vector rather than racing concurrent push_back calls. Reproduced a missing result after 64 successful repetitions before this change; 500 repetitions and the full native suite pass afterwards.
Expose bounded absolute source-data lookup, including smallest containing ranges, through C++ and Python. Reuse one attribute overlay contract for filters and native extraction.
Bundle the pinned global place inventory and packed boundaries, expose stable place IDs, and move lookup and geometry decoding onto the shared service workers.
Reuse service scheduling, schema-aware simfil contexts, native source references, and shared REST collectors. Add independent administrative permissions, exact result encoding, cooperative work/output budgets, and headless native operation with regression coverage.
Accept routing-safe conditional schemas and synchronize the 26-action viewer contract. Advertise screenshot metadata separately from bounded MCP ImageContent and test actual transport framing.
Validate replacements on the control loop, retain the last good artifact and existing call validators, and retire stale registrations without closing tile sockets or releasing uncertain mutation slots.
Remove the public depth cutoff, expose descriptor references, preserve feature ID compositions in source discovery, and reject extraction calls without an explicit selector.
Register component documentation folders, index annotated sections with SQLite FTS5, and bundle portable help in installs, wheels and native deployments. Cover live edits, rollback, request budgets, packaging and supported protocol versions.
josephbirkner and others added 7 commits October 18, 2026 17:42
Fingerprint constructor inputs without depending on YAML key order or quoting, retain actual registrations and namespaces, and rebuild only changed or unfinished sources. Keep add-on composition invalidation scoped to its map and finish it before publishing readiness. Cover cache and in-flight continuity, shared context changes, stale constructors, source ordering, retries and add-on transitions.
Update simfil to use target-aware bounded field-path discovery and report incomplete analysis.

Exercise Auto normalization through canonical LayerSchema transport with a synthetic shared conditions graph, while preserving explicit feature scope and mixed-owner fallback.
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
D Reliability Rating on New Code (required ≥ A)
D Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants