Summary
The MistDemo web backend already accepts optional zoneName and zoneOwner on POST /api/records/query (WebRequests.Query in Examples/MistDemo/Sources/MistDemoKit/Server/WebRequests.swift), but the browser query path does not send them — zone selection is CLI-only today.
Context
Follow-up from #426 / PR #426 review. Custom/shared zone query support landed on the API and CLI (mistdemo query --zone … --zone-owner …); the web panel was intentionally deferred.
Where to wire it
- Missing:
Examples/MistDemo/Sources/MistDemoKit/Resources/js/app.js — queryNotes() POST body (~line 508) sends recordType/sortBy/database but not zone fields.
- Backend surface (already done):
WebRequests.Query.zoneName / zoneOwner → CloudKitService+WebBackend.webQuery.
- UI precedent: zone name input already exists for records changes in
Resources/index.html (~line 165) and Resources/js/records.js (~line 43).
Acceptance
- Query panel exposes optional zone name + owner inputs (shared-zone case).
queryNotes() includes zoneName/zoneOwner in the JSON body when provided.
- WebServerTests-style coverage or a small browser test if feasible.
Related: #146, PR #426
Summary
The MistDemo web backend already accepts optional
zoneNameandzoneOwneronPOST /api/records/query(WebRequests.QueryinExamples/MistDemo/Sources/MistDemoKit/Server/WebRequests.swift), but the browser query path does not send them — zone selection is CLI-only today.Context
Follow-up from #426 / PR #426 review. Custom/shared zone query support landed on the API and CLI (
mistdemo query --zone … --zone-owner …); the web panel was intentionally deferred.Where to wire it
Examples/MistDemo/Sources/MistDemoKit/Resources/js/app.js—queryNotes()POST body (~line 508) sendsrecordType/sortBy/databasebut not zone fields.WebRequests.Query.zoneName/zoneOwner→CloudKitService+WebBackend.webQuery.Resources/index.html(~line 165) andResources/js/records.js(~line 43).Acceptance
queryNotes()includeszoneName/zoneOwnerin the JSON body when provided.Related: #146, PR #426