tersign 0.4.2 → 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.
package/README.md CHANGED
@@ -159,6 +159,29 @@ Full URLs, readable without auth. If you are an agent, start here.
159
159
 
160
160
  ---
161
161
 
162
+ ## Contributing — read this before opening a pull request
163
+
164
+ **`tersignhq/tersign-js` is a publish snapshot, not the development repository.** Each release
165
+ overwrites `src/`, `test/` and the packaged manifests wholesale from an upstream working tree, so
166
+ a pull request opened here cannot be merged in any durable way — the next release would silently
167
+ erase it. That is a property of the pipeline, not a judgement on the change.
168
+
169
+ Contributions are wanted; the mechanics just have to route around that:
170
+
171
+ - **Bugs, questions, spec disagreements** — open an issue here. Issues are read, and they are the
172
+ right surface for anything that does not need to touch this tree.
173
+ - **Code changes** — open the issue first with the diff or a description. The change is applied
174
+ upstream **preserving your authorship**, released, and the issue closed with a link to the
175
+ version that carries your work. Credit follows commit authorship, not a merge badge.
176
+ - **Conformance disagreements** — the two-sided vector suite at
177
+ [tersignhq/evidence-record-conformance](https://github.com/tersignhq/evidence-record-conformance)
178
+ takes pull requests normally, and is the better venue for "this criterion is wrong" or "here is
179
+ the case it misses." External vectors have been merged there.
180
+
181
+ If a maintainer ever asks you to reopen work elsewhere because of this, that is why.
182
+
183
+ ---
184
+
162
185
  <p align="center">
163
186
  <img src="https://raw.githubusercontent.com/tersignhq/.github/main/assets/seal.svg" alt="Tersign seal" width="72">
164
187
  </p>
@@ -29,7 +29,7 @@ export function toInternetCourtSubmission(env) {
29
29
  : ''),
30
30
  envelope: env,
31
31
  howToVerify: `GET ${env.verifyUrl} (no account) recomputes the hash-chain link and returns chainOk; ` +
32
- `or recompute locally: linkDigest = keccak256(canonical({artifactDigest, prevDigest, seq})) ` +
32
+ `or recompute locally: linkDigest = keccak256(artifactDigestBytes || prevDigestBytes || uint64be(seq)) ` +
33
33
  `and recover the counter-signature to ${env.chain.ledgerSigner}.`,
34
34
  });
35
35
  if (out.length > VENUE_SUBMISSION_MAX_CHARS) {
@@ -22,7 +22,8 @@ export interface EvidenceEnvelopeV1 {
22
22
  };
23
23
  chain: {
24
24
  prevDigest: `0x${string}` | null;
25
- /** digestOf({artifactDigest, prevDigest, seq}) — what the ledger counter-signs */
25
+ /** keccak256(artifactDigest prevDigest ‖ uint64be(seq))byte concat, NOT canonical-JSON
26
+ * (fixed 2026-08-27: the old comment described a different, wrong recipe) — what the ledger counter-signs */
26
27
  linkDigest: `0x${string}`;
27
28
  countersignature: `0x${string}`;
28
29
  ledgerSigner: `0x${string}`;
@@ -8,6 +8,6 @@ export declare function envDeps(env?: Record<string, string | undefined>): McpDe
8
8
  * every client; mcp.test.ts pins it against package.json so a release bump can't drift it. */
9
9
  export declare const MCP_SERVER_IDENTITY: {
10
10
  readonly name: "tersign";
11
- readonly version: "0.4.2";
11
+ readonly version: "0.4.3";
12
12
  };
13
13
  export declare function buildServer(deps: McpDeps): McpServer;
@@ -45,7 +45,7 @@ function json(value) {
45
45
  }
46
46
  /** MUST match package.json name/version — the MCP handshake self-reports this identity to
47
47
  * every client; mcp.test.ts pins it against package.json so a release bump can't drift it. */
48
- export const MCP_SERVER_IDENTITY = { name: 'tersign', version: '0.4.2' };
48
+ export const MCP_SERVER_IDENTITY = { name: 'tersign', version: '0.4.3' };
49
49
  export function buildServer(deps) {
50
50
  const server = new McpServer(MCP_SERVER_IDENTITY);
51
51
  server.registerTool('issue_receipt', {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tersign",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Tersign \u2014 the evidence layer for the agent economy. Counter-signed receipts, agent action records, idempotency enforcement, refunds, disputes, and jury-ready evidence envelopes for x402/agent-commerce sellers.",
5
5
  "license": "MIT",
6
6
  "type": "module",