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
2 changes: 1 addition & 1 deletion actions/review-action/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ inputs:
runtime-version:
description: ArchContext runtime version expected by this action release.
required: false
default: "0.4.1"
default: "0.4.2"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update the reusable workflow default to 0.4.2

When a caller omits the optional runtime_version input, .github/workflows/archcontext-organization-runner.yml lines 26-30 still supplies 0.4.1 to the action at line 72. This action now expects 0.4.2, and dist/review-action.mjs lines 62-64 rejects the mismatch before execution, so the reusable workflow's advertised default path will fail with runtime-version-mismatch; update that workflow default with the other release surfaces.

Useful? React with 👍 / 👎.

runtime-artifact-url:
description: HTTPS URL for the pinned ArchContext runtime artifact.
required: true
Expand Down
13 changes: 13 additions & 0 deletions deploy/release-checklists/archctx-0.4.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# archctx 0.4.2 release checklist

Scope: exclude the exact Claude runtime trace files from architecture projection worktree identity so a CodeGraph-backed projection can remain stable while repo-harness records its active session. This patch keeps `.claude` configuration authoritative and does not change protocol identifiers, renderer/layout versions, or the Node engine range.

- [ ] `bun run verify` passes under Node `>=24 <26`.
- [ ] `archctx` and `archctx-contracts` package versions are exactly `0.4.2`.
- [ ] Focused architecture-domain tests prove runtime traces are ignored and `.claude/settings.json` remains digest-significant.
- [ ] A real repo-harness projection apply completes while `.claude/.session-id` and `.claude/.trace.jsonl` are active.
- [ ] Pull request is merged to `main`; Claude review is waived by the user's explicit instruction.
- [ ] Publish `archctx-contracts@0.4.2` and read back version, integrity, and shasum.
- [ ] Publish `archctx@0.4.2` and read back version, integrity, shasum, Node engine, and exact CodeGraph dependency.
- [ ] Clean-room Node 24 smoke returns the `0.4.2` capabilities handshake.
- [ ] Update repo-harness to exact `archctx@0.4.2` and `archctx-contracts@0.4.2`, then prove the accepted refresh signal end to end.
4 changes: 2 additions & 2 deletions docs/examples/github-hosted-runner-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ jobs:
trust-level: organization
fail-on: blocking
fork-pr-mode: unsupported
runtime-version: "0.4.1"
runtime-artifact-url: https://archcontext.repoharness.com/releases/archctx-0.4.1.tgz
runtime-version: "0.4.2"
runtime-artifact-url: https://archcontext.repoharness.com/releases/archctx-0.4.2.tgz
runtime-artifact-digest: sha256:<release-digest>
expected-repository: <owner/name from Challenge>
expected-head-sha: ${{ github.event.pull_request.head.sha }}
Expand Down
4 changes: 2 additions & 2 deletions docs/examples/reusable-organization-runner-caller.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
expected_repository: ${{ github.repository }}
expected_head_sha: ${{ github.event.pull_request.head.sha }}
expected_head_tree_oid: <head tree OID from Challenge>
runtime_artifact_url: https://archcontext.repoharness.com/releases/archctx-0.4.1.tgz
runtime_artifact_url: https://archcontext.repoharness.com/releases/archctx-0.4.2.tgz
runtime_artifact_digest: sha256:<release-digest>
runtime_version: "0.4.1"
runtime_version: "0.4.2"
fail_on: blocking
fork_pr_mode: unsupported
6 changes: 3 additions & 3 deletions docs/runbooks/personal-user-install.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Personal User Install

This runbook is the current individual-user install path for `archctx@0.4.1`.
This runbook is the current individual-user install path for `archctx@0.4.2`.
Team collaboration, design-partner rollout, opt-in beta cohorts, and shared organization rollout evidence are deferred.

## Scope

- Target user: one local developer using ArchContext on their own repository.
- Required release artifact: public npm package `archctx@0.4.1` (`latest`).
- Required release artifact: public npm package `archctx@0.4.2` (`latest`).
- Runtime: Node.js 24.x or 25.x, npm, and git must be available on `PATH`.
- Not required for this path: GitHub App installation, ArchContext Cloud token, Cloudflare deploy access, or LLM provider credentials.
- Do not treat this runbook as approved for a published package version until `docs/verification/fg6-release-distribution-readback.json` is verified for that exact version.
Expand All @@ -26,7 +26,7 @@ archctx --help
For pinned reproduction of the current verified release:

```bash
npm install -g archctx@0.4.1
npm install -g archctx@0.4.2
```

