Skip to content

feat: TUI, iconify search, AI-usable, configs#5

Merged
Blankeos merged 28 commits intomainfrom
feat/tui
Feb 7, 2026
Merged

feat: TUI, iconify search, AI-usable, configs#5
Blankeos merged 28 commits intomainfrom
feat/tui

Conversation

@Blankeos
Copy link
Copy Markdown
Owner

@Blankeos Blankeos commented Feb 7, 2026

Lots of updates (note the version will be 1.0.2), the screenshots are just in dev atm.

  • Rebuilds the interactive CLI into a modular TUI flow with dedicated views/popups for add, delete, rename, help, and main search/navigation.
  • Adds full Iconify integration via a shared client and new iconmate iconify commands (search, collections, collection, get) with script-friendly text/JSON output.
  • iconify integration is also AI-usable, they can use just commands like bash.
  • Introduces local/global config loading and precedence (folder, preset, template, SVG viewer command), including validation + warning behavior.
  • Adds config schema tooling (config-gen) and generated schema artifacts for editor support (iconmatelocal.schema.json, iconmateglobal.schema.json).
  • Improves npm binary bootstrap/install behavior and refreshes docs/branding assets, with extra integration-test coverage for add-flow edge cases.
image image image image image

- Introduce `AppConfig` to pass folder, preset, and template from CLI. -
Load existing icons from `index.ts` and support live filtering. -
Implement search mode with incremental filtering of the icon list. - Add
a delete‑popup UI and logic to remove icons from disk and index. -
Update `.gitignore`, main entry point, and UI rendering for the new
features.
- centering of logo and  tagline.
- better postinstall of the npm cli. downloading the binary on demand if
  it doesnt exist.
- better layout just vertical, easy.
- added rename.
- added config parsing. svg_view_cmd specifically also works.
- adding help and see status of configs with `?`
- Replaces the ambiguous empty-string preset with an explicit `"normal"`
  value
- Treats legacy `preset: ""` as deprecated, warns user and upgrades to
  `"normal"`
- Updates all documentation, JSON schema, config parsing and UI to use
  the new name
- Adjusts CLI/TUI logic so `"normal"` requires an icon source (like the
  old `""` did)
- Keeps `"emptysvg"` unchanged for blank placeholder generation
@Blankeos
Copy link
Copy Markdown
Owner Author

Blankeos commented Feb 7, 2026

Review

  • LGTM for merge with one minor nit.
  • nit Splitting lines by ';' in delete/rename/remove functions may discard comments on mixed export lines, e.g. at src/utils.rs:544, src/utils.rs:714, src/main.rs:773. Safe if index.ts is exports-only.
  • Optional caution: duplicate check skips when parsing custom output templates fails (src/main.rs:595), possibly allowing overlooked duplicates. Low risk.
  • Validation: ran cargo test all 62 tests passed.
  • Rating: 4.7/5
  • Confidence: 86% (high)
    Looks good for merge overall. I reviewed the latest delta (b421a56) and ran the suite (cargo test, 62 passed).
  • Merge readiness: no blockers found.
  • Minor nit (non-blocking): index rewrite logic can drop non-export fragments (like trailing comments) when a line contains both an export and extra text because only parsed export statements are re-emitted (src/main.rs:773, src/utils.rs:544, src/utils.rs:714).
  • Minor hardening note: duplicate-conflict validation is skipped when a custom output template cannot be parsed as the expected TS export shape (src/main.rs:595), so custom templates may bypass alias/target conflict checks.
  • Good changes: conflict checks now happen before writes, concatenated-export handling is improved, and TUI cleanup is safer via RAII guard.
  • Rating: 4.7/5
  • Confidence: 86% (high)

@Blankeos Blankeos merged commit 09692fd into main Feb 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant