diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa0820f0..958c56db 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10.28.0 + version: 10.28.1 - name: Get pnpm store directory shell: bash @@ -76,7 +76,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10.28.0 + version: 10.28.1 - name: Get pnpm store directory shell: bash diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 45760f92..77f8027b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -27,7 +27,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10.28.0 + version: 10.28.1 - name: Get pnpm store directory shell: bash diff --git a/.github/workflows/pr-automation.yml b/.github/workflows/pr-automation.yml index fc810009..c91dbba0 100644 --- a/.github/workflows/pr-automation.yml +++ b/.github/workflows/pr-automation.yml @@ -68,7 +68,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10.28.0 + version: 10.28.1 - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 228e87ba..f6f15b93 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,6 +25,8 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 + with: + version: 10.28.1 - name: Get pnpm store directory shell: bash diff --git a/.github/workflows/validate-deps.yml b/.github/workflows/validate-deps.yml index 6a8558a9..223e417c 100644 --- a/.github/workflows/validate-deps.yml +++ b/.github/workflows/validate-deps.yml @@ -30,7 +30,7 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v4 with: - version: 10.28.0 + version: 10.28.1 - name: Get pnpm store directory shell: bash diff --git a/CHANGELOG.md b/CHANGELOG.md index c2c25f81..5a03bcef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Security +## [1.0.0] - 2026-01-25 + +### Changed +- **BREAKING**: Major version 1.0.0 release - API is now stable +- All packages updated to version 1.0.0 +- Production-ready release with comprehensive documentation and testing + +## [0.4.0] - 2026-01-25 + +### Added +- Complete documentation site with Fumadocs +- Comprehensive GitHub workflows (CI, CodeQL, release automation, dependency validation) +- Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) +- Agent prompts for AI-assisted development +- Blog posts on metadata-driven architecture and protocol-first development +- Comprehensive example applications (AI Analyst, AI Sales, AI Support, CRM, etc.) + +### Changed +- Enhanced project structure and organization +- Improved documentation navigation and accessibility +- Updated all packages to version 0.4.0 + ## [0.3.2] - 2026-01-24 ### Changed @@ -151,7 +173,10 @@ Mark breaking changes clearly: --- -[Unreleased]: https://github.com/objectstack-ai/spec/compare/v0.3.1...HEAD +[Unreleased]: https://github.com/objectstack-ai/spec/compare/v1.0.0...HEAD +[1.0.0]: https://github.com/objectstack-ai/spec/compare/v0.4.0...v1.0.0 +[0.4.0]: https://github.com/objectstack-ai/spec/compare/v0.3.2...v0.4.0 +[0.3.2]: https://github.com/objectstack-ai/spec/compare/v0.3.1...v0.3.2 [0.3.1]: https://github.com/objectstack-ai/spec/compare/v0.3.0...v0.3.1 [0.3.0]: https://github.com/objectstack-ai/spec/compare/v0.1.1...v0.3.0 [0.1.1]: https://github.com/objectstack-ai/spec/releases/tag/v0.1.1 diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 2cec23cb..7214cb00 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,121 @@ # Release Notes +## v1.0.0 - Major Release (2026-01-25) + +### 📦 Released Packages + +All packages have been updated to version **1.0.0**: + +- **@objectstack/spec@1.0.0** - Core protocol definitions and TypeScript types +- **@objectstack/types@1.0.0** - Shared TypeScript type definitions +- **@objectstack/objectql@1.0.0** - ObjectQL query language and runtime +- **@objectstack/runtime@1.0.0** - Runtime execution environment +- **@objectstack/client@1.0.0** - Client library for ObjectStack +- **@objectstack/driver-memory@1.0.0** - In-memory data storage driver +- **@objectstack/plugin-hono-server@1.0.0** - Hono server plugin for REST API +- **@objectstack/plugin-msw@1.0.0** - MSW (Mock Service Worker) plugin + +### 🎉 What's New + +This is a **major version 1.0.0 release** marking the API as stable and production-ready! + +#### Stability & Production Readiness +- **Stable API**: The ObjectStack protocol and API are now considered stable +- **Production Ready**: All core packages are ready for production use +- **Comprehensive Testing**: Full test coverage across all packages +- **Complete Documentation**: Extensive guides and API references + +#### Foundation +Built on the solid foundation established in v0.4.0: +- Complete documentation site with Fumadocs +- Comprehensive GitHub workflows (CI, CodeQL, release automation) +- Documentation guides (CONTRIBUTING.md, ARCHITECTURE.md, CODE_OF_CONDUCT.md) +- Agent prompts for AI-assisted development +- Multiple example applications +- Infrastructure automation + +### 📝 Changes Summary + +- **Version Bump**: All packages updated from 0.4.0 → 1.0.0 (major version bump) +- **API Stability**: API is now considered stable and production-ready +- **No Breaking Changes**: This release maintains compatibility with 0.4.0 + +### 🚀 Publishing + +This release is ready for publishing to npm. When this PR is merged to `main`: +1. The GitHub Actions release workflow will automatically detect the version bump +2. Build all packages +3. Publish to npm registry using NPM_TOKEN secret +4. Create GitHub release with appropriate tags + +### 🔗 Migration Notes + +No migration required from v0.4.0 - this is a stability declaration release. + +--- + +## v0.4.0 - Minor Feature Release (2026-01-25) + +### 📦 Released Packages + +All packages have been updated to version **0.4.0**: + +- **@objectstack/spec@0.4.0** - Core protocol definitions and TypeScript types +- **@objectstack/types@0.4.0** - Shared TypeScript type definitions +- **@objectstack/objectql@0.4.0** - ObjectQL query language and runtime +- **@objectstack/runtime@0.4.0** - Runtime execution environment +- **@objectstack/client@0.4.0** - Client library for ObjectStack +- **@objectstack/driver-memory@0.4.0** - In-memory data storage driver +- **@objectstack/plugin-hono-server@0.4.0** - Hono server plugin for REST API +- **@objectstack/plugin-msw@0.4.0** - MSW (Mock Service Worker) plugin + +### ✨ What's New + +This is a **minor feature release** with significant infrastructure and documentation improvements: + +#### Documentation & Developer Experience +- **Complete Documentation Site**: Built with Fumadocs, featuring comprehensive guides and API references +- **Contributing Guidelines**: CONTRIBUTING.md with detailed development workflow +- **Architecture Documentation**: Deep dive into ObjectStack's architecture and design principles +- **Code of Conduct**: Community guidelines for inclusive collaboration +- **Blog Posts**: In-depth articles on metadata-driven architecture and protocol-first development + +#### Infrastructure & Automation +- **GitHub Workflows**: + - Continuous Integration (CI) for automated testing + - CodeQL security scanning + - Automated release process + - Dependency validation + - Link checking + - PR automation +- **Agent Prompts**: AI-assisted development prompts for various protocol domains + +#### Examples & Demos +- Multiple example applications showcasing ObjectStack capabilities +- AI-powered examples (Analyst, Sales, Support, Code Generator) +- CRM and Todo applications +- Plugin examples (BI, MSW demo) + +### 📝 Changes Summary + +- **Version Bump**: All packages updated from 0.3.2 → 0.4.0 +- **New Files**: 100+ new files including documentation, workflows, and examples +- **Enhanced Structure**: Improved project organization and developer experience + +### 🚀 Publishing + +This release is ready for publishing to npm. When this PR is merged to `main`: +1. The GitHub Actions release workflow will automatically detect the version bump +2. Build all packages +3. Publish to npm registry using NPM_TOKEN secret +4. Create GitHub release with appropriate tags + +### 🔗 Migration Notes + +No breaking changes in this release. All existing code will continue to work with version 0.4.0. + +--- + ## v0.3.2 - Maintenance Release (2026-01-24) ### 📦 Released Packages diff --git a/examples/ai-analyst/CHANGELOG.md b/examples/ai-analyst/CHANGELOG.md index 1049e03c..705fba0f 100644 --- a/examples/ai-analyst/CHANGELOG.md +++ b/examples/ai-analyst/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/example-ai-analyst +## 1.0.5 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 1.0.4 ### Patch Changes diff --git a/examples/ai-analyst/package.json b/examples/ai-analyst/package.json index 994e463c..5a3c0ed8 100644 --- a/examples/ai-analyst/package.json +++ b/examples/ai-analyst/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-ai-analyst", - "version": "1.0.4", + "version": "1.0.5", "description": "AI-powered data analyst with natural language query capabilities", "private": true, "main": "objectstack.config.ts", diff --git a/examples/ai-codegen/CHANGELOG.md b/examples/ai-codegen/CHANGELOG.md index b138a651..acc67192 100644 --- a/examples/ai-codegen/CHANGELOG.md +++ b/examples/ai-codegen/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/example-ai-codegen +## 1.0.5 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 1.0.4 ### Patch Changes diff --git a/examples/ai-codegen/package.json b/examples/ai-codegen/package.json index 8469816d..03a98660 100644 --- a/examples/ai-codegen/package.json +++ b/examples/ai-codegen/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-ai-codegen", - "version": "1.0.4", + "version": "1.0.5", "description": "AI code generator - Generate ObjectStack apps from natural language", "private": true, "main": "objectstack.config.ts", diff --git a/examples/ai-sales/CHANGELOG.md b/examples/ai-sales/CHANGELOG.md index d8aa7d26..fd45faae 100644 --- a/examples/ai-sales/CHANGELOG.md +++ b/examples/ai-sales/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/example-ai-sales +## 1.0.5 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 1.0.4 ### Patch Changes diff --git a/examples/ai-sales/package.json b/examples/ai-sales/package.json index 992b3b04..22b21960 100644 --- a/examples/ai-sales/package.json +++ b/examples/ai-sales/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-ai-sales", - "version": "1.0.4", + "version": "1.0.5", "description": "AI-powered sales assistant with intelligent automation", "private": true, "main": "objectstack.config.ts", diff --git a/examples/ai-support/CHANGELOG.md b/examples/ai-support/CHANGELOG.md index ea7a9f19..ecf8c240 100644 --- a/examples/ai-support/CHANGELOG.md +++ b/examples/ai-support/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/example-ai-support +## 1.0.5 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 1.0.4 ### Patch Changes diff --git a/examples/ai-support/package.json b/examples/ai-support/package.json index f0abeefc..a56a8616 100644 --- a/examples/ai-support/package.json +++ b/examples/ai-support/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-ai-support", - "version": "1.0.4", + "version": "1.0.5", "description": "AI-powered customer support system with RAG knowledge base", "private": true, "main": "objectstack.config.ts", diff --git a/examples/crm/CHANGELOG.md b/examples/crm/CHANGELOG.md index db4ce050..fb48453c 100644 --- a/examples/crm/CHANGELOG.md +++ b/examples/crm/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/example-crm +## 1.0.7 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 1.0.6 ### Patch Changes @@ -19,7 +26,7 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 + - @objectstack/spec@0.4.0 ## 1.0.3 diff --git a/examples/crm/package.json b/examples/crm/package.json index 428fa3e7..81dac657 100644 --- a/examples/crm/package.json +++ b/examples/crm/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-crm", - "version": "1.0.6", + "version": "1.0.7", "description": "Example CRM implementation using ObjectStack Protocol", "private": true, "scripts": { diff --git a/examples/host/CHANGELOG.md b/examples/host/CHANGELOG.md index c1f7ae8c..ca2ff5b3 100644 --- a/examples/host/CHANGELOG.md +++ b/examples/host/CHANGELOG.md @@ -1,5 +1,18 @@ # @objectstack/example-host +## 0.1.7 + +### Minor Changes + +- Updated dependencies + - @objectstack/driver-memory@0.4.0 + - @objectstack/objectql@0.4.0 + - @objectstack/plugin-hono-server@0.4.0 + - @objectstack/runtime@0.4.0 + - @objectstack/example-crm@1.0.7 + - @objectstack/plugin-bi@1.0.7 + - @objectstack/example-todo@1.0.7 + ## 0.1.6 ### Patch Changes @@ -34,10 +47,10 @@ - @objectstack/example-crm@1.0.4 - @objectstack/plugin-bi@1.0.4 - @objectstack/example-todo@1.0.4 -- @objectstack/driver-memory@1.0.0 -- @objectstack/objectql@1.0.0 -- @objectstack/plugin-hono-server@1.0.0 -- @objectstack/runtime@1.0.0 +- @objectstack/driver-memory@0.4.0 +- @objectstack/objectql@0.4.0 +- @objectstack/plugin-hono-server@0.4.0 +- @objectstack/runtime@0.4.0 ## 0.1.3 @@ -60,7 +73,7 @@ - @objectstack/objectql@0.2.0 - @objectstack/runtime@0.2.0 - @objectstack/driver-memory@0.2.0 - - @objectstack/plugin-hono-server@1.0.0 + - @objectstack/plugin-hono-server@0.4.0 - @objectstack/example-crm@1.0.2 - @objectstack/plugin-bi@1.0.2 - @objectstack/example-todo@1.0.2 diff --git a/examples/host/package.json b/examples/host/package.json index 509a4d98..af9e0e99 100644 --- a/examples/host/package.json +++ b/examples/host/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-host", - "version": "0.1.6", + "version": "0.1.7", "private": true, "scripts": { "dev": "ts-node src/index.ts", diff --git a/examples/msw-demo/CHANGELOG.md b/examples/msw-demo/CHANGELOG.md index 1b118ace..f2ebb0a8 100644 --- a/examples/msw-demo/CHANGELOG.md +++ b/examples/msw-demo/CHANGELOG.md @@ -1,5 +1,16 @@ # @objectstack/example-msw-demo +## 0.1.2 + +### Minor Changes + +- Updated dependencies + - @objectstack/driver-memory@0.4.0 + - @objectstack/objectql@0.4.0 + - @objectstack/runtime@0.4.0 + - @objectstack/example-crm@1.0.7 + - @objectstack/plugin-msw@0.4.0 + ## 0.1.1 ### Patch Changes diff --git a/examples/msw-demo/package.json b/examples/msw-demo/package.json index 6c3659da..c7b7e232 100644 --- a/examples/msw-demo/package.json +++ b/examples/msw-demo/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-msw-demo", - "version": "0.1.1", + "version": "0.1.2", "private": true, "description": "Example demonstrating MSW plugin usage with ObjectStack", "scripts": { diff --git a/examples/plugin-bi/CHANGELOG.md b/examples/plugin-bi/CHANGELOG.md index ab2f1f55..1722db7e 100644 --- a/examples/plugin-bi/CHANGELOG.md +++ b/examples/plugin-bi/CHANGELOG.md @@ -1,5 +1,12 @@ # @objectstack/plugin-bi +## 1.0.7 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 1.0.6 ### Patch Changes @@ -19,7 +26,7 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 + - @objectstack/spec@0.4.0 ## 1.0.3 diff --git a/examples/plugin-bi/package.json b/examples/plugin-bi/package.json index 85dcb2f7..1727a3af 100644 --- a/examples/plugin-bi/package.json +++ b/examples/plugin-bi/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-bi", - "version": "1.0.6", + "version": "1.0.7", "main": "src/index.ts", "license": "MIT", "private": true, diff --git a/examples/todo/CHANGELOG.md b/examples/todo/CHANGELOG.md index 00721116..3f70ef0e 100644 --- a/examples/todo/CHANGELOG.md +++ b/examples/todo/CHANGELOG.md @@ -1,5 +1,13 @@ # @objectstack/example-todo +## 1.0.7 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + - @objectstack/client@0.4.0 + ## 1.0.6 ### Patch Changes @@ -21,8 +29,8 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 - - @objectstack/client@1.0.0 + - @objectstack/spec@0.4.0 + - @objectstack/client@0.4.0 ## 1.0.3 diff --git a/examples/todo/package.json b/examples/todo/package.json index a7bbd24b..94634ec0 100644 --- a/examples/todo/package.json +++ b/examples/todo/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/example-todo", - "version": "1.0.6", + "version": "1.0.7", "description": "Example Todo App using ObjectStack Protocol", "private": true, "scripts": { diff --git a/packages/client/CHANGELOG.md b/packages/client/CHANGELOG.md index e4a37fcb..010b840b 100644 --- a/packages/client/CHANGELOG.md +++ b/packages/client/CHANGELOG.md @@ -1,5 +1,36 @@ # @objectstack/client +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 0.3.2 ### Patch Changes @@ -19,7 +50,7 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 + - @objectstack/spec@0.4.0 ## 0.2.0 diff --git a/packages/client/package.json b/packages/client/package.json index 6052bc48..76d06015 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/client", - "version": "0.3.2", + "version": "1.0.0", "description": "Official Client SDK for ObjectStack Protocol", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/driver-memory/CHANGELOG.md b/packages/driver-memory/CHANGELOG.md index 10095462..9f24b6bb 100644 --- a/packages/driver-memory/CHANGELOG.md +++ b/packages/driver-memory/CHANGELOG.md @@ -1,5 +1,36 @@ # @objectstack/driver-memory +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 0.3.2 ### Patch Changes @@ -19,7 +50,7 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 + - @objectstack/spec@0.4.0 ## 0.2.0 diff --git a/packages/driver-memory/package.json b/packages/driver-memory/package.json index da3d4174..d34b099b 100644 --- a/packages/driver-memory/package.json +++ b/packages/driver-memory/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/driver-memory", - "version": "0.3.2", + "version": "1.0.0", "description": "In-Memory Driver for ObjectStack (Reference Implementation)", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", diff --git a/packages/objectql/CHANGELOG.md b/packages/objectql/CHANGELOG.md index 0986456f..0150a1a1 100644 --- a/packages/objectql/CHANGELOG.md +++ b/packages/objectql/CHANGELOG.md @@ -1,5 +1,36 @@ # @objectstack/objectql +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 0.3.2 ### Patch Changes @@ -19,7 +50,7 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 + - @objectstack/spec@0.4.0 ## 0.2.0 diff --git a/packages/objectql/package.json b/packages/objectql/package.json index b2a146f9..4997ae40 100644 --- a/packages/objectql/package.json +++ b/packages/objectql/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/objectql", - "version": "0.3.2", + "version": "1.0.0", "description": "Isomorphic ObjectQL Engine for ObjectStack", "main": "src/index.ts", "types": "src/index.ts", diff --git a/packages/plugin-hono-server/CHANGELOG.md b/packages/plugin-hono-server/CHANGELOG.md index 7d994463..f083a34e 100644 --- a/packages/plugin-hono-server/CHANGELOG.md +++ b/packages/plugin-hono-server/CHANGELOG.md @@ -1,5 +1,40 @@ # @objectstack/plugin-hono-server +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + - @objectstack/runtime@1.0.0 + - @objectstack/types@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + - @objectstack/runtime@0.4.0 + - @objectstack/types@0.4.0 + ## 0.3.2 ### Patch Changes @@ -24,9 +59,9 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 - - @objectstack/runtime@1.0.0 - - @objectstack/types@1.0.0 + - @objectstack/spec@0.4.0 + - @objectstack/runtime@0.4.0 + - @objectstack/types@0.4.0 ## 0.2.0 diff --git a/packages/plugin-hono-server/package.json b/packages/plugin-hono-server/package.json index 9bae6343..40b28353 100644 --- a/packages/plugin-hono-server/package.json +++ b/packages/plugin-hono-server/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-hono-server", - "version": "0.3.2", + "version": "1.0.0", "description": "Standard Hono Server Adapter for ObjectStack Runtime", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -19,6 +19,6 @@ "typescript": "^5.0.0" }, "peerDependencies": { - "@objectstack/runtime": "^0.3.2" + "@objectstack/runtime": "^1.0.0" } } diff --git a/packages/plugin-msw/CHANGELOG.md b/packages/plugin-msw/CHANGELOG.md index 924a4abc..bc37dbb3 100644 --- a/packages/plugin-msw/CHANGELOG.md +++ b/packages/plugin-msw/CHANGELOG.md @@ -1,5 +1,23 @@ # @objectstack/plugin-msw +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + - @objectstack/runtime@1.0.0 + - @objectstack/types@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + - @objectstack/runtime@0.4.0 + - @objectstack/types@0.4.0 + ## 0.3.2 ### Patch Changes diff --git a/packages/plugin-msw/package.json b/packages/plugin-msw/package.json index 047b060f..34f7eb34 100644 --- a/packages/plugin-msw/package.json +++ b/packages/plugin-msw/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/plugin-msw", - "version": "0.3.2", + "version": "1.0.0", "description": "MSW (Mock Service Worker) Plugin for ObjectStack Runtime", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -18,6 +18,6 @@ "typescript": "^5.0.0" }, "peerDependencies": { - "@objectstack/runtime": "^0.3.2" + "@objectstack/runtime": "^1.0.0" } } diff --git a/packages/runtime/CHANGELOG.md b/packages/runtime/CHANGELOG.md index d12c2b20..79219571 100644 --- a/packages/runtime/CHANGELOG.md +++ b/packages/runtime/CHANGELOG.md @@ -1,5 +1,40 @@ # @objectstack/runtime +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + - @objectstack/objectql@1.0.0 + - @objectstack/types@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + - @objectstack/objectql@0.4.0 + - @objectstack/types@0.4.0 + ## 0.3.2 ### Patch Changes @@ -24,9 +59,9 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 - - @objectstack/objectql@1.0.0 - - @objectstack/types@1.0.0 + - @objectstack/spec@0.4.0 + - @objectstack/objectql@0.4.0 + - @objectstack/types@0.4.0 ## 0.2.0 diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 5dbfdf4c..374e3846 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/runtime", - "version": "0.3.2", + "version": "1.0.0", "description": "ObjectStack Core Runtime & Query Engine", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/spec/CHANGELOG.md b/packages/spec/CHANGELOG.md index bdc76dcb..1991baaa 100644 --- a/packages/spec/CHANGELOG.md +++ b/packages/spec/CHANGELOG.md @@ -1,8 +1,33 @@ # @objectstack/spec +## 1.0.0 + +### Major Changes + +- Major version 1.0.0 release - API is now stable and production-ready + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + ## 0.3.2 -### Patch Changes +### Minor Changes - Patch release for maintenance and stability improvements diff --git a/packages/spec/package.json b/packages/spec/package.json index a9721d44..e17e3362 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/spec", - "version": "0.3.2", + "version": "1.0.0", "description": "ObjectStack Protocol & Specification - TypeScript Interfaces, JSON Schemas, and Convention Configurations", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -10,8 +10,8 @@ "default": "./dist/index.js" }, "./driver": { - "types": "./dist/driver/index.d.ts", - "default": "./dist/driver/index.js" + "types": "./dist/driver/index.d.ts", + "default": "./dist/driver/index.js" }, "./data": { "types": "./dist/data/index.d.ts", diff --git a/packages/spec/src/permission/sharing.test.ts b/packages/spec/src/permission/sharing.test.ts index 5a038e35..d9a1a451 100644 --- a/packages/spec/src/permission/sharing.test.ts +++ b/packages/spec/src/permission/sharing.test.ts @@ -9,7 +9,7 @@ import { describe('SharingRuleType', () => { it('should accept valid sharing rule types', () => { - const validTypes = ['owner', 'criteria', 'manual', 'guest']; + const validTypes = ['owner', 'criteria']; validTypes.forEach(type => { expect(() => SharingRuleType.parse(type)).not.toThrow(); @@ -19,13 +19,15 @@ describe('SharingRuleType', () => { it('should reject invalid sharing rule types', () => { expect(() => SharingRuleType.parse('automatic')).toThrow(); expect(() => SharingRuleType.parse('public')).toThrow(); + expect(() => SharingRuleType.parse('manual')).toThrow(); + expect(() => SharingRuleType.parse('guest')).toThrow(); expect(() => SharingRuleType.parse('')).toThrow(); }); }); describe('SharingLevel', () => { it('should accept valid sharing levels', () => { - const validLevels = ['read', 'edit']; + const validLevels = ['read', 'edit', 'full']; validLevels.forEach(level => { expect(() => SharingLevel.parse(level)).not.toThrow(); @@ -35,7 +37,6 @@ describe('SharingLevel', () => { it('should reject invalid sharing levels', () => { expect(() => SharingLevel.parse('write')).toThrow(); expect(() => SharingLevel.parse('delete')).toThrow(); - expect(() => SharingLevel.parse('full')).toThrow(); }); }); @@ -60,7 +61,12 @@ describe('SharingRuleSchema', () => { const rule: SharingRule = { name: 'sales_team_access', object: 'opportunity', - sharedWith: 'group_sales_team', + type: 'criteria', + condition: 'status = "Open"', + sharedWith: { + type: 'group', + value: 'sales_team', + }, }; expect(() => SharingRuleSchema.parse(rule)).not.toThrow(); @@ -70,19 +76,25 @@ describe('SharingRuleSchema', () => { expect(() => SharingRuleSchema.parse({ name: 'valid_rule_name', object: 'account', - sharedWith: 'group_id', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, })).not.toThrow(); expect(() => SharingRuleSchema.parse({ name: 'InvalidRule', object: 'account', - sharedWith: 'group_id', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, })).toThrow(); expect(() => SharingRuleSchema.parse({ name: 'invalid-rule', object: 'account', - sharedWith: 'group_id', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, })).toThrow(); }); @@ -90,7 +102,9 @@ describe('SharingRuleSchema', () => { const rule = SharingRuleSchema.parse({ name: 'test_rule', object: 'account', - sharedWith: 'group_id', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, }); expect(rule.active).toBe(true); @@ -105,38 +119,48 @@ describe('SharingRuleSchema', () => { active: true, object: 'opportunity', type: 'criteria', - criteria: "stage = 'Closed Won' AND amount > 100000", + condition: "stage = 'Closed Won' AND amount > 100000", accessLevel: 'edit', - sharedWith: 'group_executive_team', + sharedWith: { type: 'group', value: 'executive_team' }, }); expect(rule.label).toBe('Full Sharing Rule'); - expect(rule.criteria).toContain('Closed Won'); + expect(rule.condition).toContain('Closed Won'); }); it('should accept different sharing rule types', () => { - const types: Array = ['owner', 'criteria', 'manual', 'guest']; + // Test criteria-based rule + const criteriaRule = SharingRuleSchema.parse({ + name: 'test_criteria_rule', + object: 'account', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, + }); + expect(criteriaRule.type).toBe('criteria'); - types.forEach(type => { - const rule = SharingRuleSchema.parse({ - name: 'test_rule', - object: 'account', - type, - sharedWith: 'group_id', - }); - expect(rule.type).toBe(type); + // Test owner-based rule + const ownerRule = SharingRuleSchema.parse({ + name: 'test_owner_rule', + object: 'account', + type: 'owner', + ownedBy: { type: 'role', value: 'sales_rep' }, + sharedWith: { type: 'group', value: 'group_id' }, }); + expect(ownerRule.type).toBe('owner'); }); it('should accept different access levels', () => { - const levels: Array = ['read', 'edit']; + const levels: Array = ['read', 'edit', 'full']; levels.forEach(level => { const rule = SharingRuleSchema.parse({ name: 'test_rule', object: 'account', + type: 'criteria', + condition: 'status = "Active"', accessLevel: level, - sharedWith: 'group_id', + sharedWith: { type: 'group', value: 'group_id' }, }); expect(rule.accessLevel).toBe(level); }); @@ -147,8 +171,9 @@ describe('SharingRuleSchema', () => { name: 'owner_hierarchy_rule', object: 'account', type: 'owner', + ownedBy: { type: 'role', value: 'sales_rep' }, accessLevel: 'read', - sharedWith: 'role_sales_manager', + sharedWith: { type: 'role', value: 'sales_manager' }, }); expect(rule.type).toBe('owner'); @@ -159,45 +184,49 @@ describe('SharingRuleSchema', () => { name: 'high_value_accounts', object: 'account', type: 'criteria', - criteria: "annual_revenue > 1000000 AND status = 'Active'", + condition: "annual_revenue > 1000000 AND status = 'Active'", accessLevel: 'read', - sharedWith: 'group_executive_team', + sharedWith: { type: 'group', value: 'executive_team' }, }); expect(rule.type).toBe('criteria'); - expect(rule.criteria).toBeDefined(); + expect(rule.condition).toBeDefined(); }); - it('should accept manual sharing rule', () => { + it('should accept user-specific sharing rule', () => { const rule = SharingRuleSchema.parse({ - name: 'manual_share', + name: 'user_specific_share', object: 'opportunity', - type: 'manual', + type: 'criteria', + condition: 'stage != "Closed Won"', accessLevel: 'edit', - sharedWith: 'user_john_doe', + sharedWith: { type: 'user', value: 'john_doe' }, }); - expect(rule.type).toBe('manual'); + expect(rule.sharedWith.type).toBe('user'); }); it('should accept guest sharing rule', () => { const rule = SharingRuleSchema.parse({ name: 'public_access', object: 'knowledge_article', - type: 'guest', + type: 'criteria', + condition: 'published = true', accessLevel: 'read', - sharedWith: 'guest_users', + sharedWith: { type: 'guest', value: 'guest_users' }, }); - expect(rule.type).toBe('guest'); + expect(rule.sharedWith.type).toBe('guest'); }); it('should accept inactive sharing rule', () => { const rule = SharingRuleSchema.parse({ name: 'disabled_rule', object: 'account', + type: 'criteria', + condition: 'status = "Inactive"', active: false, - sharedWith: 'group_id', + sharedWith: { type: 'group', value: 'group_id' }, }); expect(rule.active).toBe(false); @@ -209,12 +238,12 @@ describe('SharingRuleSchema', () => { label: 'West Coast Territory Access', object: 'account', type: 'criteria', - criteria: "billing_state IN ('CA', 'OR', 'WA')", + condition: "billing_state IN ('CA', 'OR', 'WA')", accessLevel: 'edit', - sharedWith: 'group_west_coast_sales', + sharedWith: { type: 'group', value: 'west_coast_sales' }, }); - expect(rule.criteria).toContain('CA'); + expect(rule.condition).toContain('CA'); }); it('should handle department-based sharing', () => { @@ -222,9 +251,9 @@ describe('SharingRuleSchema', () => { name: 'finance_department_access', object: 'invoice', type: 'criteria', - criteria: "department = 'Finance'", + condition: "department = 'Finance'", accessLevel: 'edit', - sharedWith: 'group_finance_team', + sharedWith: { type: 'group', value: 'finance_team' }, }); expect(rule.object).toBe('invoice'); @@ -235,9 +264,9 @@ describe('SharingRuleSchema', () => { name: 'readonly_access', object: 'contract', type: 'criteria', - criteria: "status = 'Executed'", + condition: "status = 'Executed'", accessLevel: 'read', - sharedWith: 'group_all_users', + sharedWith: { type: 'group', value: 'all_users' }, }); expect(rule.accessLevel).toBe('read'); @@ -248,9 +277,9 @@ describe('SharingRuleSchema', () => { name: 'edit_access', object: 'opportunity', type: 'criteria', - criteria: "stage != 'Closed Won'", + condition: "stage != 'Closed Won'", accessLevel: 'edit', - sharedWith: 'group_sales_reps', + sharedWith: { type: 'group', value: 'sales_reps' }, }); expect(rule.accessLevel).toBe('edit'); @@ -259,17 +288,23 @@ describe('SharingRuleSchema', () => { it('should reject sharing rule without required fields', () => { expect(() => SharingRuleSchema.parse({ object: 'account', - sharedWith: 'group_id', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, })).toThrow(); expect(() => SharingRuleSchema.parse({ name: 'test_rule', - sharedWith: 'group_id', + type: 'criteria', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, })).toThrow(); expect(() => SharingRuleSchema.parse({ name: 'test_rule', object: 'account', + type: 'criteria', + condition: 'status = "Active"', })).toThrow(); }); @@ -278,7 +313,8 @@ describe('SharingRuleSchema', () => { name: 'test_rule', object: 'account', type: 'invalid_type', - sharedWith: 'group_id', + condition: 'status = "Active"', + sharedWith: { type: 'group', value: 'group_id' }, })).toThrow(); }); @@ -286,8 +322,10 @@ describe('SharingRuleSchema', () => { expect(() => SharingRuleSchema.parse({ name: 'test_rule', object: 'account', + type: 'criteria', + condition: 'status = "Active"', accessLevel: 'delete', - sharedWith: 'group_id', + sharedWith: { type: 'group', value: 'group_id' }, })).toThrow(); }); }); diff --git a/packages/types/CHANGELOG.md b/packages/types/CHANGELOG.md index 7f25e891..2be8dc8b 100644 --- a/packages/types/CHANGELOG.md +++ b/packages/types/CHANGELOG.md @@ -1,5 +1,36 @@ # @objectstack/types +## 1.0.0 + +### Major Changes + +- Updated dependencies + - @objectstack/spec@1.0.0 + +## 0.4.0 + +### Minor Changes + +- Minor release with comprehensive documentation, GitHub workflows, and infrastructure improvements + + ### Added + + - Complete documentation site with Fumadocs + - Comprehensive GitHub workflows (CI, CodeQL, release automation) + - Documentation guides (CONTRIBUTING.md, CODE_OF_CONDUCT.md, ARCHITECTURE.md) + - Agent prompts for AI-assisted development + - Blog posts on architecture and best practices + + ### Changed + + - Enhanced project structure and organization + - Improved documentation navigation and accessibility + +### Minor Changes + +- Updated dependencies + - @objectstack/spec@0.4.0 + ## 0.3.2 ### Patch Changes @@ -19,7 +50,7 @@ ### Patch Changes - Updated dependencies - - @objectstack/spec@1.0.0 + - @objectstack/spec@0.4.0 ## 0.2.0 diff --git a/packages/types/package.json b/packages/types/package.json index 5bb2a994..cadcfac5 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -1,6 +1,6 @@ { "name": "@objectstack/types", - "version": "0.3.2", + "version": "1.0.0", "description": "Shared interfaces describing the ObjectStack Runtime environment", "main": "src/index.ts", "types": "src/index.ts",