Skip to content

v1.1.0 - Code Refactor

Choose a tag to compare

@tinkermesomething tinkermesomething released this 09 Feb 17:32
· 38 commits to main since this release
f8abee3

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.