Add developer mode overlay (spec + README)#131
Closed
djscruggs wants to merge 7 commits into
Closed
Conversation
Specs a developer-only UI overlay for desktop development, where camera hardware and live issuers/relying parties are unavailable. Documents a localStorage-gated, triple-backtick-triggered panel with two tools: paste an exchange URL (reusing the existing scanner pipeline) and seed synthetic test credentials into the credential store. Login-bypass was investigated and dropped: the session is server-backed via @bedrock/web-session, so it cannot be faked in the UI layer. Spec only; implementation and README updates to follow in this branch.
Documents the package as a library consumed by a host Bedrock app, the `initialize()` entry point, and a Developer Mode section (marked planned) linking to the spec.
bc96836 to
bed4b9d
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #131 +/- ##
=======================================
Coverage 12.04% 12.04%
=======================================
Files 6 6
Lines 83 83
=======================================
Hits 10 10
Misses 73 73 Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
Notes that the dev-mode shell (flag, trigger, overlay + tool-registration API) is reusable across the bedrock-vue-* ecosystem and could be extracted to a future bedrock-vue-dev-mode package, mounted via @bedrock/vue's beforeMount hook. Keeps the generic/domain seam clean now without building the shared package prematurely (single consumer).
dlongley
reviewed
Jun 15, 2026
Comment on lines
+121
to
+125
| **Proposed eventual home:** a new published package **`bedrock-vue-dev-mode`**, | ||
| following the existing `bedrock-vue-*` component-library pattern (own repo, CI, | ||
| release). It would mount the overlay via `@bedrock/vue`'s existing app-bootstrap | ||
| `beforeMount` hook (`@bedrock/vue` already owns root-app creation for every | ||
| bedrock web app), so any app gets the panel for free without editing its layout. |
Member
There was a problem hiding this comment.
I don't think we need another package, we can just add this to bedrock-vue and trigger it based off of the bedrock frontend config.
davidlehn
reviewed
Jun 18, 2026
Format the Status/Date/Repo header block as a list so it no longer renders on a single line. Add a "Keybinding ownership" section under Trigger: a module should not unilaterally capture a global key, since it can collide with keys the host app or other modules use. Documents three mitigations (dev-mode only scope, configurable bound key, and deferring ownership to the app) and notes the extracted overlay should accept a toggle signal rather than install a global listener. Threads this into the Generalization section and the resolved-questions list.
Resolve the open "eventual home" question in favor of folding the generic dev-mode shell into @bedrock/vue (mounted via its beforeMount app-bootstrap hook) rather than a standalone package. Document layer ownership after the move: bedrock-vue owns the flag gate, overlay panel, and registerDevTool() API; the trigger is app-owned (overlay accepts a toggle signal, no global key listener); the wallet keeps its domain tools and registers them. Note that the move does not change the wallet's debugging data boundary, record that production-bundle handling is owned by bedrock-vue, and add a migration plan.
The developer-mode generic shell is being built in bedrock-vue, so the spec moves there. Drop docs/dev-mode-spec.md and the "Developer Mode" README section, leaving this PR as a general wallet README (usage and initialize()).
This was referenced Jun 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Draft PR scoping a developer mode overlay for desktop development of the
wallet, where camera hardware and live issuers / relying parties are
unavailable. This PR is currently spec + README only — no feature code yet.
Full design:
docs/dev-mode-spec.md.What's here
docs/dev-mode-spec.md— finalized spec.README.md— basic README; documents the library usage and a Developer Modesection (marked planned) linking to the spec.
Proposed design (see spec)
localStorage['wallet.devMode']flag (off by default) +triple-backtick to toggle the panel. Listener never installed unless the flag
is set, so production behavior is unchanged.
WalletLayout.vue.a
?devUrl=route param intoScannerExchangePage.store to develop display/management UIs without running an exchange.
@bedrock/web-sessionand cannot be faked in the UI layer.Privacy / security
No customer or personal data. Fixture VCs (when added) are synthetic. The dev
mode adds no new network surface and does not weaken server-side auth.