Skip to content

Releases: inherent-design/empack

v0.2.0-alpha.2

Choose a tag to compare

@github-actions github-actions released this 05 Apr 02:49

v0.2.0-alpha.2 - 2026-04-05

Features

  • V0.2.0-alpha.1 release

Bug Fixes

  • (import) Correct packwiz flags in add_platform_ref
  • (cli) Rename --from-source flag to --from
  • (sync) Derive dep keys from packwiz .pw.toml filenames
  • Require .pw suffix in toml scan; correct doc inconsistencies
  • (import) Use project-id and version-id for Modrinth packwiz add

Documentation

  • Rewrite testing.md for two-tier test architecture
  • Update CONTRIBUTING.md for two-tier test architecture

Maintenance

  • Bump workspace version to 0.2.0-alpha.1

Other

  • Add renovate.json

v0.2.0-alpha.1

Choose a tag to compare

@github-actions github-actions released this 04 Apr 22:58

v0.2.0-alpha.1 - 2026-04-04

Features

  • (content) Add UrlKind classifier, JarResolver, and side types
  • (import) Add modpack import pipeline (Track A)
  • (add) Version pin flags, URL-based add, sync contract evolution

Bug Fixes

  • Resolve single-element loop clippy warning in template installer
  • Address review findings across import, content, and add pipelines
  • Zip slip, version ID lookup, batch dedup, dead code, path classifiers
  • (import) Correct CurseForge project resolution endpoint and auth
  • (content) Correct CurseForge fingerprint endpoint in ApiJarResolver
  • Modrinth version-file algorithm param and mrpack override extraction
  • Correct CurseForge classId mappings and add Modrinth URL patterns
  • (content) Use file.id for CurseForge file ID, not fingerprint hash
  • (import) Write DependencyRecord for all imported platform refs
  • (import) Add fileSize serde rename; expand VCR for v0.2 endpoints
  • (import) Add versionId serde rename for mrpack manifest

Testing

  • Add URL classification tests and fix clippy warning
  • Harden v0.2.0-alpha.1 test coverage
  • Record v0.2 VCR cassettes from live APIs
  • Add API contract tests and fix mrpack fixture field names

Documentation

  • Remove 'empack sync' from README.md start
  • Remove stale/historical ADR
  • Add doc comments, scoped commits, agent guidelines, changelog to CONTRIBUTING
  • Add behavioral spec decomposition for empack

Maintenance

  • Comment+docs clean-up
  • Remove obvious comments in import executor
  • Remove comments that restate what the code says

v0.1.0-alpha.4

Choose a tag to compare

@github-actions github-actions released this 30 Mar 03:46

v0.1.0-alpha.4 - 2026-03-30

Bug Fixes

  • Rename Init positional field to dir, filter dot path defaults
  • Resolve actual directory basename for dot-path positional args

Refactoring

  • Separate directory resolution from pack name in init

v0.1.0-alpha.3

Choose a tag to compare

@github-actions github-actions released this 29 Mar 22:07

v0.1.0-alpha.3 - 2026-03-29

Bug Fixes

  • Move template scaffolding after state transition in init

Maintenance

  • Update changelog

v0.1.0-alpha.2

Choose a tag to compare

@github-actions github-actions released this 29 Mar 21:22

v0.1.0-alpha.2 - 2026-03-29

Bug Fixes

  • Gate locale tests on unix, remove stale DimensionSource variants
  • Real terminal size detection, remove empty capabilities module

Refactoring

  • Remove terminal probing, enforce NO_COLOR, capability-driven display
  • Consolidate platform module, remove dead capabilities
  • Display tests, un-ignore terminal tests, break circular dep

v0.1.0-alpha.1

Choose a tag to compare

@github-actions github-actions released this 29 Mar 18:41

v0.1.0-alpha.1 - 2026-03-29

