Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,29 @@ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html)

## [Unreleased]

## [0.0.9] - 2026-08-18

### Added

- Keep the HTTP control plane and Settings available when Runtime activation or
global Config validation fails, with bounded Runtime-data inspection,
selective invalid-item removal, and same-process recovery.
- Add durable project Memory management with 10-minute idle learning, crash-safe
reconciliation, bounded Markdown storage, explicit write support, and
Settings controls for preferences, topics, warnings, and runtime policy.
- Add live MCP and Skill management across Settings and the composer, including
HTTP/STDIO lifecycle controls, draft connection tests, saved reconnects,
package diagnostics, target-aware discovery, and progressive resource reads.

### Changed

- Hard-cut the Web UI to the Todo-only workbench: `/` now opens the last
project's All todos surface (or the zero-project registration state), while
Todo, Work, Runs, Schedules, Session, Search, Needs-you, Diff, Composer, and
Inspector flows share one responsive workbench shell.
- Replace the legacy Memory extraction hooks and thresholds with two independent
runtime policies: `useMemory` for recall and `autoLearning` for background
learning. Explicit `memory_write` remains immediate.
- Replace single-file workflow Skills with standard local Skill packages:
`SKILL.md` plus optional `scripts/`, `references/`, `assets/`, and other
contained resources. Skill discovery is metadata-only; entry and listed
Expand All @@ -19,9 +40,24 @@ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
`disabledBuiltins`, hot apply on Settings save, and status/Test/Reconnect
controls. User MCP servers are visible to all six Agent identities; the
built-in visibility matrix remains role-defined.
- Centralize Agent target, Profile, depth, and Skill authority so fresh and
resumed delegation share one admission path and Providers receive portable
tool schemas instead of internal validation constraints.

### Fixed

- Prevent strict Providers from rejecting delegation and Skill tool schemas
before model execution, while preserving exact runtime authorization and
stable typed errors.
- Preserve completed Session responses across restart and keep recovery
follow-up failures distinct from the original Runtime activation failure.

### Breaking Changes

- Memory configuration is a hard cut. Replace `enabled`, `minMessages`,
`minContentLength`, and `cooldownMs` with `useMemory` and `autoLearning`.
Obsolete query-loop extraction hooks, tasks, cursors, and compatibility paths
are removed.
- Project and user Skills must use one directory per Skill:
`<skills-root>/<name>/SKILL.md`. Manually update existing entries to use only `name` and `description`
(required), with optional `license`, `compatibility`, and string-map
Expand All @@ -37,6 +73,9 @@ and this project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
opt-out uses `disabledBuiltins`; user-server role filters and extra MCP
approval assumptions are removed. There is no migration, compatibility
reader, or fallback for the old configuration shape.
- The legacy global Home/Dashboard and parallel document-rail navigation are
removed. Root navigation now resolves to project Todos, and no compatibility
UI is retained for the former shell.

## [0.0.8] - 2026-08-04

Expand Down
2 changes: 1 addition & 1 deletion apps/server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcode/server",
"version": "0.0.8",
"version": "0.0.9",
"private": true,
"type": "module",
"main": "./src/main.ts",
Expand Down
2 changes: 1 addition & 1 deletion apps/web/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcode/web",
"version": "0.0.8",
"version": "0.0.9",
"private": true,
"type": "module",
"scripts": {
Expand Down
10 changes: 5 additions & 5 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "archcode",
"version": "0.0.8",
"version": "0.0.9",
"private": true,
"description": "ArchCode — Not just a coding agent. An always-on workbench for AI engineering.",
"type": "module",
Expand Down
2 changes: 1 addition & 1 deletion packages/agent-core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcode/agent-core",
"version": "0.0.8",
"version": "0.0.9",
"private": true,
"type": "module",
"main": "./src/index.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcode/protocol",
"version": "0.0.8",
"version": "0.0.9",
"private": true,
"type": "module",
"main": "./src/index.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/utils/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcode/utils",
"version": "0.0.8",
"version": "0.0.9",
"private": true,
"type": "module",
"main": "./src/index.ts",
Expand Down
8 changes: 4 additions & 4 deletions scripts/release.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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.8");
const releaseAssetNames = releaseAssetNamesForVersion("0.0.9");
try {
for (const name of releaseAssetNames) {
await Promise.all([
Expand All @@ -258,14 +258,14 @@ describe("release metadata", () => {
try {
for (const target of releaseTargets) {
await writeTestArchive(
join(assetDir, releaseArchiveAssetName(target, "0.0.8")),
"0.0.8",
join(assetDir, releaseArchiveAssetName(target, "0.0.9")),
"0.0.9",
);
}
const template = await Bun.file(join(import.meta.dir, "install.sh")).text();
await Bun.write(
join(assetDir, "install.sh"),
renderReleaseInstaller(template, "0.0.8"),
renderReleaseInstaller(template, "0.0.9"),
);

await writeBundleMetadata(assetDir);
Expand Down