- Adjust rustfmt.toml to set tab_spaces = 4.
- Reformat imports, struct definitions, function bodies, and match arms
across the project to match the new style (aligned fields, added
spacing, etc.).
- Ensure all code complies with the updated rustfmt settings.
- Document new Rust formatting standards in AGENTS, CODE_MAP, and
PROGRESS.
- Add rustfmt.toml with style 2024, 2‑space indents, 100‑char width, LF
endings.
- Apply consistent 2‑space indentation and ordering across source files.
- Minor clean‑up of imports and whitespace to match the new style.
Introduce a new MovingTask type for movement segments and extend
the Tasks enum
to include it. Add total‑step tracking and a get_total_progress default
in the
Task trait, and implement the corresponding methods for MovingTask.
Update
units to allow coordinate changes via set_coords, add stone damage
handling,
and adjust board advancement logic to use the new task system. Update
UI
code to display step and total percentages in the Tab panel. Expand
documentation (README, AGENTS, CODE_MAP, PROGRESS, TESTING) to describe
digging
and moving, and add extensive tests (including tests/digging.rs) for the
new
behaviour.
- Introduce a comprehensive test suite (cli, app, board, tasks, audio)
and a
new TESTING.md document describing test execution.
- Correct vertical offset calculation in `BoardState` to use saturating
subtraction and ceiling division.
- Clamp initial `Offset` values to the provided maximum in
`Offset::new`.
- Export `load_audio` from the audio thread module and switch to
`LoopedDecoder` for proper OGG looping.
- Update several crate versions: clap, ratatui, log, rodio, and
bitflags.
- Disable automatic board.advance_turn and replace it with explicit unit
movement handling.
- Add Tunnel structure creation during digging tasks.
- Extend DiggingTask with pop_front and current_target helpers.
- Rename task getters to get_ref_tasks and add mutable get_mut_tasks.
- Update Unit trait and Units enum to expose these new methods.
- Remove unused EMPTY_TASKS lazy static.
- Bump flake.lock revisions, hashes, and timestamps for several
dependencies.
- Extend the `Task` trait with methods for progress handling and
completion.
- Update `DiggingTask` to store `progress` and `tick_increase`, and
implement the new trait methods.
- Implement the new methods in the `Tasks` enum, adding a mutable
accessor.
- Introduce `BoardState::get_active_tasks` and
`BoardState::advance_turn` to iterate over active tasks and update
their progress each turn.
- Un-comment the call to `board.advance_turn()` in
`SkirmishState::tick_update`.
Define a full `Task` trait with icon and path accessors. Implement the
trait for
`DiggingTask` and delegate it through the `Tasks` enum. Introduce helper
functions in `MinerUnit` to convert coordinates to spreadsheet‑style
strings
and use them in a revamped `get_tasks_formatted`. Update the unit
rendering
logic to show the tasks queue only when tasks are present.
Replace `Vec` with `VecDeque` in `BoardState` marked cells,
`DiggingTask` path,
and `MinerUnit` tasks to enable efficient push/pop operations. Remove
the
`Copy` trait from several structs and enums, adjust derives accordingly,
and
use `as_ref` in `Option<Units>` implementations to avoid consuming the
option.
Update cell rendering to clone widgets and adjust
`CellWidget::get_option_unit`
to return a cloned `Option<Units>`. Add necessary `VecDeque` imports.
- Remove lifetime and path storage from DiggingTask, make it Copy.
- Add a placeholder `new` constructor that accepts a path.
- Update the Tasks enum to hold a DiggingTask value.
- Reorder module declarations and re‑export order for tasks.
- Add a commented‑out tasks field to MinerUnit as a preparation step.