v0.4.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.4.0] - 2025-12-15
Added
-
ARM Platform Support: Native binaries for Apple Silicon and ARM Linux
aarch64-apple-darwin(Apple Silicon Macs)aarch64-unknown-linux-gnu(ARM Linux servers)- Cross-compilation using
crossandzigfor CI builds
-
WASM npm Package:
@domainforge/sea-core-wasmnow published to npm- Enables browser-based SEA DSL parsing and formatting
- Published alongside existing napi bindings
-
Release Automation Workflow: New
prepare-release.ymlfor streamlined releases- Automatic version bumping (major/minor/patch)
- CHANGELOG.md template generation
- PR creation with checklist
-
VS Code Multi-Root Workspace: Configuration for monorepo development
- Unified workspace for domainforge, domainforge-lsp, and domainforge-vsc-extension
Changed
-
CI/CD Improvements:
- Harmonized WASM bundle size threshold to 2MB across CI and release workflows
- Better error handling in crates.io publishing (explicit "already published" detection)
- GitHub Release creation explicitly required for publishing workflows
-
Documentation:
- Updated workflows README with comprehensive release process guide
- Added notes about
release: publishedtrigger requirement
Fixed
- Clippy Errors: Resolved
field_reassign_with_defaultandcollapsible_ifwarnings - Test Expectations: Updated
test_format_checkto expect success (format now implemented) - CodeRabbit Review Issues: Addressed all 4 issues from automated review
- Fixed README release instructions
- Removed unsafe
--allow-dirtyfrom crates publish - Fixed fragile sed patterns in CHANGELOG update
- Preserved backward-compatible job IDs
[0.3.0] - 2025-12-14
Added
-
SEA Formatter (
sea fmt): New CLI command to format SEA source code- Supports 14 declaration types (Entity, Resource, Flow, etc.)
- Indentation and spacing standardization
- Comment preservation (file headers)
- Sorting of imports
--checkflag for CI validation
-
Formatter Bindings: Programmatic access to the formatter
- Python:
sea_dsl.format_source(),sea_dsl.check_format() - TypeScript:
formatSource(),checkFormat()from@domainforge/sea - WASM:
formatSource(),checkFormat()for browser environments
- Python:
-
Documentation:
- Comprehensive CLI reference for
fmt - Updated language binding APIs with formatter documentation
- Usage examples for all platforms
- Comprehensive CLI reference for
Changed
- Updated dependencies to align with new features
- Enhanced documentation for all supported bindings
[0.2.1] - 2025-12-14
Added
-
Protobuf Projection Engine: Full Protocol Buffers export support for SEA models
- Entity and Resource projection to Protobuf messages
- Type mapping from SEA types to proto scalar types
- Deterministic field numbering for schema stability
- CLI command:
sea project --format protobuf model.sea output.proto
-
gRPC Service Generation: Generate gRPC services from Flow patterns (Phase 2)
- Flows automatically become RPC methods
- Streaming support:
@streaming,@client_streaming,@bidirectionalattributes - Service naming convention:
{DestinationEntity}Service
-
Well-Known Types Support: Automatic mapping to Google's WKT (Phase 1)
DateTime→google.protobuf.TimestampDuration→google.protobuf.DurationAny→google.protobuf.Any- Auto-import generation for used WKT types
-
Custom Proto Options: Per-file and per-message options (Phase 3)
--option java_package=com.exampleCLI flag- Support for
java_multiple_files,go_package,csharp_namespace, etc. - Custom option values in generated output
-
Schema Compatibility Checking: Prevent breaking changes
- Three modes:
Additive,Backward,Breaking - Validates field additions, removals, renames, and type changes
--compatibilityand--againstCLI flags
- Three modes:
-
Buf.build Integration: Optional CLI integration (Phase 4)
--buf-lintfor proto linting--buf-breakingfor breaking change detection- Graceful degradation when buf CLI not installed
- Auto-generation of
buf.yamlandbuf.gen.yaml
-
Multi-File Output: Separate
.protofiles per namespace (Phase 5)--multi-file --output-dir ./protoCLI flags- Fully qualified imports for cross-namespace references
- Directory structure mirrors package hierarchy
Documentation
- New how-to guide:
docs/how-tos/export-to-protobuf.md - New API reference:
docs/reference/protobuf-api.md - Updated CLI reference with protobuf options
- Updated SDS-001 status to Implemented
[0.2.0] - 2025-12-07
Added
- Bun Runtime Support: Adopted Bun as the primary JavaScript runtime and package manager for TypeScript tooling, with Node.js as fallback
- FINOS CALM Integration: Full import/export support for architecture-as-code
export_calm()andimport_calm()methods across all bindings- Policy (Constraint) export/import with SEA/SBVR expression formats
- Association mapping for relationship types
- Namespace Registry Improvements:
sea registryCLI withlistandresolvesubcommands- Longest-literal-prefix precedence for overlapping glob patterns
- Deterministic alphabetical tie-breaker for equal prefixes
--fail-on-ambiguityflag for strict resolution- Python, TypeScript, and WASM FFI bindings for registry operations
- Instance Primitives: New
Instanceclass for entity type instances with named fields - Role and Relation Primitives: Support for roles and relationships between entities
- Enhanced Graph Methods:
add_role(),add_relation(),add_policy(),add_association(),evaluate_policy(),set_evaluation_mode() - Three-Valued Logic: Policy evaluation with true/false/null semantics
Changed
- API Simplification: Unified constructor patterns across Python/TypeScript/WASM
- Standard constructors instead of static factory methods
- Consistent
id(),name(),namespace()method signatures
- Documentation Updates: Comprehensive README updates for all bindings
- Accurate API documentation matching actual implementations
- Updated test counts (544+ Rust tests across 69 test files)
- Fixed code examples with correct method signatures
Fixed
- Module import/export correctness: wildcard imports require aliases, trailing commas allowed
- Parser keyword ambiguity resolved (fixed
Resource ... unitsparsing) - Cross-language binding stability:
ReferenceTypeserialization fixes - Parser entry options handle missing registry gracefully
- CI/CD optimizations with smarter caching strategies
[0.1.0] - 2024-11-15
Added
- Initial release with core SEA DSL primitives
- Entity, Resource, Flow, ResourceInstance primitives
- Graph-based domain modeling with validation
- Parser for SEA DSL syntax
- Python bindings via PyO3
- TypeScript bindings via napi-rs
- WASM bindings via wasm-bindgen
- CLI tool for validation and projection
- Knowledge Graph (RDF/Turtle) export