archctx 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "archcontext.practice-catalog-manifest/v1",
3
3
  "catalogVersion": "2026.06.0",
4
- "productVersion": "0.4.1",
4
+ "productVersion": "0.4.3",
5
5
  "generatedAt": "1970-01-01T00:00:00.000Z",
6
6
  "entries": [
7
7
  {
@@ -389,5 +389,5 @@
389
389
  "structurizr.dsl",
390
390
  "twelve-factor"
391
391
  ],
392
- "catalogDigest": "sha256:4d9f972043884502bdfc43a81b7f351df59a5f2af0231529fcdb49490bbf25d7"
392
+ "catalogDigest": "sha256:902f7d7738d4b4d34861260a09a9a0e005004152c48228c91f6861043f2ba74f"
393
393
  }
package/bin/archctx.mjs CHANGED
@@ -919,7 +919,7 @@ function sortedUniqueIssues(label, values) {
919
919
  const expected = [...new Set(values)].sort();
920
920
  return expected.length === values.length && expected.every((value, index) => value === values[index]) ? [] : [`${label} must be sorted and unique`];
921
921
  }
922
- var PROJECTION_REQUEST_SCHEMA_VERSION = "archcontext.projection-request/v1", PROJECTION_RESULT_SCHEMA_VERSION = "archcontext.projection-result/v1", ARCHITECTURE_REFRESH_SIGNAL_SCHEMA_VERSION = "archcontext.architecture-refresh-signal/v1", ARCHCTX_CAPABILITIES_SCHEMA_VERSION = "archcontext.capabilities/v1", ARCHITECTURE_DOCS_RENDERER_VERSION = "archcontext.docs-renderer/v2", AGENT_CONTEXT_RENDERER_VERSION = "archcontext.agent-context-renderer/v1", PROJECTION_MODES, PROJECTION_TARGETS, ARCHITECTURE_MAJOR_CHANGE_REASON_CODES, ARCHCTX_FEATURES;
922
+ var PROJECTION_REQUEST_SCHEMA_VERSION = "archcontext.projection-request/v1", PROJECTION_RESULT_SCHEMA_VERSION = "archcontext.projection-result/v1", ARCHITECTURE_REFRESH_SIGNAL_SCHEMA_VERSION = "archcontext.architecture-refresh-signal/v1", ARCHCTX_CAPABILITIES_SCHEMA_VERSION = "archcontext.capabilities/v1", ARCHITECTURE_DOCS_RENDERER_VERSION = "archcontext.docs-renderer/v3", AGENT_CONTEXT_RENDERER_VERSION = "archcontext.agent-context-renderer/v1", PROJECTION_MODES, PROJECTION_TARGETS, ARCHITECTURE_MAJOR_CHANGE_REASON_CODES, ARCHCTX_FEATURES;
923
923
  var init_projection = __esm(() => {
924
924
  init_schema();
925
925
  PROJECTION_MODES = ["check", "plan", "apply", "adopt"];
@@ -1000,7 +1000,7 @@ function productVersionManifest() {
1000
1000
  }
1001
1001
  };
1002
1002
  }
1003
- var ARCHCONTEXT_PRODUCT_NAME = "archctx", ARCHCONTEXT_PRODUCT_VERSION = "0.4.1", ARCHCONTEXT_PACKAGE_MANAGER = "bun@1.3.10", ARCHCONTEXT_NODE_RANGE = ">=24 <26", LOCAL_RUNTIME_RPC_SCHEMA_VERSION = "archcontext.runtime-rpc/v1", ARCHCONTEXT_SCHEMA_SET_VERSION = "2026-07-11.explorer-view-v2";
1003
+ var ARCHCONTEXT_PRODUCT_NAME = "archctx", ARCHCONTEXT_PRODUCT_VERSION = "0.4.3", ARCHCONTEXT_PACKAGE_MANAGER = "bun@1.3.10", ARCHCONTEXT_NODE_RANGE = ">=24 <26", LOCAL_RUNTIME_RPC_SCHEMA_VERSION = "archcontext.runtime-rpc/v1", ARCHCONTEXT_SCHEMA_SET_VERSION = "2026-07-11.explorer-view-v2";
1004
1004
 
1005
1005
  // packages/contracts/src/validator.ts
