Skip to content

feat(ext): API key settings popup + chrome.storage.local (Closes #233)#366

Merged
gHashTag merged 5 commits intomainfrom
feat/ext-api-key-settings
Apr 29, 2026
Merged

feat(ext): API key settings popup + chrome.storage.local (Closes #233)#366
gHashTag merged 5 commits intomainfrom
feat/ext-api-key-settings

Conversation

@gHashTag
Copy link
Copy Markdown
Owner

Summary

  • settings.html: Popup UI with inputs for ZAI_API_KEY, ZAI Base URL, MCP Server URL
  • settings.js: Auto-save to chrome.storage.local with debounce, show/hide toggle
  • manifest.json: Added default_popup: settings.html to action
  • bg-sw.js: Added get_settings message handler for sidepanel key access

Architecture

Extension popup → chrome.storage.local → bg-sw.js → sidepanel (via messaging)

Keys never leave the extension boundary. BrowserOS has zero API key references.

Closes #233

…oses #327, Closes #253)

#332: Add docs/mcp/MCP_SETUP_GUIDE.md — Perplexity local+remote MCP setup
#327: Add crates/trios-train-cpu/README.md — migration status + Training-Flow V2 plan
#253: Add missing RING.md/AGENTS.md/TASK.md for UR-04, UR-05, UR-06 + UR-03 TASK.md
…#321)

- Add Cargo.toml with workspace deps (serde, rand, anyhow)
- Add src/lib.rs exporting mup and schedule modules
- Register trios-train-cpu in workspace members
- Fix schedule.rs f32/f64 type mismatch in interpolate()
- Fix mup.rs ambiguous float literal in test

15/15 tests pass. Refs #321 consolidation plan.
- Use GlobalSignal::new(fn) instead of Signal::new(value)
- Use .signal() accessor to convert GlobalSignal to Signal in hooks
- Fixes 8 type mismatch errors in UR-00

UR-01+ still blocked by dioxus_signals version conflict (0.5.6 vs 0.6.3).
- Pin dioxus + dioxus-signals to 0.6 in workspace Cargo.toml
- UR-00: use GlobalSignal::new(fn) + .signal() accessor
- UR-01: clone theme before matching to fix lifetime
- UR-02: change children prop from String to Element (Dioxus 0.6)
- Regenerate Cargo.lock with unified dioxus 0.6.3

UR-03 through BR-APP still need Dioxus 0.6 component API migration.
- Add settings.html: popup UI for ZAI_API_KEY, base URL, MCP URL
- Add settings.js: auto-save via chrome.storage.local with debounce
- Update manifest.json: default_popup points to settings.html
- Update bg-sw.js: respond to get_settings messages from sidepanel
- Dark theme matching Trinity brand colors
- Show/hide toggle for API key field
- Keys never leave extension boundary (per I4)
@gHashTag gHashTag merged commit 2b6e874 into main Apr 29, 2026
2 of 11 checks passed
@gHashTag gHashTag deleted the feat/ext-api-key-settings branch April 29, 2026 22:38
gHashTag pushed a commit that referenced this pull request May 6, 2026
… nested workspace

- laws-guard L2: pass PR body via env var (PR_BODY); previous interpolation
  broke shell parser on parentheses inside the PR body ("(Closes #233 / PR #366)").
- .trinity/state/LAWS_HASH: regenerate against repo-relative path (was pinned
  to /Users/playra/trios/LAWS.md, an absolute mac path that doesn't exist on
  GHA runners) and refresh hash for current LAWS.md after \u00a713 amendment.
- crates/trios-ext/Cargo.toml: align nested workspace members with on-disk
  ring directory names (SILVER-RING-EXT-00..03 + BRONZE-RING-EXT). Map
  package names trios-ext-ring-ex0N to the historic crate aliases trios-ext-0N
  via [dependencies] package = ... so src/lib.rs re-exports keep working
  without source changes.
- crates/trios-ext/rings/BRONZE-RING-EXT: add stub [lib] + src/lib.rs so the
  Bronze output ring satisfies Cargo's workspace-member contract (Cargo
  requires a target per member; the deliverable is dist/, not Rust library).

Local verification (R8):
  sha256sum --check .trinity/state/LAWS_HASH \u2192 LAWS.md: OK
  cargo clippy --manifest-path crates/trios-ext/Cargo.toml -- -D warnings \u2192 Finished

[agent=perplexity-computer-l446-unblock]
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.

feat(trios-ext): API key storage in Chrome Extension — remove keys from BrowserOS

1 participant