Skip to content

Commit f838723

Browse files
authored
Merge pull request #76 from tamirelazar/dev
Release v0.1.0: promote dev to master
2 parents 2dfec58 + f92aef3 commit f838723

163 files changed

Lines changed: 26879 additions & 7409 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Golden reference files are compared byte-for-byte against generated output
2+
# that always uses LF. Force LF on checkout so Windows runners (core.autocrlf=true)
3+
# don't rewrite them to CRLF and break the snapshot tests.
4+
tests/golden/** text eol=lf

.github/workflows/ci.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ name: CI
22

33
on:
44
workflow_dispatch:
5+
# Push CI runs only on master (post-merge verification). Work on dev and
6+
# feature branches is covered by its pull request, so pushing to dev while a
7+
# PR is open no longer double-triggers the suite.
58
push:
6-
branches: [master, dev]
9+
branches: [master]
710
paths-ignore:
811
- '**.md'
912
- 'LICENSE'
@@ -102,6 +105,14 @@ jobs:
102105
- name: Run cargo test
103106
run: cargo test --verbose
104107

108+
# Gated feature code (multi-species, audio, gui) is not compiled by the
109+
# default build; run lib tests with all features so refactors cannot
110+
# silently break it. Linux only: deps are installed above and the full
111+
# GUI stack is too expensive to build on the paid runners.
112+
- name: Run cargo test (all features, lib)
113+
if: runner.os == 'Linux'
114+
run: cargo test --all-features --lib
115+
105116
licenses:
106117
name: License Check
107118
needs: hygiene

CHANGELOG.md

Lines changed: 33 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,41 @@
11
# Changelog
22

3-
All notable changes to tslime are documented in this file.
3+
All notable changes to this project will be documented in this file.
4+
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
5+
versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
46

5-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
## [0.1.0] - TBD
78

8-
## [Unreleased]
9+
First public release.
910

1011
### Added
11-
- Comprehensive README with installation and usage documentation
12-
- Man page documentation (docs/tslime.1.md)
13-
- Contributing guide (CONTRIBUTING.md)
14-
- Screenshots directory with example outputs
15-
- Demo tape file for GIF generation
16-
- 8 new presets: minimal, moss, cosmic, fire, zen, storm, river, ethereal
17-
- 4 new color palettes: legiblemono, moss, cosmic, ethereal
18-
- Custom palette support via hex color strings
19-
- WebM video export with FFmpeg
20-
- Mouse interaction modes (attract/repel)
21-
- Terrain effects (smooth, turbulent, mixed)
22-
- Wind simulation
23-
- Species mode with multiple agent types
24-
- Obstacle support (circle, rect, image-based)
25-
- Motion blur / trail history
26-
- Adaptive brightness normalization
27-
- Dithering modes (ordered, error diffusion)
28-
- Grid overlay options
29-
- Runtime parameter adjustment via keyboard
30-
- Undo/redo for parameter changes
31-
- Config save/load functionality
32-
- Comprehensive parameter validation with bounds checking
12+
- Physarum simulation (Jones 2010 model) with 31 presets and runtime parameter controls
13+
- `trademark` preset (alias `logo`) — the tslime logo held as a stable figure (constellation re-stamp behavior with the embedded logo image as the template); bound to quick-key `4` by default
14+
- Terminal rendering: half-block, ASCII, braille, quadrant, shade, points, and sculpted charsets; 22 OKLch-based color palettes
15+
- Screensaver and interactive modes; pause, restart, preset/palette cycling at runtime
16+
- GIF, PNG, and WebM export
17+
- Window-frame display modes
18+
- README hero demo: a looping montage that grows the tslime logo across the
19+
Organic, Constellation, Vinescii, and Trademark launch presets
20+
- README gallery: six looping demos of the runtime controls — palette cycling,
21+
character sets, preset transitions, randomize, live parameter tuning, and the
22+
palette editor (replaces the earlier static preset stills)
23+
- No-notifications mode: suppress transient toasts and ambient parameter
24+
readouts for a clean field. Start with `--no-notifications`; toggle live with
25+
`Ctrl+N`. User-opened overlays (controls, palette editor, dashboard, preset
26+
transitions) are unaffected.
27+
- `vinescii` preset — the vines (flocking) pattern in pure ASCII
28+
- Experimental: multi-species, choir audio, and GUI (feature-gated); WASM build (standalone crate)
3329

3430
### Changed
35-
- Updated noise crate from 0.2 to 0.9 (fixes future Rust compatibility)
36-
- Improved error handling throughout codebase
37-
- Enhanced CLI validation with helpful error messages
38-
39-
### Fixed
40-
- Clippy warnings (manual_range_contains, manual_find)
41-
- Duplicate build targets for memory benchmarks
42-
- Unsafe unwrap() calls in WebM export and frame capture
43-
- Future-incompatibility warnings from deprecated num-* crates
44-
- Duplicate code blocks in `trail_map.rs` and `timing.rs`
45-
46-
### Documentation
47-
- Completed API documentation for all public modules (100% coverage)
48-
- Updated README with all 16 palettes and 12 presets
49-
- Added module-level documentation
50-
- Fixed intra-doc links in library documentation
51-
52-
## [0.1.0] - 2024-12-24
53-
54-
### Added
55-
- Initial release
56-
- Physarum simulation based on Jeff Jones particle model
57-
- Four presets: network, exploratory, tendrils, organic
58-
- Four color palettes: organic, heat, ocean, mono
59-
- Multiple character modes: half-block, ASCII, braille
60-
- Screensaver, live, and print modes
61-
- Configurable simulation parameters
62-
- 256-color ANSI rendering with half-block characters
63-
- Visual regression tests
64-
- CI/CD pipeline with GitHub Actions
65-
- Cross-platform support (Linux, macOS, Windows)
66-
67-
### Technical
68-
- Rust implementation with zero runtime dependencies
69-
- crossterm for cross-platform terminal handling
70-
- clap for CLI argument parsing
71-
- rand_xoshiro for fast, seedable PRNG
72-
- Optimized for low CPU and memory usage
31+
- Quick-keys `1``4` now switch the launch presets (Organic, Constellation, Vinescii, Trademark).
32+
- Preset pass: renamed pulse→slime, flocking→vines, ripple→smoke, lumen→mold
33+
(old names still accepted as CLI aliases); per-preset visual tuning applied
34+
(braille/quadrant charsets, palette assignments, auto-normalize, window frames);
35+
constellation re-rolls its init layout on reset and auto-resets on collapse.
36+
- Fixed the stale `--preset` help text (was listing removed presets).
37+
38+
### Added (Custom Keybinds)
39+
- Custom key bindings via `~/.config/tslime/keybinds.toml`: bind keys `1``7` to any preset or
40+
saved config; user binds override the defaults. A/B compare (`Shift+1``7`) works for bound
41+
presets and configs. The `?` overlay shows live bindings.

0 commit comments

Comments
 (0)