diff --git a/CHANGELOG.md b/CHANGELOG.md index c3f3db54..85d726b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,49 @@ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html) ## [Unreleased] +## [0.0.8] - 2026-08-04 + +### Added + +- Add a cross-project Home attention surface, global work search, and dedicated + project inventories for Todos, Automations, and Sessions. +- Add an independent Todo detail workspace with canonical Markdown content, + Discussion and Plan entry points, linked execution, and explicit lifecycle + controls. +- Add Todo-owned file references, native PDF text reading, and guarded + projection of current references into associated Agent work. +- Add direct `Save` and composed `Run now` Todo entry paths so lightweight work + can start immediately while complex work can still use Discussion and Plan. + +### Changed + +- Make Todos the durable project work anchor while keeping Sessions and + Automations as first-class execution inventories. +- Replace persisted Todo title and body fields with one canonical Markdown + content document and derive compact list labels without inventing titles. +- Replace legacy root Session and Automation source fields with explicit direct, + Todo, Session, and Automation origin contracts. +- Refresh current Todo, Plan, attachment, and root-source context at model + boundaries so long-running Sessions do not operate from stale workflow facts. +- Batch streamed text and reasoning deltas into bounded Web store updates while + preserving event order and reconnect recovery. + +### Fixed + +- Materialize nested compression summaries before they are rendered back into + the model context. +- Keep workbench controls reachable on mobile and clarify lifecycle, + operational-state, and empty-state presentation. +- Use the scheduler clock for Automation timeout decisions and treat missing + glob search roots as empty results. + +### Breaking Changes + +- Historical project runtime records using Todo `title` and `body`, legacy + Session source fields, legacy Automation origin fields, or legacy attachment + paths are no longer accepted. Remove old project runtime data before starting + this release; no migration or fallback is provided. + ## [0.0.7] - 2026-07-30 ### Changed diff --git a/apps/server/package.json b/apps/server/package.json index c717a71c..46fee163 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -1,6 +1,6 @@ { "name": "@archcode/server", - "version": "0.0.7", + "version": "0.0.8", "private": true, "type": "module", "main": "./src/main.ts", diff --git a/apps/web/package.json b/apps/web/package.json index 11b8945d..205e541e 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@archcode/web", - "version": "0.0.7", + "version": "0.0.8", "private": true, "type": "module", "scripts": { diff --git a/bun.lock b/bun.lock index c33a5e5a..d730c57f 100644 --- a/bun.lock +++ b/bun.lock @@ -24,7 +24,7 @@ }, "apps/server": { "name": "@archcode/server", - "version": "0.0.7", + "version": "0.0.8", "bin": { "archcode": "./src/main.ts", }, @@ -49,7 +49,7 @@ }, "apps/web": { "name": "@archcode/web", - "version": "0.0.7", + "version": "0.0.8", "dependencies": { "@archcode/protocol": "workspace:*", "@dnd-kit/core": "^6.3.1", @@ -83,7 +83,7 @@ }, "packages/agent-core": { "name": "@archcode/agent-core", - "version": "0.0.7", + "version": "0.0.8", "dependencies": { "@ai-sdk/alibaba": "^1.0.0", "@ai-sdk/amazon-bedrock": "^4.0.0", @@ -138,14 +138,14 @@ }, "packages/protocol": { "name": "@archcode/protocol", - "version": "0.0.7", + "version": "0.0.8", "devDependencies": { "typescript": "^6.0.3", }, }, "packages/utils": { "name": "@archcode/utils", - "version": "0.0.7", + "version": "0.0.8", "devDependencies": { "typescript": "^6.0.3", }, diff --git a/package.json b/package.json index 290cd76e..efb7bfd7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "archcode", - "version": "0.0.7", + "version": "0.0.8", "private": true, "description": "ArchCode — Not just a coding agent. An always-on workbench for AI engineering.", "type": "module", diff --git a/packages/agent-core/package.json b/packages/agent-core/package.json index b25f0a20..5f61724a 100644 --- a/packages/agent-core/package.json +++ b/packages/agent-core/package.json @@ -1,6 +1,6 @@ { "name": "@archcode/agent-core", - "version": "0.0.7", + "version": "0.0.8", "private": true, "type": "module", "main": "./src/index.ts", diff --git a/packages/protocol/package.json b/packages/protocol/package.json index b2efc2a0..8552c67c 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -1,6 +1,6 @@ { "name": "@archcode/protocol", - "version": "0.0.7", + "version": "0.0.8", "private": true, "type": "module", "main": "./src/index.ts", diff --git a/packages/utils/package.json b/packages/utils/package.json index 2d49126c..78ec250b 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@archcode/utils", - "version": "0.0.7", + "version": "0.0.8", "private": true, "type": "module", "main": "./src/index.ts", diff --git a/scripts/release.test.ts b/scripts/release.test.ts index 6eb2ad46..6c7409f2 100644 --- a/scripts/release.test.ts +++ b/scripts/release.test.ts @@ -232,7 +232,7 @@ describe("release metadata", () => { test("compares complete release asset directories by content", async () => { const expectedDir = await mkdtemp(join(tmpdir(), "archcode-release-expected-")); const actualDir = await mkdtemp(join(tmpdir(), "archcode-release-actual-")); - const releaseAssetNames = releaseAssetNamesForVersion("0.0.7"); + const releaseAssetNames = releaseAssetNamesForVersion("0.0.8"); try { for (const name of releaseAssetNames) { await Promise.all([ @@ -258,14 +258,14 @@ describe("release metadata", () => { try { for (const target of releaseTargets) { await writeTestArchive( - join(assetDir, releaseArchiveAssetName(target, "0.0.7")), - "0.0.7", + join(assetDir, releaseArchiveAssetName(target, "0.0.8")), + "0.0.8", ); } const template = await Bun.file(join(import.meta.dir, "install.sh")).text(); await Bun.write( join(assetDir, "install.sh"), - renderReleaseInstaller(template, "0.0.7"), + renderReleaseInstaller(template, "0.0.8"), ); await writeBundleMetadata(assetDir);