Skip to content

v1.0.5 — Villager Privacy, Signal Dark, Explorer & TELA fixes#16

Merged
DHEBP merged 13 commits into
mainfrom
dev
May 29, 2026
Merged

v1.0.5 — Villager Privacy, Signal Dark, Explorer & TELA fixes#16
DHEBP merged 13 commits into
mainfrom
dev

Conversation

@DHEBP
Copy link
Copy Markdown
Owner

@DHEBP DHEBP commented May 29, 2026

Summary

Maintenance release on top of v1.0.4 — bringing in community-contributed Villager privacy controls, a privacy-first wallet identity panel, and a batch of TELA, Explorer, Studio, and Simulator fixes.

Wallet

  • Signal Dark identity console — lock-reactor privacy panel for the wallet
  • Live dashboard refresh after incoming transactions (no more manual refresh)

Villager (community contribution — thanks @Capitao117, PR #15)

  • Privacy controls — 5s hover-lock with click-to-unlock for sensitive on-chain identity fields
  • Full design-system compliance for the new controls

TELA / Browser

  • Native clipboard bridge — clipboard read/write now works for dApps running in the sandboxed TELA iframe
  • Force compression for static DOC deploy content (smaller on-chain footprint)

Explorer

  • Correct atomic-unit thresholds in payload proof validation
  • Flag round-million proof amounts in the suspicious-pattern check

Studio / Simulator

  • Linux — restore native drag-and-drop in Studio
  • Simulator — auto-reconnect when derod survives an app restart

Test Plan

  • CI passes (Go build + test, Frontend build)
  • Wallet Signal Dark panel renders and toggles cleanly
  • Villager privacy hover-lock + click-to-unlock behaves as designed
  • TELA iframe clipboard read/write works
  • Explorer payload-proof validation flags the right amounts

MemeTactician and others added 13 commits May 6, 2026 16:43
Lets Villager and other dApps use navigator.clipboard inside the content
iframe; add Permissions Policy delegation via allow=.
When navigator.clipboard fails in WebKit (or after sandbox policy),
TELA apps can postMessage the parent; Browser uses Wails ClipboardSetText/
ClipboardGetText. Injected with XSWD bridge on DocShards mem server,
reverse-proxy HTML, local dev server, and srcdoc paths.
Wallet dashboard previously waited on a 15s balance-only poll, so a
received payment did not appear in Recent Activity or History until the
user clicked Refresh.

Introduce a three-tier refresh strategy:
- Push: subscribe to XSWD wallet:newTransaction and wallet:balanceChanged
  events so credits surface within a tick of the daemon emission.
- Pulse: 5s heartbeat reads cached balance and sync status; transaction
  history reloads only when the wallet height has actually advanced
  (Engram-style height-bounded scan) to avoid wasted work on quiet ticks.
- Force: manual Refresh and wallet-open paths still run SyncWallet for
  on-demand freshness, routed through the same helper.

Concurrent refreshes are coalesced via an activeRefresh promise; a
forceSync caller can upgrade a piggybacked cheap refresh. New incoming
or coinbase transactions trigger a toast.

Reset lastSyncedWalletHeight and syncStatus on close so a subsequently
opened wallet at a lower height still trips the height-advance gate.
Wails OnFileDrop was missing drops on Linux due to DPI/coordinate
mismatch with useDropTarget, stopPropagation blocking drag handlers,
and only using paths[0] for multi-item file manager drops.

- Add ResolveDropPaths and LoadFilesFromPaths for folder/file resolution
- Hit-test drop zones with device-pixel to CSS coord conversion
- Wire Install DOC, Batch Upload, and DocShards to native drops
- preventDefault only on file drag events (wails#3686)
Sync Settings "Running" state with an orphaned simulator daemon on :20000
instead of requiring a manual Start after rebuild.
Ensure TELA-STATIC-1 and CSS payloads are gzip/base64 encoded before validation so binary assets like favicon.ico don't fail non-ASCII checks during batch deploy.
Rebuild the wallet panel's privacy into one "Signal Dark" model, centered
on a lock-reactor core that IS the control:

- Lock/unlock core with a sonar breath while live; tapping it fires a
  chromatic-glitch powerdown to a locked ember (reuses the splash motion DNA).
- Single masking model: addressMasked/balanceMasked derive from privacyMode;
  retired the per-field hide-balance/hide-address eye toggles.
- Full redaction in stealth — address, balance, tokens, and other wallets'
  addresses mask together; local filenames stay so switching still works.
- No layout reflow between live and stealth (fixed-height readout).
- Persists via privacy_mode and loads during the splash, so reopening never
  flashes real data.

Builds on the villager-privacy foundation.
… check

Warning 4 used a hardcoded 1 trillion atomic literal, which at the correct
100k atomic/DERO conversion flagged only multiples of 10M DERO (just 10M and
20M in the valid range). Restore the original intent of flagging exact
multiples of 1M DERO via 1_000_000 * ATOMIC_UNITS_PER_DERO.
@DHEBP DHEBP merged commit cbbaa89 into main May 29, 2026
4 checks 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.

2 participants