Repository navigation
Open
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-insLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/queuedHas a queued task in the Supabase agent queueHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first lookNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Description
Follow-up from the capability taxonomy v0 investigation (#2027, record: doc/2026-10-29T14-05-00Z_investigation_capability_taxonomy/, PR #2337).
Goal
loc.* capabilities — loc.position (one-shot) and loc.watch (subscription with an interval floor) — with an accuracy ceiling, and the consent seam they exercise.
Scope
- Reading carries
{lat, lon, accuracy_m, fix_age_ms, source};source∈gnss | network | ip | caller_supplied, never silently degraded. - Precision ceiling: the device's
outside_ceiling+precision_ceilingreason. An imprecise fix must be refusable rather than plausible-looking. - Sensor caps are not wildcard-grantable — refine the existing grant ledger so
*never reachesloc.*. - Consent:
cap_denied+consent_required/os_permission_denied; withdrawal arrives as{"cap":"loc.watch","event":"revoked","reason":"consent_withdrawn"}and closes the stream. no_fixonfailedwhen there is no sky view.
Acceptance
- Both names in CATALOG with providers; tests for precision-ceiling refusal, wildcard-not-reaching, and an open
loc.watchreceiving a revocation event. - Documented interval floor and battery note for long watches.
- Per-platform: browser geolocation, phone tiers, ESP32 GNSS.
Out of scope
Geofencing, trail history, reverse geocoding, any persistent location store.
Acceptance criteria
- loc.position and loc.watch are in CATALOG with providers; readings carry {lat, lon, accuracy_m, fix_age_ms, source} with source in gnss|network|ip|caller_supplied, never silently degraded
- Tests cover: precision-ceiling refusal (outside_ceiling + precision_ceiling), wildcard grants never reaching loc.* in the grant ledger, and an open loc.watch receiving the consent_withdrawn revocation event and closing
- Consent refusals use cap_denied + consent_required / os_permission_denied; no_fix on failed when there is no sky view
- Documented interval floor and battery note for long watches; per-platform notes (browser geolocation, phone tiers, ESP32 GNSS)
Metadata
Metadata
Assignees
Labels
app/idPackage/app: id (pkgs/ or apps/ in this repo)Package/app: id (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-insLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)Ordinary priority (the default)queue/queuedHas a queued task in the Supabase agent queueHas a queued task in the Supabase agent queuesource/creatorFiled by the new-issue-creator jobFiled by the new-issue-creator jobstatus/needs-triageNot yet triaged; needs a first lookNot yet triaged; needs a first looktask/triageQueue packet kind: verify, reproduce, and route this itemQueue packet kind: verify, reproduce, and route this item
Activity
developing-today commentedon Oct 29, 2026
CODE-1186
dezren39 commentedon Oct 29, 2026
Intake review
Related: parent investigation #2027 (record: PR #2337); siblings #2338-#2345 are the other taxonomy follow-ups
Notes: Filed 2026-10-29T14:04Z from #2027. Still live: no open or merged PR implements it. This is the family's consent-seam exercise — the grant-ledger change (no wildcard reach) touches shared code, hence effort/l.
Risks: Location is the most sensitive capability in the taxonomy: a wildcard grant reaching loc.* or a silently degraded fix are both trust-breaking. The refusal tests matter more than the happy path.
Suggested approach: Grant-ledger wildcard exclusion first (with its test), then position, then watch + revocation.
🤖 Agent note · filed
meta/enrichedapplied. Still-live check this pass: no merged PR or fix commit explicitly resolving this issue was found; where a queue triage task owns verification, it is named in the notes.dezren39 commentedon Nov 3, 2026
agent-note:v1 — task 7915 triaged (Lane A worker, 2026-11-03): issue #2341 is STILL LIVE and unimplemented at current main; fix path scoped below.
Evidence (fresh reads at origin/main 1c1aa4a, 2026-11-03):
loc.position/loc.watchoccur ONLY in the id: investigate: capability-based specialization — forms, location, media across web, ESP32/MQTT, and text/audio modes #2027 investigation record (doc/2026-10-29T14-05-00Z_investigation_capability_taxonomy/) — no code, no CATALOG entries, no providers anywhere under pkgs/.cap_denied/consent_requiredappear in pkgs/id/crates/id-core/src/world_caps.rs, pkgs/id/src/sandbox.rs, pkgs/id/src/world/tests.rs — world_caps.rs is the CATALOG/grant-ledger locus for the fix.Fix path: (1) add loc.position + loc.watch to the CATALOG in world_caps.rs with the reading shape {lat, lon, accuracy_m, fix_age_ms, source}; (2) refine the grant ledger so
*never reaches loc.* (sensor caps excluded from wildcard grants); (3) precision-ceiling refusal (outside_ceiling + precision_ceiling), consent refusals via cap_denied + consent_required/os_permission_denied, consent_withdrawn revocation event closing an open watch, no_fix on failed; (4) providers per platform (browser geolocation, phone tiers, ESP32 GNSS) with documented interval floor + battery note; (5) the three named tests. Issue stays open as the implementation record (effort/l, multi-platform — not a small fix).51 remaining items
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off
dezren39 commentedon Nov 5, 2026
Lane A (code-a) claimed task 9301 for issue #2341 and handed it off to the opencode execution lane per fleet queue lane assignment. Fresh check: issue #2341 is OPEN, no hard-stop labels (held / user/owned / do-not-merge / do-not-auto-edit), open PRs: #4624. Labels reflect claimed state (queue/claimed, work/assigned, status/in-progress). Next: the laptop opencode claimant launches the bound session for task 9301. Attempts 24/24.
dezren39 commentedon Nov 5, 2026
🤖 Agent note · handed off