Skip to content

Releases: AzisK/Zpace

v0.5.0

06 Feb 21:48
d02cec5

Choose a tag to compare

What's Changed

  • feat(apps): Add macOS and Windows desktop apps by @AzisK in #44
  • refactor: simplify GitHub Actions workflows by @AzisK in #45
  • Delete testVersions.sh by @AzisK in #46
  • Add support for JSON output by @AzisK in #47

Full Changelog: v0.4.5...v0.5.0

v0.4.5

27 Jan 06:45
4211f64

Choose a tag to compare

Features

  • Directory Configuration: Added support for customizing directory categories via ~/.zpace.toml
    • dirs: Replace all directory names for a category
    • add: Add directory names to an existing category
    • remove: Remove directory names from a category
    • Create entirely new custom directory categories

Configuration

  • Added Homebrew to Package Caches special directories

What's Changed

  • Add user-configurable dirs via TOML config by @AzisK in #42
  • Add Homebrew to Package Caches special directories by @AzisK in #43

Full Changelog: v0.4.4...v0.4.5

v0.4.4

25 Jan 22:04
ddb9ae2

Choose a tag to compare

Features

  • User Configuration: Added support for customizing file categories via ~/.zpace.toml
    • extensions: Replace all extensions for a category
    • add: Add extensions to an existing category
    • remove: Remove extensions from a category
    • Create entirely new custom categories
  • Added .zpace.toml.sample template file

Configuration

  • Removed "Fonts" from default categories (can be re-added via user config)

Documentation

  • Added Configuration section to README with examples
  • Moved Changelog and Architecture links to new Docs section
  • Upgraded AGENTS.md file

What's Changed

  • Add user-configurable categories via TOML config by @AzisK in #41

Full Changelog: v0.4.3...v0.4.4

v0.4.3

18 Jan 19:02
dc63d42

Choose a tag to compare

Configuration

  • File categories expanded:
    • Renamed "JSON/YAML" category to "Config" and added .toml, .xml, .ini, .env, .conf
    • Added new categories: "ML Models" (.pt, .onnx, .safetensors, etc.), "Databases" (.db, .sqlite, .parquet, .csv, etc.), "3D Models", "Executables", "Fonts"
    • Extended existing categories: Pictures (.ico, .raw, .avif), Documents (.md, .epub, Apple iWork formats), Music (.opus, .aiff), Videos (.mts, .vob, .3gp), Code (.ipynb, shell scripts, .swift, .kt, .vue, .svelte), Archives (.zst), Disk Images (.qcow2, .vhdx)
  • Special directories expanded:
    • Virtual Environments: Added Conda/Miniconda/Anaconda support
    • Build Artifacts: Added .next, .nuxt, .svelte-kit, .turbo, Bazel directories
    • Package Caches: Added .pnpm, .uv, .bun, .deno, vendor, .bundle
    • IDE Config: Added .fleet (JetBrains Fleet)
    • New categories: "Temp Files" (tmp, temp), "ML Artifacts" (weights, checkpoints, pretrained)

Performance

  • Optimized identify_special_dir_name with fast path for exact matches before pattern matching

Documentation

  • Added PyPI version badge to README
  • Added documentation section with links to Changelog and Architecture docs

What's Changed

  • Optimize special directory name identification by @AzisK in #39
  • Expand file and directory categories in config by @AzisK in #40

Full Changelog: v0.4.2...v0.4.3

v0.4.2

17 Jan 22:47
ba2bd6f

Choose a tag to compare

Performance

Streaming Top-N Selection — The scanner now uses in-place min-heaps to track only the largest files per category during traversal, replacing the previous approach of collecting all files and then filtering.

  • Memory usage reduced from O(files_over_min_size) to O(categories × top_n)
  • Large intermediate file lists are no longer built, improving performance on directories with many files

Code Quality

  • Removed the now-unused get_top_n_per_category function — top-N logic is now integrated directly into the scan
  • Added clarifying comment for the DEEPEST_SKIP_LEVEL optimization explaining why system directory checks are skipped for deep paths
  • Updated ARCHITECTURE.md with documentation for the new streaming approach and push_top_n helper

Tests

  • Added 5 new unit tests for the push_top_n heap helper covering edge cases (empty heap, full heap rejection/acceptance, size-one heap)
  • Added 2 integration tests verifying top-N limiting and multi-category behavior during scans

What's Changed

  • Optimize top n selection with min heaps in scan by @AzisK in #38

Full Changelog: v0.4.1...v0.4.2

v0.4.1

11 Jan 18:53

Choose a tag to compare

What's Changed

  • refactor: optimize core logic with iterative traversal and heap sort by @AzisK in #37

Full Changelog: v0.4.0...v0.4.1

