Releases: mdostal/rolodex
Releases · mdostal/rolodex
Release list
v0.5.0
What's Changed
- Build out the GitHub Pages site to match the other project sites' bar by @mdostal in #12
- Fix MCP tool descriptions for cross-harness use, not just Claude Code by @mdostal in #13
- Real Portunus SecretsAdapter backend + install-time choice by @mdostal in #14
- Add support/consulting links to README and GitHub Pages by @mdostal in #15
- Replace placeholder favicon with generated icon set by @mdostal in #16
- Add appearance settings: Brass theme + app icon picker by @mdostal in #17
- Document multi-person call-notes intake in the rolodex skill by @mdostal in #18
- Add a plain scriptable CLI + enrich-then-confirm skill pattern by @mdostal in #19
- Fix isMainModule breaking under a symlinked bin (npm link/-g) by @mdostal in #20
- Electron main process scaffold (packaging epic, stories 1-2) by @mdostal in #21
- Native launch-at-login toggle (packaging epic, story 3) by @mdostal in #22
- electron-builder packaging config (packaging epic, story 4) by @mdostal in #23
- Tag-triggered release workflow (packaging epic, story 5) by @mdostal in #24
- Docs: reflect Electron packaging as real (packaging epic, story 6) by @mdostal in #25
- SECURITY: fix packaged Electron app binding to all interfaces by @mdostal in #26
- Fix stale/misleading docs found by pre-release grill pass by @mdostal in #27
- Add contact deletion (Store/HTTP/MCP/CLI/UI) — two-way-sync epic, story 1 by @mdostal in #28
- Add googleEtag column, captured from People API pulls — two-way-sync epic, story 2 by @mdostal in #29
- Implement real push() — two-way-sync epic, story 3 by @mdostal in #30
- Local delete also deletes on Google, best-effort — two-way-sync epic, story 4 by @mdostal in #31
- Wire Google push/both through MCP, CLI, and the shell UI by @mdostal in #32
- Update docs for real two-way Google sync and rolodex_delete by @mdostal in #33
- Add #/settings screen + migrate Follow-up section (settings-account-screen epic, story 1) by @mdostal in #34
- Migrate Appearance section into Settings screen (settings-account-screen epic, story 2) by @mdostal in #35
- Migrate Autostart + Google reconnect into Settings, add real connection status (settings-account-screen epic, story 3) by @mdostal in #36
- Add Database location section to Settings (settings-account-screen epic, story 4) by @mdostal in #37
- Add Secrets backend section to Settings (settings-account-screen epic, story 5) by @mdostal in #38
- Retire popover dead code, add Settings screen tests, update docs (settings-account-screen epic, story 6, final) by @mdostal in #39
- Add shared toast component (ui-feedback-states epic, story 1) by @mdostal in #40
- Unify status CSS + migrate Sync/Push/Delete/Verdict/NextStep to toast (ui-feedback-states epic, story 2) by @mdostal in #41
- Surface previously-silent failures via toast (ui-feedback-states epic, story 3) by @mdostal in #42
- Add loading states to contact detail view and edit form (ui-feedback-states epic, story 4) by @mdostal in #43
- Fix not-found dead-code bug (ui-feedback-states epic, story 5) by @mdostal in #44
- Tests + docs for ui-feedback-states epic (story 6, final) by @mdostal in #45
- Align CSS tokens between index.html and wizard.html (ui-visual-cleanup epic, story 1) by @mdostal in #46
- Replace hardcoded values with tokens (ui-visual-cleanup epic, story 2) by @mdostal in #47
- Document and apply focus-management rule (ui-visual-cleanup epic, stories 3+4) by @mdostal in #48
- Visual verification + docs for ui-visual-cleanup epic (story 5, final) by @mdostal in #49
- Fix docs drift found by a pre-release grill pass by @mdostal in #50
- Release finalization: bump to v0.5.0 by @mdostal in #51
- release: promote dev → main (v0.5.0) by @mdostal in #52
- Fix v0.5.0 release build failures on Windows and Linux by @mdostal in #53
- release: promote dev -> main (v0.5.0 build fixes) by @mdostal in #54
- Fix Windows incompatibility in npm scripts (NODE_OPTIONS) by @mdostal in #55
- release: promote dev -> main (Windows cross-env fix) by @mdostal in #56
- Only run test suite on ubuntu-latest in release workflow by @mdostal in #57
- release: promote dev -> main (scope release tests to ubuntu) by @mdostal in #58
- Fix release-publish race condition, make Windows non-blocking by @mdostal in #59
- release: promote dev -> main (release race fix, windows non-blocking) by @mdostal in #60
Full Changelog: v0.4.0...v0.5.0
rolodex v0.4.0
Download and add to an agent
This release includes a ready-to-run package (rolodex-0.4.0.tgz, attached
below) — no build step needed, just extract, install its 3 dependencies,
and point your agent host at it.
tar xzf rolodex-0.4.0.tgz
cd package
npm install --omit=devThen add it to your MCP host's config. For Claude Desktop
(claude_desktop_config.json):
{
"mcpServers": {
"rolodex": {
"command": "node",
"args": ["--experimental-sqlite", "/absolute/path/to/package/dist/mcp/server.js"],
"env": { "ROLODEX_DB": "/absolute/path/to/wherever/you/want/rolodex.db" }
}
}
}Restart your agent host and it will have 5 real tools: rolodex_upsert,
rolodex_search, rolodex_followups, rolodex_log_interaction,
rolodex_sync_google. .claude/skills/rolodex/SKILL.md
teaches an agent how to use them well, if your host supports skills.
The same package also runs the full standalone app (npm run shell) —
see README.md.
[0.4.0] - 2026-08-12
Changed
google-oauth-flowrelease finalization. Applied the plannedminorversion bump (0.3.0→0.4.0) for the real Google OAuth consent flow.
Added
- A real Google OAuth 2.0 "loopback IP address" consent flow (
src/lib/google-oauth-flow.ts) — the current Google-required mechanism for a Desktop-app client, replacing the dead out-of-band flow. Google sync is now actually reachable by a real user: the wizard's Google-connect step completes a real sign-in instead of stopping at a placeholder, and a token refreshed during a routine sync is now persisted back to the keychain instead of silently re-derived every time. - A working Cancel button on the wizard's Google-connect step, genuinely tearing down the local OAuth listener instead of running out a 120-second timeout.
- A "Reconnect Google" action in the shell's settings popover, for re-establishing a revoked/expired connection without rerunning the first-run wizard.
rolodex v0.3.0
[0.3.0] - 2026-08-12
First tagged release.
Changed
mcp-tool-bodiesrelease finalization. Applied the plannedminorversion bump (0.2.1→0.3.0) for wiring the MCP tool bodies.followups-viewrelease finalization. Applied the plannedpatchversion bump (0.2.0→0.2.1) for the follow-up tracking epic.standalone-app-foundationrelease finalization. Applied the plannedminorversion bump (0.1.0→0.2.0) for the standalone-app foundation epic.
Added
- Standalone desktop app: local shell + server hosting the SQLite store directly (
npm run shell), superseding the MCP-only pre-1.0 shape as the primary way to run rolodex. - Full contact CRUD (add, view, edit, verdict, next-step) through a real UI, backed by real
Storemethods. - A pluggable
SecretsAdapter(macOS Keychain via thesecurityCLI, with an in-memory fallback) for OAuth credential storage — no environment-variable fallback, ever. - A 5-screen first-run setup wizard (welcome, database location, Google connect, secrets check, finish) with no login/logout anywhere — this app is single-user-per-instance.
- One-shot Google Contacts sync (
pull()), preserving local-only fields (verdict, angle, next step) across a sync. - Full-text search (FTS5 with a LIKE-based fallback on Node builds without the fts5 module) and interaction logging with history.
- CI (typecheck + test on push/PR).
Added (followups-view)
Store.needsFollowUp()implemented for real — the last unimplemented piece of the originalStoreinterface — surfacing contacts with an overdue next step.- A configurable follow-up window and grace period, backed by a new
settingstable, rather than hardcoded numbers — editable from a settings panel in the app.
Added (mcp-tool-bodies)
- All 5
rolodex_*MCP tools (upsert,search,followups,log_interaction,sync_google) wired to realStore/GoogleSynclogic — the last unimplemented surface in the project. An agent host (Claude Desktop, another agent) can now actually read/write the owner's rolodex through MCP, not just get placeholder text back. - A real favicon (
assets/favicon.svg, index-card motif in the paper/brass palette) and Open Graph meta tags for the shell app.
Documentation
docs/ARCHITECTURE.mdandREADME.mdrewritten to describe the standalone-app-first architecture, explicitly superseding the prior MCP-first framing.