Repository navigation
Releases
Releases · LeeSwallow/KeyHarbor
v0.3.1
What's Changed
New
- feat(audit): group why agents stopped with audit --denials by @LeeSwallow in #193
- feat(session): let a person lift a locked session with keyharbor unlock and the app by @LeeSwallow in #195
Changed
- feat(vault): warn when a secret field holds a common value by @LeeSwallow in #194
- fix(vault): stop warning that a card security code is too short to mask by @LeeSwallow in #196
Under the hood
- chore(release): 0.3.1 by @LeeSwallow in #197
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's Changed
New
- feat(run): let the child ask for values by name over a private socket by @LeeSwallow in #146
Changed
- feat(app): ask an Authenticator port before protected commands by @LeeSwallow in #151
Fixed
- fix(extension): recover from rejected popup calls and check command answers by @LeeSwallow in #158
- fix(app): offer browser rules, start hidden when opening is refused, and wipe edited values by @LeeSwallow in #173
- fix(prototype): retry the supervisor lock while open hands it over by @LeeSwallow in #180
Security
- fix(guard): hide filled inputs in screenshots by @LeeSwallow in #144
- fix(core): wipe age import and export plaintext on every early return by @LeeSwallow in #174
- fix(host): keep the filled reply out of serde_json::Value by @LeeSwallow in #184
Docs and plugin
- docs: mark what v0.2.0 already ships in the roadmap by @LeeSwallow in #148
- docs: tidy design docs and roadmap before 0.3.0 by @LeeSwallow in #188
Under the hood
- chore(guard): measure masking throughput by @LeeSwallow in #145
- refactor(design-check): group rules into folders and remove hidden panics by @LeeSwallow in #159
- refactor(core): split session open and name stored status strings by @LeeSwallow in #160
- refactor(guard): split Guard and GuardedBrowser by responsibility and withhold when the masker cannot be built by @LeeSwallow in #165
- test(broker): give the ego probe test room on a loaded machine by @LeeSwallow in #166
- refactor(extension): split webext port implementations and share the item name rule with Rust by @LeeSwallow in #168
- refactor(core): group vault and transfer use cases into folders by @LeeSwallow in #164
- refactor(broker): group browser modules and share one DOM helper by @LeeSwallow in #162
- refactor(domain): split vault and session vocabulary into context modules by @LeeSwallow in #172
- test: wait for page conditions instead of fixed sleeps in Chrome tests by @LeeSwallow in #178
- refactor(supervisor): split control command parsing and record every start and capture failure by @LeeSwallow in #176
- refactor(cli): read kind arguments from the registry and split command modules by @LeeSwallow in #175
- refactor(app): move the window's rules into domain and core and send them as DTO fields by @LeeSwallow in #181
- test: warm up Chrome before the real-browser tests and write fake browser files whole by @LeeSwallow in #183
- refactor(mcp): move surface rules into core and guard and share tool plumbing by @LeeSwallow in #177
- refactor(cli): wait for a handed-over site through core by @LeeSwallow in #185
- refactor(app): route window clicks and forms through handler tables by @LeeSwallow in #186
- build(deps): update vitest and web-ext past critical advisories by @LeeSwallow in #187
- chore(release): 0.3.0 by @LeeSwallow in #189
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
New
- feat(vault): Korean application fields and custom fields for identity by @LeeSwallow in #127
- feat(browser): choose a dropdown option with browser_select by @LeeSwallow in #128
- feat(browser): upload files from allowed folders with browser_upload by @LeeSwallow in #129
- feat(mcp): --non-interactive returns needs_user instead of waiting by @LeeSwallow in #130
- feat(session): choose the browser with --browser auto|chrome|ego-lite by @LeeSwallow in #131
- feat(broker): drive ego lite through a CDP relay by @LeeSwallow in #132
- feat(app): sessions, identity fields and browser settings for job applications by @LeeSwallow in #136
- ci(extension): package and publish to Chrome Web Store and AMO by @LeeSwallow in #137
Changed
- feat(session): wait for a site the person hands over (session receive, session_wait_site) by @LeeSwallow in #105
- feat(extension): fill and save logins from the popup by @LeeSwallow in #111
- feat(app): drag a browser tab onto a session to hand its site over by @LeeSwallow in #113
- feat(session): remove sessions and say why one did not start by @LeeSwallow in #126
- feat(extension): connect the extension in ego lite by @LeeSwallow in #133
Fixed
- fix(session): find Chrome where it is installed by @LeeSwallow in #135
Security
- feat(browser): autofill and save for the person's own browser, behind Touch ID by @LeeSwallow in #107
Docs and plugin
- docs: README with app screenshots, how it works, and FAQ by @LeeSwallow in #109
- docs: design job applications and ego lite support by @LeeSwallow in #125
Under the hood
- chore(release): 0.2.0 by @LeeSwallow in #139
Full Changelog: v0.1.1...v0.2.0
v0.1.1
What's Changed
Changed
- feat(app): secure input window, always on top and kept out of screenshots by @LeeSwallow in #83
- feat(vault): import a Chrome password export as site-bound logins by @LeeSwallow in #87
- feat(app): search and filter items with ⌘F by @LeeSwallow in #95
- feat(vault): rename or move an item, refused while a policy rule names it by @LeeSwallow in #97
- feat(app): undo an item removal for 10 seconds instead of asking first by @LeeSwallow in #99
Fixed
- fix(cli): describe KeyHarbor in --help, not only browser sessions by @LeeSwallow in #85
- fix(app): settings in words with switches and choices from the design system by @LeeSwallow in #89
- fix(app): every screen in words and design-system parts by @LeeSwallow in #91
- fix(app): icons in the side bar tabs, screen titles and palette by @LeeSwallow in #93
Docs and plugin
- docs: decide phase 7 and the remaining handoff work (R-46, ADR-0017 accepted) by @LeeSwallow in #101
Under the hood
- chore(release): 0.1.1 by @LeeSwallow in #103
Full Changelog: v0.1.0...v0.1.1
v0.1.0
What's Changed
New
- feat: layered design system and a site handoff extension for Chrome and Firefox by @LeeSwallow in #17
- feat: per-site login state by @LeeSwallow in #37
- feat(mcp): generate and put vault items as drafts by @LeeSwallow in #39
- feat: secure input requests answered outside the agent by @LeeSwallow in #41
- feat: confirm drafts on login success by @LeeSwallow in #43
- feat(broker): capture logins typed by the user as drafts by @LeeSwallow in #45
- feat: grants scope sessions to origins by @LeeSwallow in #47
- feat: hand a site's login from your Chrome to an agent session by @LeeSwallow in #49
- feat(run): hand values over as files, templates and arguments by @LeeSwallow in #53
- feat(vault): path names and tags to find items by by @LeeSwallow in #55
- feat(vault): keep one previous value and revert to it by @LeeSwallow in #57
- feat(vault): mark fields that are not secret by @LeeSwallow in #59
- feat(app): Tauri shell and command layer for the admin app by @LeeSwallow in #63
- feat(app): secure input form, handoff resume, policy and settings screens by @LeeSwallow in #65
- feat(app): concealed clipboard and session open, stop and recover by @LeeSwallow in #67
- feat(app): menu bar icon with what waits for the user by @LeeSwallow in #69
- build(app): bundle KeyHarbor.app and a DMG with the CLI in Contents/Helpers by @LeeSwallow in #71
Changed
- refactor(extension): wire types in adapters, one session-name contract with Rust by @LeeSwallow in #22
- refactor: surfaces call use cases, one composition root by @LeeSwallow in #23
- refactor: one home for placeholders, agent names, settings and states by @LeeSwallow in #24
- refactor: supervisor crate composes broker and guard by @LeeSwallow in #28
- refactor: inner crates do no I/O by @LeeSwallow in #29
- feat(run): forward signals and mask output as it streams by @LeeSwallow in #51
- feat(app): add, edit and remove items from the admin app by @LeeSwallow in #73
- feat(app): set how long a copied value stays on the clipboard by @LeeSwallow in #75
- feat(app): notify the person of new requests, handoffs, drafts and denials by @LeeSwallow in #77
- feat(app): command palette with ⌘K and dialogs that cover the window by @LeeSwallow in #79
Fixed
- fix: wait for Chrome to finish writing DevToolsActivePort by @LeeSwallow in #35
Security
- fix: phase 3 hardening and the developer secrets domain by @LeeSwallow in #15
Docs and plugin
- docs: coding, docs and diagram rules for agents by @LeeSwallow in #9
- docs: plan for boundaries and repository layout by @LeeSwallow in #13
- docs: boundary analysis results and PR order by @LeeSwallow in #21
- feat(plugin): MCP server, skills and session hook for Claude Code and Codex by @LeeSwallow in #61
Under the hood
- chore: lay out the repository root by layer by @LeeSwallow in #30
- chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #1
- chore(deps): bump goreleaser/goreleaser-action from 6 to 7 by @dependabot[bot] in #3
- chore(deps): bump actions/configure-pages from 5 to 6 by @dependabot[bot] in #7
- chore(deps): bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #6
- chore(deps): bump actions/deploy-pages from 4 to 5 by @dependabot[bot] in #5
- chore(deps): bump rusqlite from 0.37.0 to 0.41.0 in /prototype by @dependabot[bot] in #33
- chore(deps): bump libsqlite3-sys from 0.35.0 to 0.38.2 by @dependabot[bot] in #32
- chore(deps): bump base64 from 0.22.1 to 0.23.1 by @dependabot[bot] in #31
- chore(release): prepare v0.1.0 with the admin app DMG by @LeeSwallow in #81
New Contributors
- @LeeSwallow made their first contribution in #9
- @dependabot[bot] made their first contribution in #1
Full Changelog: https://github.com/LeeSwallow/KeyHarbor/commits/v0.1.0