Features

  • Implement loader-first architecture
  • Bootstrap Rust project infrastructure
  • Establish layered module architecture
  • Implement comprehensive shared type system
  • Implement domain-specific data structures
  • Implement comprehensive configuration system
  • Add stubs for runtime detection
  • Add project and testing config
  • Implement shared type system with errors
  • Implement terminal capability detection
  • Add networking and platform modules
  • Switch CI to cargo binstall
  • Add cross-platform tool detection + CLI commands
  • Add display module for UI
  • Add forge api support to v1 library
  • Implement core mod management commands
  • Complete session-based architecture
  • Complete abstraction for external commands
  • Add Apache 2.0 license
  • (api) Implement DependencyGraph with transitive resolution
  • Begin v4 internal refactor
  • Add packwiz, integrations tests, builds
  • (test) Extract test infrastructure helpers
  • Publish default CF API key
  • (sync) Add sync planning and execution logic for dependency managem
  • (init) Expose non-interactive flags
  • (empack) Make add/remove atomic by updating empack.yml directly
  • Add terminal safety net for cursor restoration on interrupt
  • Add 5-minute timeout to child process execution
  • Add enforced state transition validation
  • Add enforced state transition validation
  • Validate init inputs from CLI flags against fetched version lists
  • Add --loader-version CLI flag for fully unattended init
  • Native server JAR download for all loaders, eliminate mrpack-install and curl
  • Self-contained Fabric server via installer, fix Quilt srv.jar rename
  • Download ServerStarterJar as srv.jar for NeoForge and Forge builds
  • Tar fallback for distribution packaging, fix archive requirements reporting
  • Two-phase search with incompatibility notice
  • Vanilla (no modloader) init support
  • Native archive operations, type-aware search, multi-type add
  • --format flag for build, remove -j conflict, type-less direct ID adds
  • Wave 2 fixes for alpha.1 release gate
  • Cache-first download and with_pre_cached_jars helper
  • Java installer side-effect hooks for MockProcessProvider
  • MockSessionBuilder for cross-platform integration tests
  • ArchiveProvider trait for testable archive operations
  • Unify template system and wire into init
  • Add release.yml template and remove empack CI dependency

Bug Fixes

  • Improve test reliability and workflow
  • Windows BOOL import for v0.60
  • Wrap GlobalMemoryStatusEx return in BOOL
  • Compare BOOL to false instead of 0
  • Implement proper Windows locale detection
  • Minimal test and error clean-up
  • NeoForge versioning; reduce version input
  • (versions) Harden loader discovery and metadata resolution
  • (build) Tighten build result contracts
  • (tests) Align missing-installer assertions and pre-seed JAR for template test
  • (tests) Align missing-installer assertions and pre-seed JAR for template test
  • (tests) Update bootstrap invocation assertions for v1 pattern
  • Resolve clippy violations and PR review findings for CI green
  • Resolve clippy violations and PR review findings for CI green
  • Remove redundant trim before split_whitespace
  • Collapse nested if in discover_state to satisfy clippy
  • Prevent state machine stuck on build pipeline failure
  • Correct cycle detection return and clean version_overrides on remove
  • Find_program respects custom_path for hermetic testing
  • Deduplicate coverage test run in CI workflow
  • Add EOF newlines to workflow files and document packwiz cwd rationale
  • Query macOS page size at runtime via sysconf
  • Handle Ctrl+C during dialoguer prompts as clean exit
  • Use byte I/O for binary JAR file copying in build pipeline
  • Address PR review findings for cursor guard and workdir
  • Guard terminal escapes with is_terminal and unify interrupt cleanup
  • Add biased; to tokio::select! to prevent race on clean exit
  • Discriminate SIGINT from other EINTR in prompt interrupt handlers
  • Write cursor escape sequences to both stdout and stderr
  • Remove broken sigint_received() check from prompt interrupt handlers
  • Use parent directory for git config lookup when target dir doesn't exist
  • Kill child process on timeout and fix guard disarm ordering
  • Platform-aware timeout message, deduplicate transition validation, add #[must_use] to guard
  • Enforce layout validation for Cleaning marker transition
  • Replace wildcard with explicit match arms in Clean transition
  • Replace path unwrap calls with to_string_lossy in builds.rs
  • Init without positional name now creates subdirectory
  • Address PR review findings for init validation
  • Cross-platform cache isolation for hermetic tests
  • Add cfg(unix) gates for Windows compilation
  • Cross-platform test paths and cfg-gate unix-only E2E tests
  • Address PR #12 review findings (G2, G3, M1, M2)
  • Prevent deadlock in process output handling with polling-based wait
  • Remove dead build failure check and fix mock script arg matching
  • Quilt version list, packwiz abstraction leak, sync display counter
  • Marker content validation, unwrap cleanup, workspace dep, shadow removal
  • Reject pinned project_id without explicit project_platform
  • Address PR review findings across session, state, search, builds, config
  • Sync orphan removal, state marker persistence, release cache
  • Packwiz remove -y flag, add_dependency slug protection, search fallback, mock escaping
  • Thread preferred_platform through add path, relax Modrinth ID check, hoist loop alloc
  • Derive dep_key from packwiz .pw.toml filename, not user input
  • Remove false-positive Modrinth ID heuristic, strengthen test assertions
  • Serde-based YAML init, track planning-phase sync failures
  • Complete non-interactive init, tighten packwiz file filter
  • Preserve loader_version round-trip, deterministic config ordering
  • Map neoforge to forge for mrpack-install, allow build retry after interruption
  • Dry-run threading, clean detection, init cleanup, handle_remove state guard
  • Binary file corruption in copy_dir_contents, dry-run clean ordering, hardcoded timeout
  • Quilt loader_version passthrough, SHA1 test coverage, runtime guard
  • Report cleanup failure in init error recovery
  • Quilt positional loader arg, temp-mrpack cleanup, log omission, requirements update
  • Clean up temp-mrpack-extract on build failure
  • Archive EmptySource consistency, GzEncoder flush, docs, test quoting
  • Retry with exponential backoff for server JAR downloads
  • Resolve clippy warnings in session_mocks
  • Address PR review findings
  • Clean up orphaned .pw.toml after CF restricted mod detection
  • Address second round of PR review findings
  • Guard remove_file on packwiz remove failure
  • Cross-platform packwiz cache directory resolution
  • Route mods_dir existence check through session filesystem
  • Route Go detection through session ProcessProvider
  • Propagate errors from handle_remove
  • Return Err from handle_init on existing project and empty loaders
  • Address PR #17 review findings
  • Resolve clippy type_complexity warning
  • Address PR #18 review findings
  • Address PR #18 review round 2
  • Address PR #18 review round 3
  • Address PR #19 alpha.1 release review findings
  • Remove FABRIC_VERSION template alias; clean break to LOADER_VERSION
  • Clean archive resolution and symlink safety
  • Box BuildOrchestrator in StateTransition to fix large_enum_variant
  • Create dist/ before writing server archive in release template
  • Disable HTML escaping, gitignore archives, align PR triggers