v0.4.0

11 Jan 09:20
dbaa177

Choose a tag to compare

This release introduces a major refactoring of the project's internal
structure to improve maintainability and scalability. The core logic
has been split from a monolithic script into a modular package, and
all related documentation and tests have been updated accordingly.

Refactoring

  • Project Structure: The codebase has been refactored from a single
    main.py file into a zpace package. This separates concerns and
    makes the project easier to navigate and extend. The new structure
    is as follows:
    • zpace/main.py: Handles CLI argument parsing and high-level
      orchestration.
    • zpace/core.py: Contains the core scanning and categorization
      logic.
    • zpace/config.py: Centralizes all configuration constants (like
      file categories and skipped directories).
    • zpace/utils.py: Includes helper functions for size formatting
      and platform-specific path lookups.
  • Entry Point: The main entry point main.py in the root directory
    now simply calls the main function from the zpace package.

Documentation

  • Architecture: ARCHITECTURE.md has been updated to reflect the new
    modular project structure, detailing the roles of the new files
    (core.py, config.py, utils.py).
  • README: The "Project Structure" and "Development" sections in
    README.md have been updated to provide accurate information for
    contributors.

Tests

  • Test Suite: All unit and integration tests have been updated to
    work with the new package structure. This involved fixing broken
    import paths and updating mock targets to ensure the test suite
    passes and correctly validates the application's behavior.

What's Changed

  • feat: refactor project structure and bump version to 0.4.0 by @AzisK in #36

Full Changelog: v0.3.1...v0.4.0

v0.3.1

10 Jan 11:41
b9c7bea

Choose a tag to compare

What's Changed

  • feat(cli): add --version argument and AGENTS.md by @AzisK in #35

Full Changelog: v0.3.0...v0.3.1

v0.3.0

10 Jan 08:12
839a290

Choose a tag to compare

Features

  • Performance: Refactored file scanning to use an iterative os.scandir approach and string-based path handling, significantly improving performance and reducing memory usage.
  • Symlink Handling: The tool now explicitly detects and rejects symlinks as the initial scan path, preventing unexpected behavior.

Improvements

  • CI: Switched GitHub Actions runners to ubuntu-slim to optimize resource usage.

Fixes

  • Path Resolution: Improved path resolution in the main scanning function.
  • Trash Size Check: Made the trash size calculation more robust.

Full Changelog: v0.2.0...v0.3.0

v0.2.0

03 Dec 22:48
79bd021

Choose a tag to compare

What's Changed

  • Add Windows to CI workflow OS matrix by @AzisK in #1
  • Use Path instead of string for a better Window support by @AzisK in #2
  • Fix mypy library installation in Github Actions CI by @AzisK in #3
  • Fix skip directories tests by @AzisK in #4
  • Simplify test structure by @AzisK in #5
  • Add a Trivia workflow in Github Actions by @AzisK in #6
  • Update trivia header message in workflow by @AzisK in #7
  • Fix Trivia formatting by @AzisK in #8
  • Personalize PR trivia to address the committer and add a fun motivati… by @AzisK in #9
  • Fix decodeHtml in Trivia workflow by @AzisK in #10
  • Fix formatting of the Trivia workflow comment by @AzisK in #11
  • Final touch on Trivia workflow by @AzisK in #12
  • Prettify the Trivia formatting by @AzisK in #13
  • Add celebration on success of tests with a random dog picture by @AzisK in #14
  • Post a dog in the comments only for a pull request event by @AzisK in #16
  • Add workflow_dispatch trigger to CI workflow by @AzisK in #15
  • Add CI badge to README by @AzisK in #17
  • Leave the trivia difficulty open by @AzisK in #18
  • Add a Github Action workflow to review pull requests by an LLM by @AzisK in #19
  • Add GH_TOKEN env of the review GHA workflow by @AzisK in #20
  • Fix the GPT-5 model definition by @AzisK in #21
  • Increase GHA ai-inference version and reduce the max tokens by @AzisK in #22
  • Use ai-inference v1 and gpt-4o model by @AzisK in #23
  • Skip symlinks when scanning files and directories by @AzisK in #24
  • Update README with example output and directory details by @AzisK in #25
  • Use context manager for os.scandir in calculate_dir_size by @AzisK in #26
  • Add trash bin size reporting to disk usage output by @AzisK in #27
  • Optimize file and directory categorization lookups by @AzisK in #29
  • Add integration tests for get trash path by @AzisK in #28
  • Add comprehensive tests for output, CLI, symlinks, and unicode by @AzisK in #30
  • Release version 0.2.0 with new features and improvements by @AzisK in #31

New Contributors

  • @AzisK made their first contribution in #1

Full Changelog: v0.1.1...v0.2.0