The npm package is the generated public `archctx` artifact. The repository root package `archcontext` and workspace packages remain private source manifests for building and verifying that artifact.
Expand Down
4 changes: 2 additions & 2 deletions docs/runbooks/trusted-runner.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ jobs:
trust-level: organization
fail-on: blocking
fork-pr-mode: unsupported
runtime-version: "0.4.1"
runtime-artifact-url: https://archcontext.repoharness.com/releases/archctx-0.4.1.tgz
runtime-version: "0.4.2"
runtime-artifact-url: https://archcontext.repoharness.com/releases/archctx-0.4.2.tgz
runtime-artifact-digest: sha256:<release-digest>
expected-repository: <owner/name from Challenge>
expected-head-sha: <head SHA from Challenge>
Expand Down
4 changes: 2 additions & 2 deletions docs/verification/fg4-deterministic-conclusion-readback.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"environment": "process-fixture",
"status": "verified",
"ok": true,
"generatedAt": "2026-08-09T19:01:30.486Z",
"generatedAt": "2026-08-10T03:42:17.585Z",
"evidence": {
"processLevelFixture": true,
"providerEnvCleared": {
Expand All @@ -14,7 +14,7 @@
},
"deterministicGate": {
"llmProviderConfigured": false,
"modelDigest": "sha256:ff2e3ae2764b615e6152d9bff09d7170da4dcc2485d398044d4716f233ae493f",
"modelDigest": "sha256:731ffc73ee3b6214dccdadabb5926bc5e727b01950eb218324c843600782c803",
"result": "pass",
"reviewDigestMatchesAttestation": true
},
Expand Down
4 changes: 2 additions & 2 deletions docs/verification/fg6-no-provider-deterministic-readback.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"environment": "staging-release-readback",
"status": "verified",
"ok": true,
"generatedAt": "2026-08-09T19:01:30.532Z",
"generatedAt": "2026-08-10T03:42:17.829Z",
"sources": {
"localNoCloudSource": "docs/verification/fg6-local-no-cloud-readback.json",
"runnerSource": "docs/verification/fg4-github-hosted-runner-readback.json",
Expand Down Expand Up @@ -55,7 +55,7 @@
},
"deterministicGate": {
"llmProviderConfigured": false,
"modelDigest": "sha256:ff2e3ae2764b615e6152d9bff09d7170da4dcc2485d398044d4716f233ae493f",
"modelDigest": "sha256:731ffc73ee3b6214dccdadabb5926bc5e727b01950eb218324c843600782c803",
"result": "pass",
"reviewDigestMatchesAttestation": true
},
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "archcontext",
"version": "0.4.1",
"version": "0.4.2",
"private": true,
"type": "module",
"packageManager": "bun@1.3.10",
Expand Down
2 changes: 1 addition & 1 deletion packages/cloud/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcontext/cloud",
"version": "0.4.1",
"version": "0.4.2",
"private": true,
"type": "module",
"exports": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schemaVersion": "archcontext.capabilities/v1",
"package": { "name": "archctx", "version": "0.4.1" },
"package": { "name": "archctx", "version": "0.4.2" },
"protocols": {
"projectionRequest": "archcontext.projection-request/v1",
"projectionResult": "archcontext.projection-result/v1",
Expand Down
10 changes: 5 additions & 5 deletions packages/contracts/fixtures/valid/product-version-manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"schemaVersion": "archcontext.product-version-manifest/v1",
"product": {
"name": "archctx",
"version": "0.4.1",
"version": "0.4.2",
"distribution": "one-package"
},
"packageManager": "bun@1.3.10",
Expand All @@ -12,25 +12,25 @@
"surfaces": {
"cli": {
"packageName": "@archcontext/surfaces",
"version": "0.4.1",
"version": "0.4.2",
"entrypoint": "archctx"
},
"daemon": {
"packageName": "@archcontext/local-runtime",
"version": "0.4.1",
"version": "0.4.2",
"entrypoint": "archctx daemon start",
"rpcSchemaVersion": "archcontext.runtime-rpc/v1"
},
"mcp": {
"packageName": "@archcontext/surfaces",
"version": "0.4.1",
"version": "0.4.2",
"entrypoint": "archctx mcp",
"transport": "stdio"
}
},
"schemas": {
"schemaSetVersion": "2026-06-25.al0-ledger",
"contractsPackageVersion": "0.4.1",
"contractsPackageVersion": "0.4.2",
"reviewChallenge": "archcontext.review-challenge/v2",
"attestation": "archcontext.attestation/v2",
"deviceIdentity": "archcontext.device-identity/v1",
Expand Down
2 changes: 1 addition & 1 deletion packages/contracts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcontext/contracts",
"version": "0.4.1",
"version": "0.4.2",
"private": false,
"type": "module",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/contracts/src/product-version.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export const ARCHCONTEXT_PRODUCT_NAME = "archctx";
export const ARCHCONTEXT_PRODUCT_VERSION = "0.4.1";
export const ARCHCONTEXT_PRODUCT_VERSION = "0.4.2";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Regenerate the version-bound no-LLM readbacks

Changing this constant also changes REVIEW_ACTION_NO_LLM_MODEL_DIGEST, because packages/cloud/runner/src/index.ts includes ARCHCONTEXT_PRODUCT_VERSION in that digest. The committed fg4-deterministic-conclusion-readback.json and fg6-no-provider-deterministic-readback.json still contain the 0.4.1 digest, so their documented inspect commands now fail with model digest must be no-provider digest; regenerate both artifacts for 0.4.2.

Useful? React with 👍 / 👎.

export const ARCHCONTEXT_PACKAGE_MANAGER = "bun@1.3.10";
export const ARCHCONTEXT_NODE_RANGE = ">=24 <26";
export const LOCAL_RUNTIME_RPC_SCHEMA_VERSION = "archcontext.runtime-rpc/v1";
Expand Down
2 changes: 1 addition & 1 deletion packages/contracts/test/contracts.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ test("refresh-required signals bind the exact accepted ChangeSet event and taxon

test("capabilities fixture is the exact static handshake advertised by contracts", () => {
const fixture = readJson("packages/contracts/fixtures/valid/archctx-capabilities.json") as unknown as ReturnType<typeof archctxCapabilities>;
expect(archctxCapabilities("0.4.1")).toEqual(fixture);
expect(archctxCapabilities("0.4.2")).toEqual(fixture);
expect([...ARCHCTX_FEATURES]).toEqual([...ARCHCTX_FEATURES].sort());
const schema = readJson("schemas/runtime/archctx-capabilities.schema.json");
expect(validateJsonSchema(schema as any, archctxCapabilities("1.2.3-rc.1+build.5") as any).valid).toBe(true);
Expand Down
2 changes: 2 additions & 0 deletions packages/core/architecture-domain/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,8 @@ const DEFAULT_IGNORES = new Set([
"_ops",
"_ref",
".archcontext/.local",
".claude/.session-id",
".claude/.trace.jsonl",
".DS_Store"
]);

Expand Down
18 changes: 18 additions & 0 deletions packages/core/architecture-domain/test/domain.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,24 @@ describe("@archcontext/core/architecture-domain", () => {
}
});

test("worktree digest ignores Claude runtime trace files without ignoring Claude configuration", () => {
const root = mkdtempSync(join(tmpdir(), "archctx-domain-"));
try {
mkdirSync(join(root, ".claude"), { recursive: true });
writeFileSync(join(root, ".claude", ".session-id"), "session-one");
writeFileSync(join(root, ".claude", ".trace.jsonl"), "trace-one\n");
writeFileSync(join(root, ".claude", "settings.json"), "{}\n");
const first = computeWorktreeDigest(root);
writeFileSync(join(root, ".claude", ".session-id"), "session-two");
writeFileSync(join(root, ".claude", ".trace.jsonl"), "trace-two\n");
expect(computeWorktreeDigest(root)).toBe(first);
writeFileSync(join(root, ".claude", "settings.json"), "{\"hooks\":{}}\n");
expect(computeWorktreeDigest(root)).not.toBe(first);
} finally {
rmSync(root, { recursive: true, force: true });
}
});

test("default ignores apply only at repository roots, not to nested source directories with the same basename", () => {
const root = mkdtempSync(join(tmpdir(), "archctx-domain-"));
try {
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcontext/core",
"version": "0.4.1",
"version": "0.4.2",
"private": true,
"type": "module",
"exports": {
Expand Down
4 changes: 2 additions & 2 deletions packages/core/practice-catalog/assets/catalog.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": "archcontext.practice-catalog-manifest/v1",
"catalogVersion": "2026.06.0",
"productVersion": "0.4.1",
"productVersion": "0.4.2",
"generatedAt": "1970-01-01T00:00:00.000Z",
"entries": [
{
Expand Down Expand Up @@ -389,5 +389,5 @@
"structurizr.dsl",
"twelve-factor"
],
"catalogDigest": "sha256:4d9f972043884502bdfc43a81b7f351df59a5f2af0231529fcdb49490bbf25d7"
"catalogDigest": "sha256:7fc97d6c05657eeeee604a302a22e0afe77dc2d0ffea89442de193e570d9b8bf"
}
2 changes: 1 addition & 1 deletion packages/local-runtime/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcontext/local-runtime",
"version": "0.4.1",
"version": "0.4.2",
"private": true,
"type": "module",
"exports": {
Expand Down
2 changes: 1 addition & 1 deletion packages/surfaces/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@archcontext/surfaces",
"version": "0.4.1",
"version": "0.4.2",
"private": true,
"type": "module",
"bin": {
Expand Down