Testing

  • Complete migration to separate test files
  • Coverage and error fixes
  • (commands) Format test code and improve mock setup
  • Improve hermetic E2E testing with mock HTTP client and packwiz ass
  • (commands) Improve init command tests with comprehensive assertions
  • (sync) Improve packwiz command assertions to handle multiple comman
  • (state) Refactor malformed yaml test to use mock filesystem provide
  • (commands) Update packwiz add command assertions to match new argum
  • (fixtures) Add workflow project fixture and improve mock invocation
  • (sync) Add comprehensive tests for sync plan building and contract
  • (application) Tighten add and sync contract coverage
  • (mocks) Add mrpack export side effects to process provider
  • (builds) Validate artifact existence and isolate client-full builds
  • (contracts) Tighten build contracts and close E2E workflow gaps
  • (coverage) Add workflow for code coverage reporting with codecov
  • Strengthen vacuous command tests with real assertions
  • Remove phantom validation tests that exercise no real code
  • Add missing packwiz assertions to build tests
  • Consolidate duplicate build tests and add assertion messages
  • Add 89 tests covering CLI input resolution, sync invariants, config serde, search error paths
  • Remove orphaned and vacuous tests, strengthen weak assertions
  • Queue-based MockInteractiveProvider for multi-step flows
  • Wave 1 test creation for alpha.1 release gate
  • Expanded hermetic matrix for init, add, and dry-run
  • Add review fix coverage and update testing docs
  • Remove vacuous integration tests
  • Build matrix coverage for NeoForge, Quilt, Vanilla, Fabric client
  • Migrate 8 init tests to cross-platform mock sessions
  • Migrate 7 add/remove/sync tests to cross-platform mock sessions
  • Migrate 18 build tests to cross-platform mock sessions
  • Migrate 2 lifecycle tests to cross-platform mock sessions
  • Verify release.yml registration and init scaffolding

Documentation

  • Add contributing guidelines for empack
  • Add AI development guidelines
  • Add commit style guidlines
  • Update architectural direction
  • Establish semantic style guidelines
  • Update context with state machine + CLI implementation
  • Checkpoint project documentation
  • Remove old audits and organize
  • Track AI ...
Read more