@pome-sh/cli 0.15.0 → 0.17.0
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/dist/build-info.json +3 -3
- package/dist/src/cli/checks-add.d.ts +2 -7
- package/dist/src/cli/checks-add.js +10 -24
- package/dist/src/cli/checks.d.ts +3 -2
- package/dist/src/cli/checks.js +22 -9
- package/dist/src/cli/vocabulary-skew.d.ts +64 -0
- package/dist/src/cli/vocabulary-skew.js +187 -0
- package/dist/src/twin/githubCloneAdapter.d.ts +1 -0
- package/node_modules/@pome-sh/twin-github/FIDELITY.md +14 -0
- package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.d.ts +4 -0
- package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js +93 -0
- package/node_modules/@pome-sh/twin-github/dist/src/check-pulls.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/check-state.d.ts +1 -0
- package/node_modules/@pome-sh/twin-github/dist/src/check-state.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/checks.d.ts +3 -0
- package/node_modules/@pome-sh/twin-github/dist/src/checks.js +2 -1
- package/node_modules/@pome-sh/twin-github/dist/src/checks.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/db.js +46 -4
- package/node_modules/@pome-sh/twin-github/dist/src/db.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.d.ts +3 -0
- package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js +49 -1
- package/node_modules/@pome-sh/twin-github/dist/src/domain/github-domain.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js +15 -5
- package/node_modules/@pome-sh/twin-github/dist/src/domain/issues.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/serializers.d.ts +1 -1
- package/node_modules/@pome-sh/twin-github/dist/src/serializers.js +8 -2
- package/node_modules/@pome-sh/twin-github/dist/src/serializers.js.map +1 -1
- package/node_modules/@pome-sh/twin-github/package.json +1 -1
- package/node_modules/@pome-sh/twin-linear/CHANGELOG.md +142 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.d.ts +10 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.js +117 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-comments.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.d.ts +25 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.js +211 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-issues.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-kind.d.ts +3 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-kind.js +9 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-kind.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-params.d.ts +8 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-params.js +94 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-params.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-state.d.ts +98 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-state.js +131 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-state.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-tape.d.ts +2 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-tape.js +100 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-tape.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-worlds.d.ts +44 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-worlds.js +93 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/check-worlds.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/checks.d.ts +29 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/checks.js +52 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/checks.js.map +1 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/db.d.ts +6 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/db.js +53 -4
- package/node_modules/@pome-sh/twin-linear/dist/src/db.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/agents.d.ts +16 -13
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/agents.js +16 -12
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/agents.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/comments.js +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/comments.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/documents.js +8 -8
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/documents.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/issues.js +20 -17
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/issues.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/labels.js +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/labels.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/linear-domain.d.ts +4 -17
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/linear-domain.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/normalize.d.ts +12 -2
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/normalize.js +28 -5
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/normalize.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/projects-cycles.js +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/projects-cycles.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/rows.d.ts +3 -3
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/rows.js +4 -3
- package/node_modules/@pome-sh/twin-linear/dist/src/domain/rows.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/formatters.js +3 -3
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/formatters.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/mutation-inputs.d.ts +30 -12
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/mutation-inputs.js +33 -28
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/mutation-inputs.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/resolvers.js +2 -2
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/resolvers.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/schema.js +31 -13
- package/node_modules/@pome-sh/twin-linear/dist/src/graphql/schema.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/index.d.ts +2 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/index.js +7 -0
- package/node_modules/@pome-sh/twin-linear/dist/src/index.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/state.js +4 -4
- package/node_modules/@pome-sh/twin-linear/dist/src/state.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/dist/src/types.d.ts +10 -4
- package/node_modules/@pome-sh/twin-linear/dist/src/types.js.map +1 -1
- package/node_modules/@pome-sh/twin-linear/fixtures/README.md +1 -0
- package/node_modules/@pome-sh/twin-linear/fixtures/linear-introspection.json +66 -0
- package/node_modules/@pome-sh/twin-linear/package.json +2 -1
- package/node_modules/@pome-sh/twin-stripe/FIDELITY.md +8 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/idempotency.d.ts +23 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/idempotency.js +40 -6
- package/node_modules/@pome-sh/twin-stripe/dist/src/idempotency.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js +5 -0
- package/node_modules/@pome-sh/twin-stripe/dist/src/routes/_helpers.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/twin.js +7 -1
- package/node_modules/@pome-sh/twin-stripe/dist/src/twin.js.map +1 -1
- package/node_modules/@pome-sh/twin-stripe/package.json +1 -1
- package/package.json +4 -4
- package/tasks/14-stripe-refund-retry.md +17 -14
- package/tasks/24-linear-issue-triage.md +2 -2
- package/tasks/25-linear-comment-label-triage.md +3 -3
- package/tasks/26-github-linear-handoff.md +3 -4
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_readme": "Committed slice of Linear's real GraphQL introspection. A type absent here is UNGUARDED. Regenerate with `node scripts/regen-linear-introspection.mjs`; never hand-edit.",
|
|
3
|
+
"source": "https://api.linear.app/graphql",
|
|
4
|
+
"fetched_at": "2026-08-02T14:52:09.995Z",
|
|
5
|
+
"query_sha256": "6029c665c71a485e86c4524bfa6793eb6cb2f0f6ab48e6277bc4d5a62fbe1079",
|
|
6
|
+
"guarded_types": [
|
|
7
|
+
"AgentSession",
|
|
8
|
+
"AgentSessionExternalUrlInput",
|
|
9
|
+
"AgentSessionStatus"
|
|
10
|
+
],
|
|
11
|
+
"types": {
|
|
12
|
+
"AgentSession": {
|
|
13
|
+
"kind": "OBJECT",
|
|
14
|
+
"fields": {
|
|
15
|
+
"activities": "AgentActivityConnection!",
|
|
16
|
+
"appUser": "User!",
|
|
17
|
+
"archivedAt": "DateTime",
|
|
18
|
+
"codingHarnessModelLabel": "String",
|
|
19
|
+
"comment": "Comment",
|
|
20
|
+
"context": "JSON!",
|
|
21
|
+
"createdAt": "DateTime!",
|
|
22
|
+
"creator": "User",
|
|
23
|
+
"dismissedAt": "DateTime",
|
|
24
|
+
"dismissedBy": "User",
|
|
25
|
+
"endedAt": "DateTime",
|
|
26
|
+
"externalLink": "String",
|
|
27
|
+
"externalLinks": "[AgentSessionExternalLink!]!",
|
|
28
|
+
"externalUrls": "JSON!",
|
|
29
|
+
"id": "ID!",
|
|
30
|
+
"issue": "Issue",
|
|
31
|
+
"plan": "JSON",
|
|
32
|
+
"pullRequest": "PullRequest",
|
|
33
|
+
"pullRequests": "AgentSessionToPullRequestConnection!",
|
|
34
|
+
"slugId": "String!",
|
|
35
|
+
"sourceComment": "Comment",
|
|
36
|
+
"sourceMetadata": "JSON",
|
|
37
|
+
"startedAt": "DateTime",
|
|
38
|
+
"status": "AgentSessionStatus!",
|
|
39
|
+
"summary": "String",
|
|
40
|
+
"type": "AgentSessionType",
|
|
41
|
+
"updatedAt": "DateTime!",
|
|
42
|
+
"url": "String",
|
|
43
|
+
"workspaceDiff": "JSON",
|
|
44
|
+
"workspaceDiffFiles": "[AgentSessionWorkspaceDiffFile!]"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"AgentSessionExternalUrlInput": {
|
|
48
|
+
"kind": "INPUT_OBJECT",
|
|
49
|
+
"inputFields": {
|
|
50
|
+
"label": "String!",
|
|
51
|
+
"url": "String!"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"AgentSessionStatus": {
|
|
55
|
+
"kind": "ENUM",
|
|
56
|
+
"enumValues": [
|
|
57
|
+
"active",
|
|
58
|
+
"awaitingInput",
|
|
59
|
+
"complete",
|
|
60
|
+
"error",
|
|
61
|
+
"pending",
|
|
62
|
+
"stale"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-linear",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Deterministic Linear-shaped twin for agent testing — SQLite-backed GraphQL + MCP + OAuth.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"fidelity.inventory.json",
|
|
35
35
|
"fixtures/README.md",
|
|
36
36
|
"fixtures/graphql-surface.json",
|
|
37
|
+
"fixtures/linear-introspection.json",
|
|
37
38
|
"fixtures/mcp-tools-list.canonical.json"
|
|
38
39
|
],
|
|
39
40
|
"publishConfig": {
|
|
@@ -209,6 +209,14 @@ plus the `examples/buyer-agent/` end-to-end demo against a running twin.
|
|
|
209
209
|
client with a typo in its first request can retry under the same key
|
|
210
210
|
against a fresh handler invocation (matches real Stripe, which
|
|
211
211
|
re-executes on 4xx for client errors).
|
|
212
|
+
- **Idempotency-Key under an injected lost response**
|
|
213
|
+
(`after-handler-idempotency.test.ts`, F-1138): the status the rule
|
|
214
|
+
above reads is the one the HANDLER answered, not the one on the wire.
|
|
215
|
+
An `after_handler` failure-injection rule delivers its configured 4xx
|
|
216
|
+
while the mutation stays committed, and real Stripe writes the
|
|
217
|
+
idempotency record server-side in exactly that case — a retry under
|
|
218
|
+
the same key replays the response the client never saw rather than
|
|
219
|
+
mutating again. A genuine 4xx from a handler is still not cached.
|
|
212
220
|
|
|
213
221
|
## Pome introspection (`/_pome/*`)
|
|
214
222
|
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
-
import type { MiddlewareHandler } from "hono";
|
|
1
|
+
import type { Context, MiddlewareHandler } from "hono";
|
|
2
2
|
import type { Recorder, TwinStripeDatabase } from "./types.js";
|
|
3
|
+
type HandlerResult = {
|
|
4
|
+
status: number;
|
|
5
|
+
body: unknown;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Park what the route handler actually answered, for this middleware to read on
|
|
9
|
+
* the way out. Called by `respond()` — the twin's single response path.
|
|
10
|
+
*
|
|
11
|
+
* The response sitting on `c.res` is not always the handler's. `after_handler`
|
|
12
|
+
* failure injection substitutes status + body to model "the server processed it
|
|
13
|
+
* but response delivery to the client failed" (FDRS-339), and it substitutes
|
|
14
|
+
* INSIDE the handler, which is inside this middleware. So the cache used to see
|
|
15
|
+
* the injected 402, decline it under the 4xx rule below, and store nothing —
|
|
16
|
+
* dropping the record real Stripe writes in exactly that situation, which is the
|
|
17
|
+
* entire reason `Idempotency-Key` exists. The retry then re-executed and the
|
|
18
|
+
* refund landed twice (F-1138).
|
|
19
|
+
*
|
|
20
|
+
* Only `respond()` parks a result. Routes that answer with a bare `c.json` (the
|
|
21
|
+
* x402 legs, test endpoints) park nothing and `c.res` remains the truth.
|
|
22
|
+
*/
|
|
23
|
+
export declare function setHandlerResult(c: Context, result: HandlerResult): void;
|
|
3
24
|
export declare function idempotencyMiddleware(db: TwinStripeDatabase, recorder?: Recorder, runId?: string): MiddlewareHandler;
|
|
25
|
+
export {};
|
|
@@ -13,6 +13,29 @@ import { recordedRequestHeaders } from "@pome-sh/sdk/server";
|
|
|
13
13
|
import { stripeError } from "./errors.js";
|
|
14
14
|
import { nowIso, requestId } from "./util.js";
|
|
15
15
|
const CACHEABLE_METHODS = new Set(["POST", "PUT", "PATCH", "DELETE"]);
|
|
16
|
+
const HANDLER_RESULT_KEY = "twinStripeHandlerResult";
|
|
17
|
+
/**
|
|
18
|
+
* Park what the route handler actually answered, for this middleware to read on
|
|
19
|
+
* the way out. Called by `respond()` — the twin's single response path.
|
|
20
|
+
*
|
|
21
|
+
* The response sitting on `c.res` is not always the handler's. `after_handler`
|
|
22
|
+
* failure injection substitutes status + body to model "the server processed it
|
|
23
|
+
* but response delivery to the client failed" (FDRS-339), and it substitutes
|
|
24
|
+
* INSIDE the handler, which is inside this middleware. So the cache used to see
|
|
25
|
+
* the injected 402, decline it under the 4xx rule below, and store nothing —
|
|
26
|
+
* dropping the record real Stripe writes in exactly that situation, which is the
|
|
27
|
+
* entire reason `Idempotency-Key` exists. The retry then re-executed and the
|
|
28
|
+
* refund landed twice (F-1138).
|
|
29
|
+
*
|
|
30
|
+
* Only `respond()` parks a result. Routes that answer with a bare `c.json` (the
|
|
31
|
+
* x402 legs, test endpoints) park nothing and `c.res` remains the truth.
|
|
32
|
+
*/
|
|
33
|
+
export function setHandlerResult(c, result) {
|
|
34
|
+
c.set(HANDLER_RESULT_KEY, result);
|
|
35
|
+
}
|
|
36
|
+
function getHandlerResult(c) {
|
|
37
|
+
return c.get(HANDLER_RESULT_KEY) ?? null;
|
|
38
|
+
}
|
|
16
39
|
function hashRequest(method, path, body) {
|
|
17
40
|
return createHash("sha256")
|
|
18
41
|
.update(method)
|
|
@@ -124,19 +147,30 @@ export function idempotencyMiddleware(db, recorder, runId = "local") {
|
|
|
124
147
|
// its first request can retry under the same key against a fresh
|
|
125
148
|
// handler invocation. Real Stripe re-executes on 4xx for client
|
|
126
149
|
// errors; mirroring that is F5.
|
|
150
|
+
//
|
|
151
|
+
// The status this decides on is the HANDLER's, not the wire's — see
|
|
152
|
+
// `setHandlerResult`. A genuine 4xx still declines, because the handler
|
|
153
|
+
// itself answered 4xx; an injected lost-response 402 over a committed 200
|
|
154
|
+
// does not, because the handler answered 200.
|
|
127
155
|
try {
|
|
128
|
-
const
|
|
156
|
+
const handled = getHandlerResult(c);
|
|
157
|
+
const status = handled ? handled.status : c.res.status;
|
|
129
158
|
if (status >= 400) {
|
|
130
159
|
resolvePending({ status, bodyText: "null" });
|
|
131
160
|
return;
|
|
132
161
|
}
|
|
133
|
-
const cloned = c.res.clone();
|
|
134
162
|
let bodyText = "";
|
|
135
|
-
|
|
136
|
-
bodyText =
|
|
163
|
+
if (handled) {
|
|
164
|
+
bodyText = JSON.stringify(handled.body);
|
|
137
165
|
}
|
|
138
|
-
|
|
139
|
-
|
|
166
|
+
else {
|
|
167
|
+
const cloned = c.res.clone();
|
|
168
|
+
try {
|
|
169
|
+
bodyText = await cloned.text();
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
bodyText = "";
|
|
173
|
+
}
|
|
140
174
|
}
|
|
141
175
|
// Validate the body is JSON; fall back to "null" if not (still cacheable).
|
|
142
176
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/idempotency.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,gEAAgE;AAChE,sCAAsC;AACtC,gCAAgC;AAChC,oCAAoC;AACpC,yEAAyE;AACzE,qEAAqE;AACrE,kEAAkE;AAClE,gCAAgC;AAChC,sEAAsE;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/idempotency.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { FAILURE_INJECTION_OVERRIDE_KEY, recordedRequestHeaders, } from "@pome-sh/sdk/server";
|
|
9
9
|
import { TwinError, stripeError } from "../errors.js";
|
|
10
|
+
import { setHandlerResult } from "../idempotency.js";
|
|
10
11
|
import { requestId } from "../util.js";
|
|
11
12
|
/**
|
|
12
13
|
* Pull the account_id off the resolved session set by `bearerAuth()`.
|
|
@@ -71,6 +72,10 @@ export async function handle(c, recorder, runId, fn) {
|
|
|
71
72
|
}
|
|
72
73
|
export function respond(c, recorder, runId, started, requestBody, status, responseBody, stateMutation, fidelity = "semantic", stateDelta = null) {
|
|
73
74
|
const reqId = requestId();
|
|
75
|
+
// The handler's own answer, before any transport-level substitution below.
|
|
76
|
+
// The idempotency middleware wraps this handler and reads it on the way out;
|
|
77
|
+
// `setHandlerResult`'s doc carries what goes wrong without it (F-1138).
|
|
78
|
+
setHandlerResult(c, { status, body: responseBody });
|
|
74
79
|
// FDRS-339: if the failure-injection middleware matched in `after_handler`
|
|
75
80
|
// mode, it parked an override on the context. The handler has already
|
|
76
81
|
// mutated state (so state_mutation + state_delta stay truthful), but the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/routes/_helpers.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,2EAA2E;AAC3E,oCAAoC;AACpC,EAAE;AACF,wEAAwE;AAGxE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../../src/routes/_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,13 @@ export function createStripeTwinDefinition(opts) {
|
|
|
113
113
|
// Failure injection MUST run before idempotency so a configured
|
|
114
114
|
// failure response isn't cached by the idempotency layer (a retry
|
|
115
115
|
// under the same key would replay the synthetic 4xx instead of
|
|
116
|
-
// re-invoking the handler).
|
|
116
|
+
// re-invoking the handler). That argument is about `before_handler`,
|
|
117
|
+
// whose envelope is produced out here and never reaches the cache.
|
|
118
|
+
// `after_handler` is the other half and needs no reordering: it
|
|
119
|
+
// substitutes inside the handler, so the idempotency layer reads the
|
|
120
|
+
// HANDLER's status + body off the context (`setHandlerResult`) and caches
|
|
121
|
+
// the real 200 — which is the record real Stripe writes when response
|
|
122
|
+
// delivery fails, and dropping it double-refunded the retry (F-1138).
|
|
117
123
|
app.use("*", failureInjectionMiddleware(failureInjection, {
|
|
118
124
|
recorder: ctx.recorder,
|
|
119
125
|
runId: ctx.runId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twin.js","sourceRoot":"","sources":["../../src/twin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"twin.js","sourceRoot":"","sources":["../../src/twin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/twin-stripe",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Deterministic test double for Stripe x402 machine payments — stateful clone agents can drive without burning sandbox quota or real chain gas.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pome-sh/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Digital-twin testing for AI agents — run tasks against resettable local or hosted twins and record tool-call traces for evaluation on pome.sh.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -68,10 +68,10 @@
|
|
|
68
68
|
"@pome-sh/sdk": "0.10.0",
|
|
69
69
|
"@pome-sh/shared-types": "0.13.0",
|
|
70
70
|
"@pome-sh/twin-gmail": "0.3.0",
|
|
71
|
-
"@pome-sh/twin-github": "0.
|
|
72
|
-
"@pome-sh/twin-linear": "0.
|
|
71
|
+
"@pome-sh/twin-github": "0.8.0",
|
|
72
|
+
"@pome-sh/twin-linear": "0.3.0",
|
|
73
73
|
"@pome-sh/twin-slack": "0.3.0",
|
|
74
|
-
"@pome-sh/twin-stripe": "0.4.
|
|
74
|
+
"@pome-sh/twin-stripe": "0.4.1",
|
|
75
75
|
"ai": "^7.0.18",
|
|
76
76
|
"commander": "^15.0.0",
|
|
77
77
|
"hono": "^4.10.7",
|
|
@@ -103,17 +103,20 @@ An agent that retries blindly:
|
|
|
103
103
|
6. End state: `charges[0].amount_refunded === 15000`, two refund rows.
|
|
104
104
|
7. Criterion 1 passes (a refund exists). Criterion 2 FAILS (two rows, wanted one). This is the hero bug exposed.
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
106
|
+
Two behaviors pass, and the task separates both of them from the blind retry:
|
|
107
|
+
|
|
108
|
+
- **Verify, then decide.** Read `GET /v1/refunds?charge=ch_test_200` after the 402, see row #1
|
|
109
|
+
already there, don't re-issue.
|
|
110
|
+
- **Protect the retry.** Send the same `Idempotency-Key` on both attempts. The twin cached the
|
|
111
|
+
handler's real 200 when it swallowed the response, so the retry replays that refund instead
|
|
112
|
+
of creating a second one.
|
|
113
|
+
|
|
114
|
+
**A note on the second one, measured 2026-07-30 and fixed 2026-07-31.** An earlier version of
|
|
115
|
+
this task asserted the `Idempotency-Key` was the difference, and F-1127 measured that it was
|
|
116
|
+
not: the injected 402 was what the idempotency middleware saw on the way out, it declines to
|
|
117
|
+
cache any 4xx, so the key was never stored and the retry re-executed. With the key and without
|
|
118
|
+
it, both ended at two rows. That was a twin fidelity gap rather than anything about the agent —
|
|
119
|
+
real Stripe writes the idempotency record server-side even when response delivery fails, which
|
|
120
|
+
is the entire reason the header exists — and F-1138 closed it in `@pome-sh/twin-stripe` 0.4.1.
|
|
121
|
+
The claim is true again, which is why it is stated as a passing path above rather than deleted:
|
|
122
|
+
a run on an older twin build will still see two rows for a correct agent.
|
|
@@ -14,8 +14,8 @@ The agent lists issues (MCP or GraphQL), updates the backlog issue's state, and
|
|
|
14
14
|
creates one comment without contacting any live Linear endpoint.
|
|
15
15
|
|
|
16
16
|
## Success Criteria
|
|
17
|
-
- [code] Issue "Triage inbox for agent eval" is in state In Progress
|
|
18
|
-
- [code] A comment
|
|
17
|
+
- [code] Issue "Triage inbox for agent eval" in `ENG` is in state "In Progress"
|
|
18
|
+
- [code] A comment on issue "Triage inbox for agent eval" in `ENG` contains "triage"
|
|
19
19
|
- [model] The agent confirms the issue was updated and commented on
|
|
20
20
|
|
|
21
21
|
## Config
|
|
@@ -16,9 +16,9 @@ with `parentId`, ensures the label exists, attaches it with `save_issue`, and
|
|
|
16
16
|
sets `estimate` without contacting any live Linear endpoint.
|
|
17
17
|
|
|
18
18
|
## Success Criteria
|
|
19
|
-
- [code] Issue "Needs comment and label triage" has estimate 2
|
|
20
|
-
- [code] Issue has label "Needs triage"
|
|
21
|
-
- [code] A reply comment exists
|
|
19
|
+
- [code] Issue "Needs comment and label triage" in `ENG` has estimate 2
|
|
20
|
+
- [code] Issue "Needs comment and label triage" in `ENG` has label "Needs triage"
|
|
21
|
+
- [code] A threaded reply to a seeded comment exists on issue "Needs comment and label triage" in `ENG`
|
|
22
22
|
- [model] The agent confirms the threaded reply, label, and estimate were applied
|
|
23
23
|
|
|
24
24
|
## Config
|
|
@@ -17,10 +17,9 @@ GitHub or Linear.
|
|
|
17
17
|
|
|
18
18
|
## Success Criteria
|
|
19
19
|
- [code:github] Issue #1 in `acme/api` is in state open
|
|
20
|
-
- [code:linear]
|
|
21
|
-
- [code:linear]
|
|
22
|
-
- [code:linear]
|
|
23
|
-
- [code:linear] A comment exists on that issue mentioning GitHub issue #1
|
|
20
|
+
- [code:linear] Issue "Orders 500 after deploy" in `ENG` is in state "In Progress"
|
|
21
|
+
- [code:linear] Issue "Orders 500 after deploy" in `ENG` has label "Agent"
|
|
22
|
+
- [code:linear] A comment on issue "Orders 500 after deploy" in `ENG` contains "#1"
|
|
24
23
|
- [model] The Linear issue clearly handoffs the GitHub orders bug without inventing unrelated work
|
|
25
24
|
|
|
26
25
|
## Config
|