gitlab-runner-tui 0.1.13

A terminal UI for monitoring GitLab CI runners
# Changelog

## [0.1.13]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.12...v0.1.13 (2026-06-10)


### Performance Improvements

* ⚡ Bolt: Eliminate string allocations inside UI render loop ([#128]https://github.com/damacus/gitlab-runner-tui/issues/128) ([880fc52]https://github.com/damacus/gitlab-runner-tui/commit/880fc5211521ff66223068d9fbdf069f5a2c1a21)
* ⚡ Bolt: Hoist string allocation in TUI render loop ([#135]https://github.com/damacus/gitlab-runner-tui/issues/135) ([15b7dd0]https://github.com/damacus/gitlab-runner-tui/commit/15b7dd08176e68d55960e83e5fd8891a315681bf)

## [0.1.12]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.11...v0.1.12 (2026-05-14)


### Performance Improvements

* ⚡ Bolt: Eliminate heap allocations in TUI render loop ([#126]https://github.com/damacus/gitlab-runner-tui/issues/126) ([61814a6]https://github.com/damacus/gitlab-runner-tui/commit/61814a6f4fa87c5b94ec07cd4fecc7c1faa8270e)

## [0.1.11]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.10...v0.1.11 (2026-05-12)


### Features

* add stale runner cutoff ([#125]https://github.com/damacus/gitlab-runner-tui/issues/125) ([5ec5630]https://github.com/damacus/gitlab-runner-tui/commit/5ec563086e771f2d00cacd863e894cb0791235d1)


### Performance Improvements

* ⚡ Bolt: Pre-compute formatted tags in UI ([#118]https://github.com/damacus/gitlab-runner-tui/issues/118) ([d2cc7b2]https://github.com/damacus/gitlab-runner-tui/commit/d2cc7b211092fefcec3a872557d451b13c51b116)

## [0.1.10]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.9...v0.1.10 (2026-04-23)


### Performance Improvements

* ⚡ Bolt: Optimize tag sorting by comparing slices directly ([#114]https://github.com/damacus/gitlab-runner-tui/issues/114) ([21527f8]https://github.com/damacus/gitlab-runner-tui/commit/21527f82877929425cde0698b0072101b5bfbc7a)

## [0.1.9]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.8...v0.1.9 (2026-03-24)


### Features

* add --demo flag, extract run_tui(), wire up run_demo() ([b8455f2]https://github.com/damacus/gitlab-runner-tui/commit/b8455f28f62d9effe12d0dce5451df9e43bdc516)
* add AND/OR toggle for popup tag filtering, rename filter bar ([0192961]https://github.com/damacus/gitlab-runner-tui/commit/01929616530680fd20bb1b739db55a9b622a77dd)
* add App::seed_demo_data() for injecting fixture runners ([cf7aad5]https://github.com/damacus/gitlab-runner-tui/commit/cf7aad5268c0068690bd9f7e8f55a9f3ea072b6b)
* add CLI JSON output, one-shot mode, and fix build warnings ([db38359]https://github.com/damacus/gitlab-runner-tui/commit/db383597bb96994398e55c597495ce5868e5aee2)
* Add colours ([7d199d1]https://github.com/damacus/gitlab-runner-tui/commit/7d199d1de70634045cc238fe289683c8a397c9d9)
* add demo_mode flag to App, guard start_search ([de1f54d]https://github.com/damacus/gitlab-runner-tui/commit/de1f54d2134af36ba98d4f56c440b40fc781b7d4)
* add fixtures module with demo_runners() ([fc8a457]https://github.com/damacus/gitlab-runner-tui/commit/fc8a45719859f9dcfdd5631facd024289910455a)
* add screenshot recording script and README Preview section ([8c8e06d]https://github.com/damacus/gitlab-runner-tui/commit/8c8e06dab719d59ee1ebc27dc469455a13587965)
* add tag search filter to filter popup, drop igor compat ([8d1528f]https://github.com/damacus/gitlab-runner-tui/commit/8d1528f506c539ac3d3a7bde7f166f2716b30170)
* adopt ratatui 0.28-0.30 API improvements ([d5702f1]https://github.com/damacus/gitlab-runner-tui/commit/d5702f1b78f25b61f5d2f9856073a87cc9f7a270)
* compact top bar with semantic tab chips and subtitle ([0e8ce21]https://github.com/damacus/gitlab-runner-tui/commit/0e8ce2181c55928da07b1caa6cb15485a3282883)
* enrich runner detail panel with group, URL, paused state, and registration date ([03d7536]https://github.com/damacus/gitlab-runner-tui/commit/03d7536c509c466338f535df55ff1b947cab8465)
* Enter expands runner detail drawer on all tabs ([a1c8d46]https://github.com/damacus/gitlab-runner-tui/commit/a1c8d46ec0f6035d67c358fa3940a20f5211b60c)
* open selected runner in browser on Enter (↵ open in status bar) ([b23258c]https://github.com/damacus/gitlab-runner-tui/commit/b23258c8463c43861ea48720c13bd40dfd20b95f)
* **tui:** add highlight symbol and spacing to tables to prevent layout jump and improve row selection visibility ([9fbfba8]https://github.com/damacus/gitlab-runner-tui/commit/9fbfba8d573b6e33db03703ceebc16db49fb837b)
* **tui:** add visual status symbols to tables for better signal density ([7b1335e]https://github.com/damacus/gitlab-runner-tui/commit/7b1335ef1990631c34d2bb950026d35925c3bb94)
* **tui:** elevate UI with rounded borders, styled titles, and Gemini-style gradients ([29cd11a]https://github.com/damacus/gitlab-runner-tui/commit/29cd11ad68ca416bcf47a5880d51a36b4be2d3d9)
* **tui:** elevate UI with rounded borders, styled titles, and Gemini-style gradients ([2fd1671]https://github.com/damacus/gitlab-runner-tui/commit/2fd1671932746607bb3310664e528b259259442b)
* **tui:** improve status visibility and standardize mode-specific help hints ([83cbce2]https://github.com/damacus/gitlab-runner-tui/commit/83cbce2af4a53480d1cfba6938a3576b0105bcd8)


### Bug Fixes

* **security:** hide GITLAB_TOKEN value in help output and add regression test ([2c9b5ef]https://github.com/damacus/gitlab-runner-tui/commit/2c9b5ef581c15038ab397551975bdfc2621c0a21)
* seed_demo_data resets fetch state fields, test asserts runners populated ([e856485]https://github.com/damacus/gitlab-runner-tui/commit/e85648580d80dfa07e5d23d74d3e6fda1d47191a)

## [0.1.8]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.7...v0.1.8 (2026-03-18)


### Features

* 🎨 Palette: Add cursor to filter input ([#58]https://github.com/damacus/gitlab-runner-tui/issues/58) ([4517a32]https://github.com/damacus/gitlab-runner-tui/commit/4517a322a7e862fde14cc202433cd332f5c3ff62)
* 🎨 Palette: Add empty states for TUI tables ([#53]https://github.com/damacus/gitlab-runner-tui/issues/53) ([c1b57e2]https://github.com/damacus/gitlab-runner-tui/commit/c1b57e227feccbc30c33547347a79c3d7d0a0bae)
* 🎨 Palette: Improve filter input and rotation empty state UX ([#61]https://github.com/damacus/gitlab-runner-tui/issues/61) ([12822ac]https://github.com/damacus/gitlab-runner-tui/commit/12822ac7d82a939e08c2924a5f86cc195e930103)
* add AllRunners discovery mode using /runners/all with fallback to /runners ([a10beeb]https://github.com/damacus/gitlab-runner-tui/commit/a10beebafcc656b26f37a689b58b865d53003b2e)
* add extract_runner_tags function ([b17f142]https://github.com/damacus/gitlab-runner-tui/commit/b17f142970fdaa65929e809aee7194aa7019d567)
* add FilterPopup key handler, update dashboard bindings (f popup, t text, remove v) ([7d93c86]https://github.com/damacus/gitlab-runner-tui/commit/7d93c8696a171546a208eb3d78404002f801438a)
* add FilterPopupSection type and filter popup state fields to App ([1b6a028]https://github.com/damacus/gitlab-runner-tui/commit/1b6a028d89a81b90f62233378528ab1666cf2bf2)
* add open_filter_popup, toggle_selected_tag, selected_tags_summary ([a9cc283]https://github.com/damacus/gitlab-runner-tui/commit/a9cc283290ac3c4a20e49a1c9c1a14b53d7fb0f1)
* add render_filter_popup, update filter bar, status bar, help view ([1be7edc]https://github.com/damacus/gitlab-runner-tui/commit/1be7edcae68032e761fc54ab9829c1aaafcec85c)
* add Tags: to runner detail section ([978967c]https://github.com/damacus/gitlab-runner-tui/commit/978967cee14f732e9de93661459358e398c57d82)
* improve token masking in settings modal ([897848b]https://github.com/damacus/gitlab-runner-tui/commit/897848b18faf0e3ea9fde4b02927a305a0777122)
* merge popup and text tags in build_filters, retain selected_tags in apply_view_state ([f432b79]https://github.com/damacus/gitlab-runner-tui/commit/f432b796d6186b23ed06c4bbbb10bdf60c878a57)
* non-blocking background search keeps TUI responsive during large queries ([d520f13]https://github.com/damacus/gitlab-runner-tui/commit/d520f136dd192b8478fa32e132e6320e1e8ba449)
* overhaul sorting to cycle through columns from left to right ([a441cce]https://github.com/damacus/gitlab-runner-tui/commit/a441cce1484a67592cfc0213f16f93289a7fdc77)
* polish runner detail pane, remove age filter, improve status bar ([8a5ca03]https://github.com/damacus/gitlab-runner-tui/commit/8a5ca03c55fdb0a898140c83a56945e27b72ffa4)
* **security:** Fix credential leakage in debug output ([#38]https://github.com/damacus/gitlab-runner-tui/issues/38) ([ed3ece1]https://github.com/damacus/gitlab-runner-tui/commit/ed3ece1629285397b4284443b44662e93f6ce57a)


### Bug Fixes

* 🔒 prevent panic on missing token by using anyhow Context ([#45]https://github.com/damacus/gitlab-runner-tui/issues/45) ([737aedb]https://github.com/damacus/gitlab-runner-tui/commit/737aedb382d167a345f7f5ab5631993bf09d9c39)
* correct 403 fallback detection and show actual endpoint in settings ([eac16f5]https://github.com/damacus/gitlab-runner-tui/commit/eac16f5c1e4c465a0148ef1462e30e4672161748)
* correct sort shortcut label and add header indicators ([3ea2d61]https://github.com/damacus/gitlab-runner-tui/commit/3ea2d612ad818409e1f14034224d0b536921bb8f)
* default to all-runners discovery, restore 403 fallback, show active endpoint ([f5352eb]https://github.com/damacus/gitlab-runner-tui/commit/f5352eb09224ea1058a33e63ed7cf82f5122ab94)
* display human-readable runner type in detail panel (project/group/instance) ([08b72e1]https://github.com/damacus/gitlab-runner-tui/commit/08b72e1ab62b2ef8cafaa65650ec7cb69cbaf25e)
* remove silent fallback, add d-key endpoint cycle, always show description ([e15132b]https://github.com/damacus/gitlab-runner-tui/commit/e15132b2ad0c68d3525570e292c9da5aa302850d)
* **ui:** Add visible cursor to filter input ([#40]https://github.com/damacus/gitlab-runner-tui/issues/40) ([aec3a02]https://github.com/damacus/gitlab-runner-tui/commit/aec3a0220fbd1457491e84016673e6791da0803e)


### Performance Improvements

* ⚡ Bolt: concurrent runner detail and manager fetch ([#51]https://github.com/damacus/gitlab-runner-tui/issues/51) ([0396e87]https://github.com/damacus/gitlab-runner-tui/commit/0396e8730fe0926362d5beaaf4f2b6012b3a858b)
* ⚡ Bolt: Remove redundant clone in worker map ([#47]https://github.com/damacus/gitlab-runner-tui/issues/47) ([c6ac665]https://github.com/damacus/gitlab-runner-tui/commit/c6ac66515453afb992ce559fbcc55d607b7cb349)
* ⚡ Bolt: Remove redundant string cloning in TUI render loop ([#62]https://github.com/damacus/gitlab-runner-tui/issues/62) ([25cb6bf]https://github.com/damacus/gitlab-runner-tui/commit/25cb6bfec3e5e80e19adb9dcada1a11ec93ed4d2)
* ⚡ Bolt: replace clone and sort in TUI render loop with min/max_by_key ([#57]https://github.com/damacus/gitlab-runner-tui/issues/57) ([582bc1a]https://github.com/damacus/gitlab-runner-tui/commit/582bc1a85da17ea361344dcf844a95abb0d5861a)
* ⚡ Bolt: Use const styles in render loop ([#43]https://github.com/damacus/gitlab-runner-tui/issues/43) ([897c441]https://github.com/damacus/gitlab-runner-tui/commit/897c441423b5768fc8d7888816d842bd7b4ff390)

## [0.1.7]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.6...v0.1.7 (2026-03-03)


### Bug Fixes

* **deps:** update rust crate dirs to v6 ([#30]https://github.com/damacus/gitlab-runner-tui/issues/30) ([aebde2f]https://github.com/damacus/gitlab-runner-tui/commit/aebde2f81443a1de47b326d190c63fcaf3f0b631)

## [0.1.6]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.5...v0.1.6 (2026-03-03)


### Bug Fixes

* **deps:** update rust crate crossterm to 0.29 ([#22]https://github.com/damacus/gitlab-runner-tui/issues/22) ([561b653]https://github.com/damacus/gitlab-runner-tui/commit/561b653a6356a13832d063f1fc25cd97d43fabeb)
* **deps:** update rust crate toml to v1 ([#31]https://github.com/damacus/gitlab-runner-tui/issues/31) ([22b4ed9]https://github.com/damacus/gitlab-runner-tui/commit/22b4ed93887ca1372317b20f5ec0076d3555e2f8)

## [0.1.5]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.4...v0.1.5 (2026-02-11)


### Bug Fixes

* add crates.io metadata and LICENSE for publishing ([#13]https://github.com/damacus/gitlab-runner-tui/issues/13) ([2d0cbc5]https://github.com/damacus/gitlab-runner-tui/commit/2d0cbc559114094ce0e974e93dc3613c920a7a18)

## [0.1.4]https://github.com/damacus/gitlab-runner-tui/compare/v0.1.3...v0.1.4 (2026-02-11)


### Features

* runner rotation detection with polling and CI/headless mode ([#3]https://github.com/damacus/gitlab-runner-tui/issues/3) ([bed52f6]https://github.com/damacus/gitlab-runner-tui/commit/bed52f606e7418126955a71df7276ddb74f2f546)


### Bug Fixes

* 'q' and '?' keys now work correctly during FilterInput mode ([9ef2967]https://github.com/damacus/gitlab-runner-tui/commit/9ef2967b97a31a05e5f653dccae96909f6280358)
* add /api/v4/ prefix to API URLs and error_for_status check ([54b61ac]https://github.com/damacus/gitlab-runner-tui/commit/54b61ac8cdf91f946493d98f2db8eed77b7eaadd)
* add clean shutdown for event handler task ([9e28221]https://github.com/damacus/gitlab-runner-tui/commit/9e2822191aaa6474925688b564028d2943789726)
* chain docker build from release-please workflow ([#10]https://github.com/damacus/gitlab-runner-tui/issues/10) ([dcaaa23]https://github.com/damacus/gitlab-runner-tui/commit/dcaaa235ebe3e40586d9e76f6ce682b49ac4acb1)
* check all managers for offline/health detection, not just first ([9e75906]https://github.com/damacus/gitlab-runner-tui/commit/9e75906bfc636a8f2129ba103f5141e7df4d4aae)
* clear stale data when switching between commands ([c193c2b]https://github.com/damacus/gitlab-runner-tui/commit/c193c2bc8e74861d94ba8513ba0ae790180a792f)
* improve tag enrichment reliability ([7cf4b2c]https://github.com/damacus/gitlab-runner-tui/commit/7cf4b2cfcd7b48154a3ad641a2957de9bf11605f)
* remove .env with real token from tracking, add .env.example ([a59d2e5]https://github.com/damacus/gitlab-runner-tui/commit/a59d2e55ef5369c0c88b984845b488dc6ba0cb95)
* remove non-functional Tab key reference from help text ([75f0181]https://github.com/damacus/gitlab-runner-tui/commit/75f0181ed70c3b97f3ba9febf70cd9af08815b77)
* resolve clippy type_complexity in test helper ([72785d9]https://github.com/damacus/gitlab-runner-tui/commit/72785d9d668e5804639acf943764ba88aa54b5f6)
* server-side tag filtering, runner detail enrichment, parallel fetches ([5d31374]https://github.com/damacus/gitlab-runner-tui/commit/5d31374b0459419c6bed3755f1ff21a5ccb56c76)
* switch Docker image to Alpine builder and scratch runtime ([#6]https://github.com/damacus/gitlab-runner-tui/issues/6) ([758bba2]https://github.com/damacus/gitlab-runner-tui/commit/758bba2de050d9511d12be88a8a46e62d66c275a)
* trigger docker and release workflows on release-please tags ([#8]https://github.com/damacus/gitlab-runner-tui/issues/8) ([ff15d30]https://github.com/damacus/gitlab-runner-tui/commit/ff15d3050dee17df1b8dc9d248ad80b6a3b0fc13)

## [0.1.3]https://github.com/damacus/gitlab-runner-tui/compare/gitlab-runner-tui-v0.1.2...gitlab-runner-tui-v0.1.3 (2026-02-11)


### Bug Fixes

* trigger docker and release workflows on release-please tags ([#8]https://github.com/damacus/gitlab-runner-tui/issues/8) ([ff15d30]https://github.com/damacus/gitlab-runner-tui/commit/ff15d3050dee17df1b8dc9d248ad80b6a3b0fc13)

## [0.1.2]https://github.com/damacus/gitlab-runner-tui/compare/gitlab-runner-tui-v0.1.1...gitlab-runner-tui-v0.1.2 (2026-02-11)


### Bug Fixes

* switch Docker image to Alpine builder and scratch runtime ([#6]https://github.com/damacus/gitlab-runner-tui/issues/6) ([758bba2]https://github.com/damacus/gitlab-runner-tui/commit/758bba2de050d9511d12be88a8a46e62d66c275a)

## [0.1.1]https://github.com/damacus/gitlab-runner-tui/compare/gitlab-runner-tui-v0.1.0...gitlab-runner-tui-v0.1.1 (2026-02-11)


### Features

* runner rotation detection with polling and CI/headless mode ([#3]https://github.com/damacus/gitlab-runner-tui/issues/3) ([bed52f6]https://github.com/damacus/gitlab-runner-tui/commit/bed52f606e7418126955a71df7276ddb74f2f546)


### Bug Fixes

* 'q' and '?' keys now work correctly during FilterInput mode ([9ef2967]https://github.com/damacus/gitlab-runner-tui/commit/9ef2967b97a31a05e5f653dccae96909f6280358)
* add /api/v4/ prefix to API URLs and error_for_status check ([54b61ac]https://github.com/damacus/gitlab-runner-tui/commit/54b61ac8cdf91f946493d98f2db8eed77b7eaadd)
* add clean shutdown for event handler task ([9e28221]https://github.com/damacus/gitlab-runner-tui/commit/9e2822191aaa6474925688b564028d2943789726)
* check all managers for offline/health detection, not just first ([9e75906]https://github.com/damacus/gitlab-runner-tui/commit/9e75906bfc636a8f2129ba103f5141e7df4d4aae)
* clear stale data when switching between commands ([c193c2b]https://github.com/damacus/gitlab-runner-tui/commit/c193c2bc8e74861d94ba8513ba0ae790180a792f)
* improve tag enrichment reliability ([7cf4b2c]https://github.com/damacus/gitlab-runner-tui/commit/7cf4b2cfcd7b48154a3ad641a2957de9bf11605f)
* remove .env with real token from tracking, add .env.example ([a59d2e5]https://github.com/damacus/gitlab-runner-tui/commit/a59d2e55ef5369c0c88b984845b488dc6ba0cb95)
* remove non-functional Tab key reference from help text ([75f0181]https://github.com/damacus/gitlab-runner-tui/commit/75f0181ed70c3b97f3ba9febf70cd9af08815b77)
* resolve clippy type_complexity in test helper ([72785d9]https://github.com/damacus/gitlab-runner-tui/commit/72785d9d668e5804639acf943764ba88aa54b5f6)
* server-side tag filtering, runner detail enrichment, parallel fetches ([5d31374]https://github.com/damacus/gitlab-runner-tui/commit/5d31374b0459419c6bed3755f1ff21a5ccb56c76)