Skip to content

Releases

v1.5.2 — v1.5.2 — dashboard renders everything in tables

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

feat: dashboard renders everything in tables (v1.5.2)

Replace the per-vault mini-tables + loose text with a single flat
Lipgloss table per section. Each vault contributes rows — team vaults
get one row per member, personal vaults get a single summary row.

Columns: Vault | Member | Access | Scopes | Sync | Size

Before: 7 vaults rendered as 7 separate blocks with "No team members"
text between each, taking ~40 lines. After: one clean table, ~15 lines.

Empty sections (SHARED WITH YOU / LEGACY DIRECT SHARES) are hidden
entirely when there's nothing to show.

Legacy direct shares now render as a table too (Vault | User | Status |
Direction) instead of a plain "outgoing: N pending: M" line.

v1.5.1 — v1.5.1 — dashboard sync status

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

feat: dashboard shows sync status + local-only vaults (v1.5.1)

Each vault row now shows its sync state alongside the member table:

production 2 members · owner @nauman · synced 2026-04-12 · 4.7 KB

Three sync states match localvault sync status:

  • "synced YYYY-MM-DD" — vault exists both locally and on InventList
  • "remote only" — on InventList but not pulled to this machine
  • "local only — not synced" — on disk but never pushed

Local-only vaults (exist on disk, not on the server) now appear under
OWNED BY YOU with a "local only" badge so you can see them and decide
whether to push. Previously they were invisible to the dashboard.

Size is shown when the server reports it (e.g. "4.7 KB").

3 new tests: synced-with-date, remote-only, local-only.
Suite: 507 → 510 runs, 0 failures.

v1.5.0 — v1.5.0 — localvault dashboard

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

feat: localvault dashboard — aggregate team access view (v1.5.0)

Before v1.5.0 there was no way to answer "who has access to what across
all my vaults" in a single command. team list [VAULT] showed one
vault; sync status showed sync state not access. Users had to loop
over every vault by hand.

localvault dashboard does the aggregation in one call:

OWNED BY YOU — team vaults where you are the owner, rendered
as a Lipgloss table per vault listing every
member with their Access (full/scoped) and
Scopes columns.
SHARED WITH YOU — team vaults where someone else is the owner
and you are a member. Same table shape so you
can immediately see whether your access is
full or scoped and to which keys.
LEGACY DIRECT SHARES — pre-v1.2 one-shot direct-share counts
(outgoing + pending). Shown for completeness;
users are pointed at receive / revoke.

v1.4.0 — v1.4.0 — transactional rotate + scoped sharing efficiency

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

feat: transactional rotate + scoped sharing efficiency (v1.4.0)

Addresses the two remaining medium audit findings. Also fixes a latent
bug in scoped-member rotation that the old code never actually exercised.

Finding #5 — transactional rotate

Before: team rotate and remove --rotate wrote new ciphertext + meta
to local disk and THEN pushed to the remote. A network / 5xx failure
on push left local rotated but remote stale. Especially bad for
revocation: the user sees "success" but the removed member still has
access on the remote bundle.

After: build the full new bundle (new_secrets_bytes, new_meta_bytes,
new_slots, packed JSON) entirely in memory, push to the remote FIRST,
only commit to local disk once push succeeds. If anything goes wrong
the user can retry with the same passphrase.

Finding #6 — scoped sharing inefficiency + empty test file

v1.3.5 — v1.3.5 — close audit gaps in CLI help + reference doc

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

docs: close audit gaps in CLI help + reference (v1.3.5)

Audit found that several command surfaces were registered in code but
missing from the rendered localvault help and the published CLI
reference doc. Close every gap.

CLI help (localvault help):

  • Add explicit localvault sync SUBCOMMAND, localvault team SUBCOMMAND, and localvault keys SUBCOMMAND lines pointing at
    localvault help <namespace> so users discover the registered
    Thor namespaces, not just the highlighted commands inside them.
  • Mention the backward-compat team add/remove/verify aliases inline
    under TEAM SHARING (they exist for muscle-memory but the top-level
    forms are preferred).
  • Split the old "TEAM & SYNC" combined section into separate SYNC,
    TEAM SHARING, and KEYS sections — much easier to scan.
  • Add [VAULT] to team init, team list, team rotate to reflect
    the v1.3.1 positional-vault support.

v1.3.3 — v1.3.3 — auto-prompt for passphrase in team commands, remove connect

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

feat: team commands auto-prompt + remove dangerous connect (v1.3.3)

The big UX fix users kept hitting:

  • team init / team rotate / add / remove --rotate no longer
    require a separate localvault unlock step. If the vault isn't
    cached in the session, they prompt for the passphrase inline (same
    UX as sync pull). This is done via a new shared
    TeamHelpers#ensure_master_key that delegates to Vault.open and
    verifies by calling .all.

  • Fix the team init success hint that still said
    "Next: localvault team add @handle -v VAULT". It now says
    "Next: localvault add @handle -v VAULT" to match the v1.3.0 top-level
    command surface.

Security / cleanup:

  • Remove the connect command entirely. It took the API token as a
    command-line argument (→ shell history), didn't validate the token,

v1.3.0 — v1.3.0 — move add/remove/verify to top-level CLI

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

feat: move add/remove/verify to top-level CLI (v1.3.0)

The @ prefix already signals a person operation, so localvault team add @bob
was redundant. Promote add, remove, and verify to top-level commands while
keeping team init, team list, and team rotate under the team subcommand
(those are vault-level operations).

  • Extract shared helpers to lib/localvault/cli/team_helpers.rb (new module,
    included in both CLI and CLI::Team)
  • Move add/remove/verify implementations to cli.rb
  • Keep team add/remove/verify as backward-compat delegators in cli/team.rb
  • Update help text, README command tables, and session/scenario references
  • Add tests for top-level verify (4 cases) and backward-compat for each alias

v1.2.4 — bump: v1.2.4

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

bump: v1.2.4

v1.2.0 — docs: add RDoc to remove_key_slot private method

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

docs: add RDoc to remove_key_slot private method

v1.1.0 — fix: require 'time' for Time#iso8601 on Ruby 3.3

Choose a tag to compare

@nauman nauman released this 12 Apr 16:01

fix: require 'time' for Time#iso8601 on Ruby 3.3