78 Commits

Author SHA1 Message Date
6d842b83ba ci: update coverage badge [CI SKIP] 2026-03-01 01:33:39 +00:00
b4877007f2 🐛 fix(ci): gerar badge SVG inline e remover tr com octais 2026-02-28 22:32:19 -03:00
29ff9535a7 🐛 fix(ci): unificar blocks e sanitizar JSON do Gitea antes do jq 2026-02-28 22:27:08 -03:00
dec566320f ci: add coverage badge [CI SKIP] 2026-03-01 01:22:12 +00:00
6275c638d9 🔖 chore: atualizar Cargo.lock para versão 0.2.4 2026-02-28 22:20:45 -03:00
4d6af13134 🔧 chore: adicionar drone-ci-mcp e corrigir formato do hook PostToolUse 2026-02-28 22:20:42 -03:00
b2a0ee5e08 🐛 fix(ci): usar base64 -w 0 e POST/PUT correto no upload do badge 2026-02-28 22:20:40 -03:00
2bc516ed6d ci: debug base64 and SHA GET response 2026-02-28 21:48:39 -03:00
7e70157097 ci: add debug output to coverage upload step 2026-02-28 21:44:08 -03:00
ef13e884ba ci: use awk to parse coverage percentage 2026-02-28 21:38:28 -03:00
b6e33c37ac ci: fix coverage parsing and JSON payload construction 2026-02-28 21:34:01 -03:00
20f516cffb ci: store coverage badge via repo contents API 2026-02-28 21:29:29 -03:00
a5429c3543 chore: bump version to 0.2.4
Some checks failed
continuous-integration/drone/tag Build is failing
0.2.4
2026-02-28 21:23:31 -03:00
8a7df892e8 ci: fix tarpaulin JSON field for coverage percentage 2026-02-28 21:19:56 -03:00
f0949e08c5 ci: restrict release pipeline to version tags only 2026-02-28 21:14:14 -03:00
d80857090e docs: update CI badge label in README.md
Some checks failed
continuous-integration/drone/tag Build is failing
Changed the CI badge label from "CI" to "Build Status" for better clarity and consistency with common badge naming conventions.
0.2.3
2026-02-28 21:10:45 -03:00
19f36060a0 ci: use Gitea generic package registry for coverage badge 2026-02-28 21:08:39 -03:00
2dc12e37c9 chore: bump version to 0.2.2
Some checks failed
continuous-integration/drone/tag Build is failing
0.2.2
2026-02-28 21:04:39 -03:00
280a180d3e ci: add coverage badge pipeline and README badges 2026-02-28 21:04:05 -03:00
5f281b1f9e docs: add CHANGELOG and use it as release description in CI 2026-02-28 20:26:29 -03:00
9150f93f6a ci: add test pipeline and bump version to 0.2.1
Some checks failed
continuous-integration/drone/tag Build is failing
Adds a Drone CI pipeline that runs on push and pull_request events,
executing cargo fmt --check, cargo clippy, and cargo test in sequence.
0.2.1
2026-02-28 20:23:09 -03:00
a076cf2543 chore: bump version to 0.2.0
Some checks failed
continuous-integration/drone/tag Build is failing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.2.0
2026-02-28 20:17:05 -03:00
9198c481c0 test: add integration tests for scan, session config and cache lifecycle
tests/scan.rs: 3 tests exercising scan_from_root via the public API —
finds git repos, skips hidden directories, and respects max_depth.
Note: tempfile::tempdir() generates hidden paths (.tmpXXXXXX) on this
system, so each test creates a visible scan_root/ subdirectory to avoid
filter_entry silently skipping the walk root.

tests/session_config.rs: 2 tests for SessionConfig::load_from_project —
loads a .tmuxido.toml written into a temp dir and returns None when the
file is absent.

tests/cache_lifecycle.rs: round-trip test that saves a ProjectCache and
reloads it, verifying the projects list survives serialisation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 20:16:09 -03:00
bfdc1e2093 test: add unit tests for cache, session and config modules
cache.rs: make minimal_roots pub(crate); add 8 tests covering the
minimal_roots helper (empty input, single root, nested vs sibling dirs)
and validate_and_update (stale project removal, no-change short-circuit,
mtime-triggered rescan, legacy empty dir_mtimes).

session.rs: make session_name pub(crate); add 5 tests covering session
name sanitisation (dots→underscores, spaces→dashes, fallback for root
path) and TOML parsing for Window and SessionConfig with layout.

config.rs: add 3 tests covering serde defaults when optional fields are
absent, full config parsing and invalid TOML rejection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 20:15:42 -03:00
d35acdeb55 refactor: extract business logic into lib.rs
Move scan_from_root, scan_all_roots, get_projects, show_cache_status
and launch_tmux_session from main.rs into a new src/lib.rs, making
them pub so they are testable independently of the binary entrypoint.

main.rs is now a thin entrypoint that imports from tmuxido:: and keeps
only select_project_with_fzf (interactive subprocess, not unit-testable).

Add tempfile = "3" to [dev-dependencies] in preparation for tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 20:15:27 -03:00
30d6c3d1c5 chore: install Claude scaffold
Add CLAUDE.md with project-specific rules (test structure, naming
conventions, MCP tools reference). Add .mcp.json for rust-mcp and
crates-io MCP servers. Add rust-toolchain.toml pinning stable with
rustfmt and clippy. Add .claude/settings.json with PostToolUse hook
that runs cargo test automatically after every file edit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 20:15:08 -03:00
562febaafe Remove personal path references from defaults and examples
Some checks failed
continuous-integration/drone/tag Build is failing
Replace machine-specific paths with generic examples.
v0.1.1
2026-02-28 19:22:06 -03:00
71da4149b8 Initial release of tmuxido
Some checks failed
continuous-integration/drone/tag Build is failing
Rust-based tmux project launcher with fzf selection, incremental
mtime-based cache, per-project .tmuxido.toml session config, and
Drone CI pipeline for automated binary releases.
v0.1.0
2026-02-28 19:06:43 -03:00