Skip to content

Unified caller settings and scalable function controls - #14

Merged
batteryshark merged 2 commits into
mainfrom
uplift/caller-settings
Oct 26, 2026
Merged

batteryshark merged 2 commits into
mainfrom
uplift/caller-settings

Conversation

@batteryshark

Copy link
Copy Markdown
Owner

Summary

  • One caller-settings popup/sheet with Enabled tools and Policy tabs across web, desktop and Mac.
  • Whole-tool enablement by default, with expandable per-function switches. Filtered All/None affect only matching functions; Needs review filters Review policies.
  • One revision-checked SQLite save commits both tabs, approval invalidation and audit together. Disabled functions retain their policy choices but cannot execute; unseen authority is preserved.
  • Device-local drafts survive closing/relaunching. Changed-elsewhere and unknown-save states retain the draft and require explicit side-by-side comparison; writes are never automatically replayed.
  • Desktop website storage is persistent so its drafts survive restart.

Verification

  • Python: 1,312 tests run, zero failures, 16 existing skips.
  • Swift: 91 tests passed.
  • Package build/isolated install and local Mac build/signature verification passed.
  • Offscreen WebKit: 31 cases, 758 assertions, zero failures, including the 30-tool × 20-function fixture and narrow layouts.
  • Ten native offscreen captures cover enabled/policy/search/empty/stale states. Live keyboard traversal and VoiceOver speech were not tested.
  • New-commit secret scan is clean. The archive-aware tree scan reports only a verified historical source-checksum false positive; no exemption was added.

See Caller settings for draft behavior, conflict resolution and API compatibility. Legacy policies retain their previous semantics until saved as combined settings; older policy-only updates preserve the new enablement gates.

@batteryshark
batteryshark merged commit a8d31ba into main Oct 26, 2026
1 check passed
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.

1 participant