v1.1.0 - Code Refactor
CODE REFACTOR
V1.1.0
- refactor: DRY cloudflare client, pre-compile regexes, add test coverage
- Extract doRequest() and checkAPIError() helpers in cloudflare client
- Pre-compile regex patterns at package level in config validation
- Cache getFilteredEntries() calls in key handlers
- Add DNSClient interface for testability
- Add tests for diff engine, config validation, and audit logger
- refactor: extract DeleteState + SyncState sub-structs from Model
Group delete/sync fields into dedicated sub-structs to reduce Model's
flat field count. Pure mechanical rename — no behavior changes.
- refactor: extract BulkDeleteState sub-struct from Model
Group bulk delete fields into dedicated sub-struct. Pure mechanical
rename — no behavior changes.
- refactor: extract BackupState sub-struct from Model
Group backup manager fields (cursor, scroll, preview, retention,
restore scope) into dedicated sub-struct. Pure mechanical rename.
- refactor: extract AuditState sub-struct from Model
Group audit log fields (logger, logs, cursor, scroll) into dedicated
sub-struct. Pure mechanical rename — no behavior changes.
- refactor: extract MigrationState sub-struct, delete dead field
Group migration wizard fields into dedicated sub-struct. Also removes
unused snippetCategoryFilter field (dead code, 0 usages).
- refactor: extract SnippetPanelState + ProfileState sub-structs
Group snippet panel fields (cursor, scroll, editing state) and profile
fields (current name, available, edit data/cursor) into dedicated
sub-structs. Pure mechanical rename — no behavior changes.
- refactor: extract trivial key handlers to key_handlers_simple.go
Move 22 simple switch case bodies to dedicated methods in a new file.
Each case becomes a one-line delegation. No behavior changes.
Extracted handlers: search, filters, sort, add entry, bulk delete,
backup, audit log, batch ops, sync, migration, help, quit, cancel
confirmation, page up/down, home/end, list j/k navigation.
- refactor: extract confirmation handler to key_handlers_confirm.go
Move 'y' key handler (114 lines, 11 branches) to handleConfirmAction()
in dedicated file. Switch case becomes a one-line delegation.
- refactor: extract esc/dismiss handler to key_handlers_dismiss.go
Move 219-line esc/ctrl+w case body into handleDismiss() method,
replacing inline logic with one-line delegation.
- refactor: extract navigation handlers to key_handlers_nav.go
Move 412-line down/up case bodies into handleNavigateDown() and
handleNavigateUp() methods, replacing inline logic with one-line
delegations.
- refactor: extract enter handler to key_handlers_enter.go
Largest remaining case (315 lines) extracted to handleEnterKey() method.
Handles ViewList edit, snippet detail, error dismiss, wizard delegation,
delete/restore scope, bulk delete, add/edit validation, search accept,
backup restore/cleanup/preview.
- refactor: extract tab/shift+tab handlers to key_handlers_tab.go
169 lines extracted to handleTabKey() and handleShiftTabKey() methods.
Both handle profile edit, wizard, snippet wizard (5 step branches),
list view navigation, and add/edit form field cycling.
- refactor: extract space handler to key_handlers_toggle.go
94 lines extracted to handleSpaceKey() method. Handles profile edit
toggles, snippet wizard checkboxes (6 step branches), list view
entry selection, and add/edit form field toggles.
- refactor: extract backspace handler to key_handlers_simple.go
63 lines extracted to handleBackspaceKey() method. Handles profile edit,
add/edit form field deletion, search query trimming, and snippet wizard
IP restriction CIDR field trimming.
- refactor: extract remaining medium handlers to key_handlers_simple.go
13 handlers extracted: handleOpenSnippetWizard, handleDeleteAction,
handleProfileOrPreview, handleRestoreBackup, handleNavigateRight/Left,
handleDeleteBackup, handleCleanupBackups, handleRefreshData,
handleGoToTop/Bottom, handleEditProfile, handleAddProfile.
- refactor: extract pre-switch text input to key_handlers_input.go
155 lines extracted to handleTextInput() method with 3-value return
(model, cmd, handled). key_handlers.go is now a pure dispatch table
at 170 lines (down from 1,157 before phase 3, 2,111 originally).
- refactor: extract CRUD command functions to commands_crud.go
- refactor: extract bulk command functions to commands_bulk.go
- refactor: extract backup command functions to commands_backup.go
- refactor: extract async message handlers to update_handlers.go
- refactor: extract mouse handler to update_mouse.go
- refactor: extract snippet operations to snippet_operations.go
- refactor: extract view rendering to views_render.go
- refactor: extract model constructors and message types from app.go
- docs: update README for v1.1.0 release
Update architecture section to reflect refactored file structure,
bump code statistics, and move roadmap to v1.1 (current) / v1.2 (planned).
I have used Claude Code for this.