1006
1006
  function validateJsonSchema(schema, value) {
@@ -5613,6 +5613,8 @@ var DEFAULT_IGNORES = new Set([
5613
5613
  "_ops",
5614
5614
  "_ref",
5615
5615
  ".archcontext/.local",
5616
+ ".claude/.session-id",
5617
+ ".claude/.trace.jsonl",
5616
5618
  ".DS_Store"
5617
5619
  ]);
5618
5620
  function repositoryFingerprint(root) {
@@ -5759,6 +5761,8 @@ var DEFAULT_IGNORES2 = new Set([
5759
5761
  "_ops",
5760
5762
  "_ref",
5761
5763
  ".archcontext/.local",
5764
+ ".claude/.session-id",
5765
+ ".claude/.trace.jsonl",
5762
5766
  ".DS_Store"
5763
5767
  ]);
5764
5768
  function repositoryFingerprint2(root) {
@@ -8038,11 +8042,6 @@ function renderArchitectureDocumentationProjection(input) {
8038
8042
  resulting: semanticState,
8039
8043
  acceptedChange: input.refreshContext?.acceptedChange
8040
8044
  });
8041
- const entitySourceDigest = digestJson({
8042
- sourceDigest: input.sourceDigest,
8043
- sourceScaleSignals: [...scaleSignalsByNodeId.values()].sort((left, right) => left.nodeId.localeCompare(right.nodeId)),
8044
- semanticProofs: [...semanticCompilationsByNodeId.values()].map((compilation) => ({ capabilityId: compilation.capabilityId, proofDigest: compilation.proofDigest })).sort((left, right) => left.capabilityId.localeCompare(right.capabilityId))
8045
- });
8046
8045
  const targetDrafts = architectureDocumentationTargetDrafts(model, layout2);
8047
8046
  const declaresSourceByNodeId = new Map(model.nodes.map((node) => [node.id, (nativeNodeSource(node)?.include ?? []).length > 0]));
8048
8047
  const changeSinceStampByNodeId = new Map(input.sourceChangesSinceStamp.map((entry) => [entry.nodeId, entry]));
@@ -8050,9 +8049,19 @@ function renderArchitectureDocumentationProjection(input) {
8050
8049
  const rendered = targetDrafts.map((draft) => {
8051
8050
  const existing = existingByPath.get(draft.path);
8052
8051
  const nodeId = draft.type === "entity-summary" ? draft.scope.id : undefined;
8052
+ let targetSourceDigest = input.sourceDigest;
8053
8053
  let targetVerifiedAgainst;
8054
8054
  if (nodeId !== undefined) {
8055
- const decision = stickyVerifiedAgainst(existing, draft.targetId, entitySourceDigest, {
8055
+ targetSourceDigest = digestJson(renderTargetGeneratedBody(draft, model, {
8056
+ generatedAt,
8057
+ verifiedAgainst: CANONICAL_STICKY_STAMP,
8058
+ scaleSignalsByNodeId,
8059
+ semanticCompilationsByNodeId,
8060
+ decisions: input.decisions ?? [],
8061
+ timeline: input.timeline ?? [],
8062
+ layout: layout2
8063
+ }));
8064
+ const decision = stickyVerifiedAgainst(existing, draft.targetId, targetSourceDigest, {
8056
8065
  nodeDeclaresSource: declaresSourceByNodeId.get(nodeId) === true,
8057
8066
  measurement: changeSinceStampByNodeId.get(nodeId)
8058
8067
  });
@@ -8081,7 +8090,7 @@ function renderArchitectureDocumentationProjection(input) {
8081
8090
  const target = projectionTarget({
8082
8091
  ...draft,
8083
8092
  rendererVersion,
8084
- sourceDigest: draft.type === "entity-summary" ? entitySourceDigest : input.sourceDigest,
8093
+ sourceDigest: targetSourceDigest,
8085
8094
  outputDigest: generatedBodyDigest,
8086
8095
  ...targetVerifiedAgainst ? { verifiedAgainst: targetVerifiedAgainst } : {}
8087
8096
  });
@@ -9221,14 +9230,19 @@ function parseMarkerVerifiedAgainst(value) {
9221
9230
  return;
9222
9231
  }
9223
9232
  }
9224
- function stickyVerifiedAgainst(existing, targetId, entitySourceDigest, node) {
9233
+ var CANONICAL_STICKY_STAMP = {
9234
+ branch: "__sticky-canonical__",
9235
+ commit: "0000000",
9236
+ committedAt: "1970-01-01T00:00:00.000Z"
9237
+ };
9238
+ function stickyVerifiedAgainst(existing, targetId, nodeSourceDigest, node) {
9225
9239
  if (!existing)
9226
9240
  return { kind: "restamp" };
9227
9241
  const region = findGeneratedRegion(existing, targetId);
9228
9242
  if (!region)
9229
9243
  return { kind: "restamp" };
9230
9244
  const metadata = parseGeneratedRegionMetadata(region.startMarker);
9231
- if (metadata.sourceDigest !== entitySourceDigest)
9245
+ if (metadata.sourceDigest !== nodeSourceDigest)
9232
9246
  return { kind: "restamp" };
9233
9247
  const stamp = parseMarkerVerifiedAgainst(metadata.verifiedAgainst);
9234
9248
  if (!stamp)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archctx",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "Local architecture context CLI for agentic coding workflows.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  "additionalProperties": false,
32
32
  "required": ["architectureDocs", "agentContext"],
33
33
  "properties": {
34
- "architectureDocs": { "const": "archcontext.docs-renderer/v2" },
34
+ "architectureDocs": { "const": "archcontext.docs-renderer/v3" },
35
35
  "agentContext": { "const": "archcontext.agent-context-renderer/v1" }
36
36
  }
37
37
  },
@@ -42,7 +42,7 @@
42
42
  "codeGraphDigest": { "$ref": "#/$defs/digest" },
43
43
  "indexedWorktreeDigest": { "$ref": "#/$defs/nullableDigest" },
44
44
  "projectionInputDigest": { "$ref": "#/$defs/digest" },
45
- "rendererVersion": { "const": "archcontext.docs-renderer/v2" },
45
+ "rendererVersion": { "const": "archcontext.docs-renderer/v3" },
46
46
  "layoutVersion": { "const": "archcontext.docs-layout/v1" },
47
47
  "generatedFrom": {
48
48
  "type": "object",