summaryrefslogtreecommitdiff
path: root/internal/keepass
AgeCommit message (Collapse)Author
2026-04-18keepass: fix parseContent doc comment and add importBytes ctx notePaul Buetow
- Replace the inaccurate "Go compiler can optimise away" claim in parseContent's doc with an accurate explanation: callers that already hold a string pass it directly, while []byte callers make a single explicit conversion at the call site, keeping the conversion visible rather than hidden inside the function (100 Go Mistakes #40). - Add a comment in importBytes explaining why ctx is not threaded into addAttachment or addTextEntry: both are synchronous, purely in-memory operations with no I/O or blocking calls that could respect cancellation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18test: add integration tests for keepass backend, improve coverage to 81.6% ↵Paul Buetow
(task q4) Add 430 lines of new integration tests covering WriteBack edit round-trip, Search action handlers (cat/export), ShredAllExported, ImportRecursive, TestParsePickerAction (all 10 fzf keys), TestBuildPickerEntries with RowID assertions, ImportForce, ensureRootGroup edge cases, and a captureStdout helper. Add TTY-unavailability comment to FzfInteractive explaining why Fzf/FzfInteractive/runFzfInteractive have no automated tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17feat: add internal/keepass package with full Backend implementation (tasks ↵Paul Buetow
k4+l4+m4) Read-write KeePass backend implementing backend.Backend: - WalkIndexes flattens groups into 'Group/Title' virtual entries - LoadData returns formatted Password/User/URL/Notes for text entries or raw bytes for binary attachments - WriteBack hook enables edit round-trip through the kdbx file - Add/Import/ImportRecursive/Remove with atomic tmp+rename save - Binary attachments surface as virtual 'Group/Title/filename' entries; Add to such a path creates/replaces the attachment on the parent entry - AtomicSave exported for reuse by cli/kdbx_store.go - parseContent is the tolerant inverse of formatContent - Helpers EnsureGroup, UpsertEntryByTitle, SetEntryField, SplitDescriptionPath, SanitizeRelativePath exported so cli/kdbx_store.go avoids duplication Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16fix: correct misleading comment in keepass_test.go duplicate-skip testPaul Buetow
The comment at the force=false import test said "should succeed and add the entry" but the test actually verifies that a duplicate entry is silently skipped (entry count must not change). Updated to say "should skip silently because Work/Email already exists." Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>