updating purpose-classifier data:
This commit is contained in:
+200
-200
@@ -1,200 +1,200 @@
|
||||
{"prompt": "our on-call runbook for the settlement job is four years stale. rewrite it against how the job actually behaves today — retry semantics, the manual replay command, who to page", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a partner integration is coming that needs us to expose per-line-item tax breakdown, which we don't currently persist — we compute it at invoice time and throw it away. before we start storing it i want to think through retention, whether we backfill, and what it means for the invoice PDFs that were already generated with the old rounding", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "our device provisioning flow is undocumented and also slightly wrong — the cert rotation step happens after first telemetry, which nobody intended. i need the sequence written up for the field team, and the ordering bug sorted out in the firmware handshake", "purpose": "writing", "secondary": "debugging", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "a contractor delivered the disputes module last month and it works, but i haven't read a line of it and we're about to depend on it heavily. go through `services/disputes/` and tell me what you'd flag: correctness, error handling, anything that will hurt at volume, and anything that reads like it was written against an older version of our gateway SDK", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
|
||||
{"prompt": "we're about to move order history off postgres onto a partitioned setup and i genuinely don't know the sequencing. constraints: no downtime, 400M rows, reporting queries hit the same tables, and the mobile team ships a release every tuesday so any API change has to be additive for at least two months. want a migration strategy with rollback points before anyone writes code", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "three helpers in utils/money.ts do rounding: `roundMoney`, `toCents`, `safeRound`. two of them disagree on negatives. collapse them into one and update the ~60 call sites", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "webhook delivery worker needs exponential backoff with jitter, capped at 6 hours, max 12 attempts, then dead-letter", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "payout table needs zebra striping", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "drop the currency symbol from the cart subtotal, product asked", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "src/pipeline/transform_orders.py is 1100 lines and every dbt model imports from it. i want it broken into something sane — but first tell me how you'd carve it up and in what order, then do the first slice", "purpose": "planning", "secondary": "refactor", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "same three lines of duplicated setup at the top of every one of these tests. worth extracting a fixture?\n\ndef test_charge_declined(db, monkeypatch):\n gw = FakeGateway()\n monkeypatch.setattr(charges, \"gateway\", gw)\n order = make_order(db, total=Decimal(\"25.00\"), currency=\"usd\")\n gw.next_response = DECLINE\n with pytest.raises(ChargeDeclined):\n charges.capture(order)\n\ndef test_charge_partial(db, monkeypatch):\n gw = FakeGateway()\n monkeypatch.setattr(charges, \"gateway\", gw)\n order = make_order(db, total=Decimal(\"25.00\"), currency=\"usd\")\n gw.next_response = PARTIAL\n result = charges.capture(order)\n assert result.captured == Decimal(\"10.00\")\n\ndef test_charge_retries_on_timeout(db, monkeypatch):\n gw = FakeGateway()\n monkeypatch.setattr(charges, \"gateway\", gw)\n order = make_order(db, total=Decimal(\"25.00\"), currency=\"usd\")\n gw.responses = [TIMEOUT, OK]\n assert charges.capture(order).attempts == 2", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "design ticket from figma handoff — build the empty state for the payouts screen:\n\nPayouts • Empty state\nIllustration: 160x160, centered, 32px above the heading. Use the existing `illustration/wallet` asset.\nHeading: \"No payouts yet\" — text-lg, semibold, foreground.\nBody: \"Payouts appear here once your first order settles. This usually takes 2 business days.\" — text-sm, muted-foreground, max-width 420px, centered.\nPrimary button: \"View settlement schedule\" — secondary variant, opens the schedule sheet.\nSpacing: 96px top padding on desktop, 48px on mobile.\nDark mode: illustration swaps to the `-dark` variant; nothing else changes.\nMotion: fade + 8px rise on mount, 180ms ease-out, respects reduced-motion.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "paste of the dedup helper in the ingestion job. two of these live in the repo (one in `ingest/`, one in `backfill/`) and they've drifted. unify them:\n\ndef dedupe(rows, key=lambda r: r[\"id\"]):\n seen = set()\n out = []\n for r in rows:\n k = key(r)\n if k in seen:\n continue\n seen.add(k)\n out.append(r)\n return out\n\n# backfill/util.py version\ndef dedupe_rows(rows, key_field=\"id\", keep=\"last\"):\n index = {}\n for r in rows:\n k = r.get(key_field)\n if keep == \"last\" or k not in index:\n index[k] = r\n return list(index.values())\n\ncallers: ingest/orders.py:88, ingest/refunds.py:41, backfill/orders.py:210, backfill/merchants.py:77, tools/reconcile.py:19", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "can you look over the new webhook signature verification and also write up how partners should implement it on their end", "purpose": "review", "secondary": "writing", "mixed": true, "difficulty": 0.55, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "o job de conciliação está a demorar 3h e ninguém sabe porquê. antes de mexer, explica-me o que ele faz passo a passo", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "pt"}
|
||||
{"prompt": "invoice numbering has to be gapless per legal entity, and right now it's a `MAX(id)+1` in the app. i need both the approach and the actual implementation — sequence table vs advisory lock vs something else, then build it", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "before we ship split-tender i want a written threat model of the auth-then-void window, and then the guard rails implemented in the charge service", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "settlement docs and the settlement code disagree about when a batch closes. figure out which one is lying, then fix whichever is wrong", "purpose": "review", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "the k6 run against staging ingest, before and after we turned on batching. is this actually better or am i reading noise?\n\n scenarios: (100.00%) 1 scenario, 400 max VUs, 5m30s max duration\n\n checks.........................: 99.81% ✓ 238914 ✗ 452\n data_received..................: 1.4 GB 4.6 MB/s\n http_req_blocked...............: avg=1.21ms min=1µs med=4µs max=1.02s\n http_req_duration..............: avg=411.02ms min=18.11ms med=298ms max=9.81s\n { expected_response:true }...: avg=402.55ms min=18.11ms med=291ms max=9.81s\n http_req_failed................: 0.18% ✓ 452 ✗ 238914\n http_reqs......................: 239366 798.55/s\n iteration_duration.............: avg=1.24s min=201ms med=1.11s max=11.2s\n vus............................: 400 min=40 max=400\n\n ✗ p(95) < 500ms\n ↳ p(95)=1.42s", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "support keeps forwarding this and i want one canonical doc instead of ten slack answers:\n\n> Hi — we're integrating your payouts API and the docs don't say what happens when a payout fails. Do you retry automatically? Is there a webhook? We saw a payout go from `pending` to `failed` and then back to `pending` two hours later which we did not expect. Also: are `failure_code` values stable enough to switch on, or should we treat them as display-only? Our finance team needs to know whether a `failed` payout can still settle later, because we've already reversed the ledger entry on our side by then.\n\nwrite the page that answers all of that", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "two of these do the same job with different names and one of them silently swallows the error. collapse them:\n\n// packages/gateway/src/http.ts\nexport async function postJSON(url: string, body: unknown, timeoutMs = 30_000) {\n const ctrl = new AbortController()\n const t = setTimeout(() => ctrl.abort(), timeoutMs)\n try {\n const res = await fetch(url, { method: 'POST', body: JSON.stringify(body), signal: ctrl.signal })\n if (!res.ok) throw new GatewayError(res.status, await res.text())\n return await res.json()\n } finally {\n clearTimeout(t)\n }\n}\n\n// packages/gateway/src/legacy/request.ts\nexport async function sendJson(url, payload, opts = {}) {\n try {\n const res = await fetch(url, { method: 'POST', body: JSON.stringify(payload) })\n return await res.json()\n } catch (e) {\n return null\n }\n}", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "someone drafted this migration for the split-tender work. would this lock the table in prod?\n\nBEGIN;\n\nALTER TABLE orders ADD COLUMN tender_count smallint NOT NULL DEFAULT 1;\n\nALTER TABLE payments\n ADD COLUMN instrument_kind text NOT NULL DEFAULT 'card',\n ADD CONSTRAINT payments_instrument_kind_chk\n CHECK (instrument_kind IN ('card','gift_card','store_credit'));\n\nCREATE INDEX idx_payments_order_instrument\n ON payments (order_id, instrument_kind);\n\nUPDATE payments SET instrument_kind = 'gift_card'\n WHERE gateway = 'internal_gc';\n\nALTER TABLE payments ALTER COLUMN instrument_kind DROP DEFAULT;\n\nCOMMIT;\n\npayments is 190M rows, postgres 15, no downtime window", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "there's a `docs/adr/` folder with eleven ADRs and four of them describe systems we deleted. clear out the dead ones, and write a new ADR covering the ledger v2 decision we actually made in march but never recorded", "purpose": "writing", "secondary": "refactor", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "firmware devices on the 4.1 build sometimes report telemetry timestamps a year in the future and our ingest happily accepts them, poisoning the warehouse. find out where the clock goes wrong on the device side, and add the ingest-side guard so bad timestamps never land again", "purpose": "debugging", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "merchant dashboard imports the design system in three different ways depending on when the file was written: barrel imports, deep paths, and a couple of copy-pasted components that were never migrated. normalise all of it, delete the copies, same pixels on screen afterwards", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "dedupe the two CSV writers", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "we inherited a rust firmware crate from an acquisition and the interrupt handling in `src/rt/isr.rs` looks unusual to me — there's a static mut ring buffer touched from both the ISR and the main loop with a bare `unsafe` and no critical section. is that actually sound on a single-core cortex-m, or are we one compiler upgrade away from disaster", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "three of us reviewed the ledger PR and disagreed about whether the compensating-entry approach is sound. settle it — read `internal/ledger/` and tell me who's right", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "webhook signing helper is duplicated between the node SDK and the python SDK and they've drifted on how they canonicalise the payload. get them back in sync, then add the note to both SDK readmes so integrators know which versions changed", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "we're a four-person team and every deploy needs someone to babysit the settlement job afterwards. that's not sustainable for the next quarter when we double order volume. what would you sequence — better alerting first, or making the job idempotent so a bad deploy doesn't need a human? give me the reasoning and a rough order of work, not code", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
|
||||
{"prompt": "payout amount doc, for support", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "checkout blows up for about 1 in 40 carts and this is all sentry gives me:\n\nTypeError: Cannot read properties of undefined (reading 'currency')\n at normalizeLineItem (/srv/checkout/dist/cart/normalize.js:88:31)\n at Array.map (<anonymous>)\n at buildOrderDraft (/srv/checkout/dist/cart/draft.js:42:38)\n at async createOrder (/srv/checkout/dist/orders/create.js:117:20)\n at async /srv/checkout/dist/http/routes/orders.js:29:24\n at async Object.handler (/srv/checkout/node_modules/fastify/lib/handleRequest.js:129:9)\n {\n requestId: 'req_9f2b1c',\n cartId: 'cart_01HQ8V',\n lineItems: 4,\n promoApplied: true,\n userAgent: 'Shopify-Mobile/9.4.1 (iOS 18.2)'\n }\n\nit only ever fires when a promo is on the cart, never on a plain cart. no idea what makes those items different", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "why does the ESP32 reboot roughly 40s after it associates to wifi? nothing in my firmware touches the watchdog", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "toolbar icons are 1px off center in dark mode only", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "npm audit tail from the payments package, tell me which of these actually matter for us and just do the safe upgrades:\n\n# npm audit report\n\naxios 1.6.0 - 1.7.3\nSevere: Server-Side Request Forgery in axios\nfix available via `npm audit fix --force`\nWill install [email protected], which is a breaking change\nnode_modules/axios\n @acme/gateway-sdk 0.4.0 - 0.9.2\n Depends on vulnerable versions of axios\n node_modules/@acme/gateway-sdk\n\ntar-fs 2.0.0 - 2.1.1\nModerate: Link Following in tar-fs\nfix available via `npm audit fix`\nnode_modules/tar-fs\n\n7 vulnerabilities (4 moderate, 3 high)", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "continue from where the sync work stopped", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "here's the hunk that landed friday. does it hold up?\n\n@@ -41,17 +41,24 @@ func (s *Settler) Settle(ctx context.Context, batchID string) error {\n-\ttx, err := s.db.BeginTx(ctx, nil)\n+\ttx, err := s.db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelReadCommitted})\n \tif err != nil {\n \t\treturn err\n \t}\n-\tdefer tx.Rollback()\n+\tdefer func() { _ = tx.Rollback() }()\n \n \trows, err := tx.QueryContext(ctx, selectPendingSQL, batchID)\n \tif err != nil {\n \t\treturn err\n \t}\n+\tdefer rows.Close()\n \n \tfor rows.Next() {\n \t\tvar p payout\n \t\tif err := rows.Scan(&p.ID, &p.AmountCents, &p.Currency); err != nil {\n \t\t\treturn err\n \t\t}\n-\t\tif err := s.send(ctx, p); err != nil {\n+\t\tgo func(p payout) {\n+\t\t\t_ = s.send(ctx, p)\n+\t\t}(p)\n-\t\t\treturn err\n-\t\t}\n \t}\n \treturn tx.Commit()\n }", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "ticket copy below, turn it into customer-facing release notes for the 4.2 firmware drop. keep it short, they are field techs not engineers:\n\nFW-2201 — Modbus RTU timing\nDevices on long RS-485 runs (>300m) intermittently dropped frames when polled faster than 20Hz. Root cause was the inter-frame delay being computed from the nominal baud rate rather than the measured one. Fixed by sampling the actual bit time at link-up.\n\nFW-2214 — Battery gauge drift\nThe SoC estimate drifted up to 12% after ~40 charge cycles because the coulomb counter was never re-zeroed at full charge. Now re-zeroes when terminal voltage holds above 4.15V for 90 seconds.\n\nFW-2230 — OTA rollback\nA failed OTA could leave slot B marked valid. Bootloader now requires a heartbeat from the new image within 60s before confirming.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "rename `TxnCtx` to `PaymentContext` everywhere, it's in about 30 files", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "pytest output, no clue why this only fails on CI:\n\n=================================== FAILURES ===================================\n_______________ test_settlement_rounds_half_even[eur-2.005] ____________________\n\namounts = ['2.005', '10.115', '0.005']\n\n @pytest.mark.parametrize(\"currency,amount\", CASES)\n def test_settlement_rounds_half_even(currency, amount):\n got = settle(Decimal(amount), currency)\n> assert got == Decimal(\"2.00\")\nE assert Decimal('2.01') == Decimal('2.00')\nE + where Decimal('2.01') = settle(Decimal('2.005'), 'eur')\n\ntests/test_settlement.py:64: AssertionError\n=========================== short test summary info ============================\nFAILED tests/test_settlement.py::test_settlement_rounds_half_even[eur-2.005]\nFAILED tests/test_settlement.py::test_settlement_rounds_half_even[eur-0.005]\n2 failed, 318 passed in 41.22s\n\nlocally all 320 pass. same python version per the container image", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "give the dashboard some love", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "quiero un README para el paquete `acme-payments-sdk`, con ejemplos de uso y la tabla de errores", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "es"}
|
||||
{"prompt": "epic dropped in my lap this morning, need a shape for it before standup:\n\nPAY-880: Split-tender checkout\nCustomers should be able to pay with up to three instruments on one order (gift card + card + store credit). Partial authorization must be supported; if the second instrument declines we must void the first within 30s or the customer sees a phantom hold. Refunds must unwind in reverse order of capture. Accounting needs one journal entry per instrument, not per order. Mobile and web both in scope; POS is explicitly out of scope for this quarter. Legal wants a written record of authorization order for disputes.\n\nno estimates yet, just want the milestones and where the risk is", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "skeleton loader for the orders table please, matching the card one we already have", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "git log since v3.8 is below, produce the changelog entry. group by user-visible vs internal, drop the noise:\n\n8f21c0a fix(cart): guard against null promo on line items\n1b93de2 chore: bump esbuild 0.21.5 -> 0.23.0\nc0aa774 feat(checkout): remember last used shipping method\n77de110 refactor(orders): extract draft builder\n2e91b45 fix(orders): don't double-count tax on split shipments\naa30f19 test: flaky settlement rounding case\n9c1d004 feat(admin): bulk refund from the order list\n4410bb7 chore(deps): dependabot bump tar-fs\nb77e910 fix(webhooks): retry paypal IPN on 5xx instead of dropping\n30cc219 docs: correct the payout schedule table\ne1f0a52 perf(cart): memoize currency formatter", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "walk me through what `reconcileLedger` actually does before i touch it", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "serial console from the gateway board, it wedges after a few hours in the field but never on my desk:\n\n[00:04:12.331] mqtt: connected broker=ssl://ingest.acme.io:8883\n[01:58:03.117] mqtt: publish qos=1 topic=v1/telemetry len=284\n[01:58:03.402] mqtt: puback id=41221\n[02:11:44.980] wifi: rssi=-81 (weak)\n[02:11:47.002] mqtt: keepalive timeout, reconnecting\n[02:11:47.004] net: dhcp renew\n[02:11:52.118] mqtt: connect failed rc=-2\n[02:12:02.118] mqtt: connect failed rc=-2\n[02:12:12.119] mqtt: connect failed rc=-2\n[02:12:12.120] heap: free=3128 largest=1024 min_ever=3128\n[02:12:22.121] mqtt: connect failed rc=-2\n[02:12:22.122] heap: free=2104 largest=768 min_ever=2104\n[02:12:32.123] mqtt: connect failed rc=-2\n[02:12:32.124] heap: free=1080 largest=512 min_ever=1080\n<no further output>", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "nochmal die Frage: warum ruft der Checkout `getShippingRates` zweimal auf, wenn man die Adresse ändert?", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "de"}
|
||||
{"prompt": "do the thing with the invoices", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "ruff is unhappy on the pipeline package, clear these out:\n\npipelines/orders/load.py:12:1: F401 [*] `datetime.timezone` imported but unused\npipelines/orders/load.py:88:5: E722 Do not use bare `except`\npipelines/orders/load.py:141:9: F841 Local variable `rowcount` is assigned to but never used\npipelines/orders/transform.py:23:1: E402 Module level import not at top of file\npipelines/orders/transform.py:210:80: E501 Line too long (118 > 100)\npipelines/orders/transform.py:377:15: B008 Do not perform function call `dict()` in argument defaults\npipelines/common/io.py:5:1: F401 [*] `typing.Optional` imported but unused\npipelines/common/io.py:66:12: SIM108 Use ternary operator instead of `if`-`else`-block\nFound 8 errors (3 fixable with the `--fix` option).", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "our staging environment shares a gateway sandbox account with two other teams, which is why our e2e tests are flaky, and i'm tired of it. options as i see them: our own sandbox account, a recorded-fixtures approach, or a fake gateway we maintain. weigh those up for a team our size and tell me what you'd do", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "a merchant reported that their payout for tuesday arrived split into two payments with different reference numbers, which shouldn't be possible. i've been staring at the batching code for an hour. the batch closes on a size trigger and a time trigger and i think both can fire, but i can't prove it from reading. take a look and explain what's happening", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "our checkout conversion dropped 4% on android chrome last week and nothing in the payments code changed. the only thing i can find is that the card element sometimes doesn't get focus on first tap. i don't know whether that's the cause or a red herring, and i don't know how to tell", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "a `/v1/instruments` endpoint is needed: list saved payment instruments for the authenticated merchant's customer, with the default one first, expired cards excluded unless `include_expired=true`, and last-four plus brand only — never the token. keep it consistent with how `/v1/orders` handles auth and pagination", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "finish it", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "POST /v1/refunds handler is pasted below — i need the public API reference page for it. request/response schema, every error code, and an idempotency note:\n\[email protected](\"/v1/refunds\", status_code=201)\nasync def create_refund(body: RefundIn, idem: str = Header(alias=\"Idempotency-Key\")):\n order = await orders.get(body.order_id)\n if order is None:\n raise HTTPException(404, \"order_not_found\")\n if order.state not in (\"captured\", \"partially_refunded\"):\n raise HTTPException(409, \"order_not_refundable\")\n if body.amount_cents > order.refundable_cents:\n raise HTTPException(422, \"amount_exceeds_refundable\")\n existing = await idem_store.get(idem)\n if existing:\n return existing\n refund = await gateway.refund(order.charge_id, body.amount_cents, reason=body.reason)\n await idem_store.put(idem, refund, ttl=86400)\n return refund", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "airflow scheduler log tail — the daily orders DAG has been marked success while producing nothing for three days:\n\n[2026-07-27, 02:00:04 UTC] {scheduler_job.py:412} INFO - DAG orders_daily scheduled run 2026-07-26\n[2026-07-27, 02:00:09 UTC] {taskinstance.py:1157} INFO - Executing extract_orders on 2026-07-26T00:00:00+00:00\n[2026-07-27, 02:00:11 UTC] {sql.py:88} INFO - Running: SELECT * FROM orders WHERE updated_at >= '2026-07-26' AND updated_at < '2026-07-27'\n[2026-07-27, 02:00:12 UTC] {sql.py:96} INFO - Fetched 0 rows\n[2026-07-27, 02:00:12 UTC] {taskinstance.py:1372} INFO - Marking task as SUCCESS\n[2026-07-27, 02:00:13 UTC] {taskinstance.py:1157} INFO - Executing load_warehouse on 2026-07-26T00:00:00+00:00\n[2026-07-27, 02:00:14 UTC] {load.py:52} INFO - upserting 0 rows into warehouse.fct_orders\n[2026-07-27, 02:00:14 UTC] {taskinstance.py:1372} INFO - Marking task as SUCCESS\n[2026-07-27, 02:00:15 UTC] {dagrun.py:604} INFO - Marking run <DagRun orders_daily @ 2026-07-26> successful\n\nthe source table definitely has rows for those days", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "explain plan for our slowest reporting query, is the sort the real problem or is it the nested loop:\n\nGroupAggregate (cost=2841002.31..2912441.09 rows=1428215 width=48) (actual time=18422.113..21033.885 rows=1201 loops=1)\n Group Key: m.merchant_id, date_trunc('day', o.captured_at)\n -> Sort (cost=2841002.31..2844572.85 rows=1428215 width=32) (actual time=18421.980..19884.210 rows=4118222 loops=1)\n Sort Key: m.merchant_id, (date_trunc('day', o.captured_at))\n Sort Method: external merge Disk: 214880kB\n -> Nested Loop (cost=0.43..2610411.02 rows=1428215 width=32) (actual time=0.061..14022.771 rows=4118222 loops=1)\n -> Seq Scan on merchants m (cost=0.00..812.44 rows=3244 width=16) (actual time=0.008..1.902 rows=3244 loops=1)\n -> Index Scan using orders_merchant_captured_idx on orders o (cost=0.43..798.11 rows=440 width=24) (actual time=0.004..3.902 rows=1269 loops=3244)\n Index Cond: (merchant_id = m.merchant_id)\nPlanning Time: 0.641 ms\nExecution Time: 21041.223 ms", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "gift card balance shows stale after a partial redemption — i think it's just the cache key missing the version, one-line change if so", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "dependabot opened this and i can't tell if it's safe to merge blind:\n\nBumps `pyarrow` from 14.0.2 to 17.0.0.\n\nRelease notes (17.0.0):\n- ARROW-41567: [Python] Deprecate `pyarrow.parquet.ParquetDataset` legacy behaviour; `use_legacy_dataset` removed\n- ARROW-42011: [C++] Default compression for `write_table` changed from `snappy` to `zstd`\n- ARROW-40199: [Python] `Table.to_pandas` now returns nullable dtypes by default when `types_mapper` is unset\n- ARROW-43121: [C++] Minimum supported glibc raised to 2.28\n\nCommits\n- 9a1b2c3 MINOR: bump version\n- 77aa019 ARROW-43121: raise glibc floor\n- 2b91d40 ARROW-40199: nullable dtypes by default\n\nCompatibility score: 61%", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "browser console on the checkout page, customers report the pay button doing nothing:\n\nrefused to execute inline script because it violates the following Content Security Policy directive: \"script-src 'self' https://js.stripe.com\"\n (index):1\nUncaught (in promise) IntegrationError: We could not retrieve data from the specified Element. Please make sure the Element you are attempting to use is still mounted.\n at Bn (v3:1:19233)\n at e._handleMessage (v3:1:41102)\n at e._handleMessage (v3:1:40011)\npayment-form.tsx:212 Uncaught TypeError: Cannot read properties of null (reading 'confirmPayment')\n at handleSubmit (payment-form.tsx:212:28)\n at HTMLFormElement.callCallback (react-dom.development.js:4164:14)\nGET https://api.acme.io/v1/payment_intents/pi_3Qb 401 (Unauthorized)\n\nhappens on safari only as far as we can tell", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "comparto el hilo de slack de anoche, resúmelo en un post-mortem para el canal #incidents:\n\nmarta: el settlement job lleva 40 min parado\nmarta: los locks en payouts están al rojo\ndani: yo veo la conexión del pooler saturada, 200/200\ndani: creo que alguien lanzó el replay manual sin el flag de batch\nmarta: confirmado, jorge lo lanzó a las 21:14 para el merchant 8812\njorge: perdón, pensaba que el replay ya iba en lotes\ndani: he matado el proceso, los locks se liberaron a las 21:52\nmarta: cola drenada a las 22:06, sin pagos perdidos\ndani: mañana metemos un guard para que replay sin --batch no arranque\nmarta: y hay que documentarlo, nadie sabía que era peligroso", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "es"}
|
||||
{"prompt": "tax calculation lives in the order service, the cart service and the admin refund flow. i want one owner for it. sketch the target shape and the steps to get there without a big-bang cutover", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "got this in prod, go service, no idea:\n\npanic: send on closed channel\n\ngoroutine 214 [running]:\nacme/settle.(*Batcher).enqueue(0xc0001a4000, {0xc0004b2100, 0x18})\n\t/build/settle/batcher.go:132 +0x9c\nacme/settle.(*Batcher).Add(...)\n\t/build/settle/batcher.go:98\nacme/settle.(*Worker).handle(0xc0000b6060, {0x8f2d40, 0xc0001bc0c0})\n\t/build/settle/worker.go:74 +0x1c5\nacme/settle.(*Worker).Run.func1()\n\t/build/settle/worker.go:41 +0x59\ncreated by acme/settle.(*Worker).Run in goroutine 1\n\t/build/settle/worker.go:39 +0x8d\n\nexit status 2\n\nit survived four weeks in staging without a single one of these", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "terraform for the ingest bucket, below. anything here that would make an auditor unhappy?\n\nresource \"aws_s3_bucket\" \"ingest\" {\n bucket = \"acme-ingest-prod\"\n}\n\nresource \"aws_s3_bucket_public_access_block\" \"ingest\" {\n bucket = aws_s3_bucket.ingest.id\n block_public_acls = true\n ignore_public_acls = true\n block_public_policy = false\n restrict_public_buckets = false\n}\n\nresource \"aws_s3_bucket_policy\" \"ingest\" {\n bucket = aws_s3_bucket.ingest.id\n policy = jsonencode({\n Version = \"2012-10-17\"\n Statement = [{\n Effect = \"Allow\"\n Principal = \"*\"\n Action = [\"s3:GetObject\"]\n Resource = \"${aws_s3_bucket.ingest.arn}/public/*\"\n }]\n })\n}\n\nresource \"aws_s3_bucket_lifecycle_configuration\" \"ingest\" {\n bucket = aws_s3_bucket.ingest.id\n rule {\n id = \"expire-raw\"\n status = \"Enabled\"\n expiration { days = 3650 }\n }\n}", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "spec below, stand up the endpoint. postgres + sqlc, follow how /v1/orders does it:\n\nGET /v1/settlements\n query: merchant_id (required), from (date), to (date), status (pending|paid|failed), cursor, limit (default 50, max 200)\n auth: merchant-scoped API key; a platform key may pass merchant_id for any merchant it owns\n response: { data: Settlement[], next_cursor: string|null }\n Settlement: { id, merchant_id, amount_cents, currency, status, expected_at, paid_at|null, failure_code|null }\n ordering: expected_at desc, id desc\n errors: 400 invalid_range if to < from, 403 merchant_not_owned, 422 limit_out_of_range\n the cursor must be opaque and must survive new rows being inserted mid-page", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "diff below — write the commit message. we squash, so one subject line plus a body:\n\ndiff --git a/internal/ledger/post.go b/internal/ledger/post.go\n@@ -18,6 +18,7 @@ type Entry struct {\n \tAccount string\n \tAmount int64\n \tCurrency string\n+\tBatchID string\n }\n@@ -55,9 +56,16 @@ func Post(ctx context.Context, db DB, entries []Entry) error {\n-\tfor _, e := range entries {\n-\t\tif _, err := db.Exec(ctx, insertEntry, e.Account, e.Amount, e.Currency); err != nil {\n-\t\t\treturn err\n-\t\t}\n-\t}\n+\tbatch := &pgx.Batch{}\n+\tfor _, e := range entries {\n+\t\tbatch.Queue(insertEntry, e.Account, e.Amount, e.Currency, e.BatchID)\n+\t}\n+\tres := db.SendBatch(ctx, batch)\n+\tdefer res.Close()\n+\tfor range entries {\n+\t\tif _, err := res.Exec(); err != nil {\n+\t\t\treturn fmt.Errorf(\"post entry: %w\", err)\n+\t\t}\n+\t}\n \treturn nil\n }", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "sort out the invoice thing from yesterday", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "docs/webhooks.md still describes the v1 payload shape we killed in march. bring it in line with what we send now, and add the migration note partners keep asking for", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "help", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "summarise what the settlement service does for a new hire, then turn that into the actual service README", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.45, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "reading through the fraud scoring service for the first time. give me the tour — entry points, what calls what, where the model gets loaded, and anything that looks load-bearing but undocumented", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "loading spinner on the refunds table flashes for 40ms then disappears, looks broken", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "unify the two date formatters and then note it in the changelog", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.35, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "dark mode on the invoice preview inverts the PDF thumbnail and it looks terrible", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "needs to be faster", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "docstrings in `pipelines/common/io.py` are wrong about what happens on partial writes — they describe behaviour we removed. correct them to match the code", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "我们的 payout 对账逻辑要不要拆成独立服务?先给我一个方案对比,别写代码", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "zh"}
|
||||
{"prompt": "same thing as last time but for refunds", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "tell me whether the retry logic in `gateway/client.go` can double-charge, and if it can, patch it", "purpose": "review", "secondary": "quickFix", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "stale `TODO(marta): remove after Q1` comments all over the ingest package, it's Q3", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "just make the dashboard usable again", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "jest is red after the money refactor and i can't tell if the test or the code is wrong:\n\n FAIL src/cart/__tests__/totals.test.ts\n ● cart totals › applies percentage promo before shipping\n\n expect(received).toEqual(expected) // deep equality\n\n - Expected - 3\n + Received + 3\n\n Object {\n - \"discountCents\": 450,\n - \"shippingCents\": 599,\n - \"totalCents\": 4649,\n + \"discountCents\": 449,\n + \"shippingCents\": 599,\n + \"totalCents\": 4650,\n \"subtotalCents\": 4500,\n }\n\n at Object.<anonymous> (src/cart/__tests__/totals.test.ts:88:23)\n\nTests: 1 failed, 214 passed, 215 total\nSnapshots: 0 total\nTime: 18.446 s", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "prometheus alert fired overnight and i don't understand the rule, let alone the alert:\n\nALERT SettlementLagHigh\n expr: max by (region) (settlement_batch_age_seconds{env=\"prod\"}) > 900\n for: 10m\n labels: { severity: page, team: payments }\n annotations:\n summary: \"settlement batches lagging in {{ $labels.region }}\"\n\nfiring instances:\n settlement_batch_age_seconds{env=\"prod\",region=\"eu-west-1\",shard=\"3\"} 1841\n settlement_batch_age_seconds{env=\"prod\",region=\"eu-west-1\",shard=\"7\"} 1802\n settlement_batch_age_seconds{env=\"prod\",region=\"us-east-1\",shard=\"1\"} 212\n\nlag cleared on its own at 04:12 without anyone touching it", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "jira ticket, verbatim, and i want the rollout plan not the code:\n\nDATA-417 — Retire the nightly full refresh\nToday `warehouse_refresh` truncates and rebuilds fct_orders, fct_payments and dim_merchant every night (runtime 3h10m, growing ~4%/month). We want incremental models instead. Constraints: finance reconciles against fct_payments at 06:00 UTC and cannot see partial state; the merchant dimension is SCD2 and history must not be rewritten; three downstream Looker models and one ML feature job read these tables. There is no staging warehouse with production volume. Prior attempt in February was rolled back after duplicate rows appeared in fct_payments.", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "eslint output after the checkout rewrite, just make it quiet:\n\n/app/src/checkout/PaymentForm.tsx\n 14:8 warning 'useMemo' is defined but never used @typescript-eslint/no-unused-vars\n 88:11 error 'cardToken' is assigned a value but never used @typescript-eslint/no-unused-vars\n 132:5 error React Hook useEffect has a missing dependency: 'merchantId' react-hooks/exhaustive-deps\n 204:7 warning Unexpected console statement no-console\n\n/app/src/checkout/SummaryPanel.tsx\n 9:1 error 'formatMoney' is defined but never used @typescript-eslint/no-unused-vars\n 41:22 error Missing \"key\" prop for element in iterator react/jsx-key\n\n✖ 6 problems (4 errors, 2 warnings)\n 3 errors and 0 warnings potentially fixable with the `--fix` option.", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "cargo clippy on the firmware crate, mostly noise but a couple look real:\n\nwarning: this `if` statement can be collapsed\n --> src/modbus/frame.rs:118:5\n |\n118 | / if crc_ok {\n119 | | if len >= MIN_FRAME {\n | |_________^\n = help: for further information visit https://rust-lang.github.io/rust-clippy/\n\nwarning: casting `u32` to `u16` may truncate the value\n --> src/modbus/timing.rs:44:23\n |\n44 | let ticks: u16 = (bit_time_ns / 1000) as u16;\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nwarning: large size difference between variants\n --> src/proto/mod.rs:12:1\n |\n12 | enum Msg { Ping, Telemetry([u8; 512]) }\n\nwarning: `acme-fw` (lib) generated 14 warnings", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "ingest handler as it stands, pasted below. i want the same behaviour with the nesting flattened out, it's five levels deep in places:\n\nfunc (h *Handler) Ingest(w http.ResponseWriter, r *http.Request) {\n\tif r.Method == http.MethodPost {\n\t\tif ct := r.Header.Get(\"Content-Type\"); ct == \"application/json\" {\n\t\t\tvar batch Batch\n\t\t\tif err := json.NewDecoder(r.Body).Decode(&batch); err == nil {\n\t\t\t\tif len(batch.Readings) > 0 {\n\t\t\t\t\tif h.limiter.Allow(batch.DeviceID) {\n\t\t\t\t\t\tif err := h.store.Write(r.Context(), batch); err == nil {\n\t\t\t\t\t\t\tw.WriteHeader(202)\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\thttp.Error(w, \"store\", 500)\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\thttp.Error(w, \"rate\", 429)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\thttp.Error(w, \"bad json\", 400)\n\t\t\treturn\n\t\t}\n\t}\n\thttp.Error(w, \"nope\", 400)\n}", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "docker logs from the ingest pod, it restarts every ~9 minutes under load:\n\n2026-07-29T11:02:14.881Z INFO ingest listening on :8080\n2026-07-29T11:04:02.113Z INFO batch accepted device=dev_7781 readings=512\n2026-07-29T11:06:41.552Z WARN write queue depth 8192 (max 8192)\n2026-07-29T11:07:03.918Z WARN write queue depth 8192 (max 8192)\n2026-07-29T11:08:22.004Z WARN gc pause 812ms\n2026-07-29T11:09:15.337Z WARN gc pause 1.44s\n2026-07-29T11:10:58.221Z ERROR liveness probe failed: context deadline exceeded\n2026-07-29T11:11:02.119Z INFO SIGTERM received, draining\n2026-07-29T11:11:32.120Z ERROR drain timed out, 6112 readings dropped\nstream closed EOF for prod/ingest-7d9c4f8b6-x2plq (ingest)\n\nmemory limit is 2Gi and it never reports above 1.3Gi", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "le rapport de l'audit sécurité, section paiements. dis-moi ce qui est vraiment exploitable chez nous :\n\nF-03 — Les clés API marchand sont stockées en clair dans la table `api_keys` (colonne `secret`). Rotation manuelle uniquement.\nF-07 — L'endpoint `/v1/charges` accepte un champ `merchant_id` dans le corps de la requête et ne vérifie pas qu'il correspond au scope du token.\nF-11 — Les webhooks sortants ne signent pas le corps ; les partenaires vérifient uniquement l'adresse IP source.\nF-14 — Les journaux applicatifs contiennent le PAN tronqué (6+4) ainsi que le nom du porteur.\nF-19 — Pas de limite de tentatives sur `/v1/auth/token` (bruteforce possible sur les clés courtes).", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "fr"}
|
||||
{"prompt": "figma spec for the settlement timeline widget on the merchant dashboard:\n\nSettlement timeline (desktop ≥1024px)\n- Horizontal rail, 4 nodes: Captured → In transit → Paid → Reconciled. Node diameter 20px, 3px stroke.\n- Completed nodes: filled accent, white check glyph. Current node: accent stroke, pulsing 2s ease-in-out halo. Future nodes: 1px muted stroke, no fill.\n- Connector: 2px line, accent up to the current node, muted after. Animate the fill left-to-right over 400ms when a node completes.\n- Under each node: label (text-xs, medium) and timestamp (text-xs, muted). Timestamps in merchant local time, \"—\" when unknown.\n- Failed state: current node turns destructive, connector stops, an inline banner appears below the rail with the failure reason and a Retry link.\n- Below 1024px the rail becomes vertical, nodes left-aligned, 16px gutter.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "handoff notes for the mobile checkout sheet, build it in SwiftUI against our design system:\n\nCheckoutSheet\n- Presented as a `.sheet` with detents [.medium, .large]; drag indicator visible.\n- Header: order total (title2, bold) with the merchant name beneath (footnote, secondary).\n- Instrument list: rows of 56pt, leading icon 24pt, trailing checkmark on the selected row. Tapping a row selects it; long-press opens the remove menu.\n- \"Add payment method\" row pinned to the bottom of the list, tinted accent, chevron trailing.\n- Pay button: full width, 50pt tall, 12pt corner radius, disabled until an instrument is selected, spinner replaces the label while authorizing.\n- Errors surface as an inline red caption under the Pay button, never as an alert.\n- Dynamic Type up to AX3 must not clip the total; the row stack switches to vertical past AX1.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "css for our status chips, currently copy-pasted per status. i want one component out of this without any visual change:\n\n.chip-pending {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 2px 10px; border-radius: 9999px;\n font-size: 12px; font-weight: 500; line-height: 20px;\n background: var(--gray-100); color: var(--gray-700);\n}\n.chip-paid {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 2px 10px; border-radius: 9999px;\n font-size: 12px; font-weight: 500; line-height: 20px;\n background: var(--green-100); color: var(--green-800);\n}\n.chip-failed {\n display: inline-flex; align-items: center; gap: 6px;\n padding: 2px 10px; border-radius: 9999px;\n font-size: 12px; font-weight: 600; line-height: 20px;\n background: var(--red-100); color: var(--red-800);\n}", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "paste from the RFC someone abandoned in march. is any of it still true, and what would you keep?\n\n## Ledger v2 — motivation\nThe current ledger writes one row per order and derives per-instrument amounts at read time. With split tender this stops working: the derivation assumes a single capture. Proposal is double-entry with an `entries` table keyed by (account, batch_id) and a nightly compaction job.\n\n## Open questions\n- Do we backfill history or start fresh at cutover?\n- Compaction under load: the February prototype held locks for 40+ minutes.\n- Reporting reads go through `v_ledger_flat`; do we keep the view or force callers to migrate?\n\n## Not doing\nMulti-currency netting. Real-time reconciliation.", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "这是 backfill 脚本的报错,跑到一半就挂了,看不出是数据问题还是代码问题:\n\nTraceback (most recent call last):\n File \"tools/backfill_payments.py\", line 141, in <module>\n main()\n File \"tools/backfill_payments.py\", line 118, in main\n load_chunk(conn, rows)\n File \"tools/backfill_payments.py\", line 87, in load_chunk\n cur.executemany(UPSERT_SQL, [as_tuple(r) for r in rows])\n File \"/usr/lib/python3.12/site-packages/psycopg/cursor.py\", line 742, in executemany\n raise ex.with_traceback(None)\npsycopg.errors.UniqueViolation: duplicate key value violates unique constraint \"fct_payments_pkey\"\nDETAIL: Key (payment_id)=(pay_01HR9K2M) already exists.\n\n已经跑过一次 partial backfill,可能有关系", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "zh"}
|
||||
{"prompt": "README for the reconciliation CLI is basically the argparse help text. here's what the tool actually takes now, write something a new operator could follow:\n\nusage: reconcile [-h] --since SINCE [--until UNTIL] [--merchant MERCHANT]\n [--source {gateway,ledger,both}] [--batch BATCH] [--dry-run]\n [--out OUT] [--format {csv,ndjson,table}] [--fail-on-drift]\n [--tolerance-cents TOLERANCE_CENTS] [--parallel PARALLEL]\n\nnotes the team knows but never wrote down: --dry-run still writes the audit row; --fail-on-drift is what CI uses; --parallel above 8 starves the pooler; --source both is the only mode that catches missing gateway events; running without --merchant on a full day takes ~25 minutes.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "incident timeline from last night, in raw form. turn it into the post-mortem doc, our template has Summary / Impact / Timeline / Root cause / Action items:\n\n21:04 alert SettlementLagHigh eu-west-1\n21:07 on-call ack, sees pooler at 200/200 connections\n21:12 manual replay found running for merchant 8812, started 20:51\n21:14 replay killed\n21:18 connections recover to 40/200, lag still climbing\n21:31 second replay discovered on shard 7, also killed\n21:52 locks released, batches start draining\n22:06 queue empty, lag back under 60s\n22:20 confirmed no payouts lost, 41 delayed by >30m\n09:15 next day: guard added to block replay without --batch\n\nimpact numbers: 41 merchants saw delayed payouts, longest 74 minutes, no financial loss", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "grafana panel query plus what support is telling us. something's off and i want the endpoint documented properly once we know:\n\nsum(rate(http_requests_total{route=\"/v1/payouts\",code=~\"4..\"}[5m])) by (code)\n\n code=\"400\" 0.02/s\n code=\"401\" 0.00/s\n code=\"409\" 1.84/s\n code=\"422\" 0.31/s\n\nsupport ticket: \"we get 409 conflict on about a third of our payout creates but the payout is created anyway, so we ignore it now\"\n\nnobody can tell me what 409 means on that route — it isn't in the reference at all", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "pyproject and the CI matrix disagree and the build is amber. smallest change that makes them agree:\n\n[project]\nname = \"acme-pipelines\"\nrequires-python = \">=3.10\"\ndependencies = [\n \"pandas>=2.0,<2.2\",\n \"pyarrow>=14,<15\",\n \"psycopg[binary]>=3.1\",\n \"dbt-core==1.7.9\",\n]\n\n# .github/workflows/ci.yml\nstrategy:\n matrix:\n python: [\"3.10\", \"3.11\", \"3.12\", \"3.13\"]\n\n# failure on 3.13:\nERROR: Could not find a version that satisfies the requirement pandas<2.2,>=2.0\nERROR: No matching distribution found for pandas<2.2,>=2.0", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "helm values diff between staging and prod, i think one of these is why prod is slower:\n\n--- staging/values.yaml\n+++ prod/values.yaml\n@@ -8,7 +8,7 @@ ingest:\n replicas: 4\n- maxUnavailable: 1\n+ maxUnavailable: 0\n@@ -18,10 +18,10 @@ ingest:\n resources:\n requests:\n- cpu: 500m\n- memory: 1Gi\n+ cpu: 250m\n+ memory: 2Gi\n limits:\n- cpu: \"2\"\n+ cpu: 500m\n memory: 2Gi\n@@ -31,6 +31,7 @@ ingest:\n env:\n WRITE_QUEUE_MAX: \"8192\"\n+ GOGC: \"20\"\n BATCH_FLUSH_MS: \"250\"", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "o ficheiro `services/payouts/schedule.py` está assim há dois anos e ninguém lhe toca. o que é que ele faz exatamente, sobretudo a parte dos feriados?\n\ndef next_payout_date(merchant, after=None):\n d = after or date.today()\n delay = merchant.payout_delay_days or 2\n d = d + timedelta(days=delay)\n while d.weekday() >= 5 or d in HOLIDAYS.get(merchant.country, ()):\n d = d + timedelta(days=1)\n if merchant.payout_schedule == \"weekly\":\n while d.weekday() != merchant.payout_weekday:\n d = d + timedelta(days=1)\n elif merchant.payout_schedule == \"monthly\":\n d = d.replace(day=min(merchant.payout_dom, monthrange(d.year, d.month)[1]))\n if d <= (after or date.today()):\n d = (d + timedelta(days=32)).replace(day=merchant.payout_dom)\n return d", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "pt"}
|
||||
{"prompt": "three call sites, three different ways of building the same gateway request. i want one builder and identical behaviour:\n\n# charges.py\nreq = {\"amount\": amount_cents, \"currency\": cur.lower(), \"source\": token,\n \"capture\": True, \"metadata\": {\"order\": order_id}}\n\n# refunds.py\nreq = dict(amount=amount_cents, currency=cur.upper(), charge=charge_id,\n reason=reason or \"requested_by_customer\",\n metadata={\"order\": str(order_id), \"actor\": actor})\n\n# admin/tools/manual_charge.py\nreq = {}\nreq[\"amount\"] = int(amount * 100)\nreq[\"currency\"] = cur\nreq[\"source\"] = token\nreq[\"capture\"] = capture\nif order_id:\n req[\"metadata\"] = {\"order\": order_id, \"manual\": \"1\"}", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "gateway client's retry decorator, which is wrapped around six methods and looks wrong to me but i want it restructured rather than rewritten:\n\ndef with_retries(attempts=3, backoff=0.5):\n def deco(fn):\n @wraps(fn)\n def inner(*a, **kw):\n last = None\n for i in range(attempts):\n try:\n return fn(*a, **kw)\n except (Timeout, ConnectionError) as e:\n last = e\n time.sleep(backoff * (2 ** i))\n except GatewayError as e:\n if e.status >= 500:\n last = e\n time.sleep(backoff * (2 ** i))\n else:\n raise\n raise last\n return inner\n return deco", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "legacy module header, comments included. same behaviour, modern shape, no new deps:\n\n# NOTE(2019): this file predates the payments service split. it talks to the\n# old ledger over a socket. do not remove the sleep on line 40, it is load\n# bearing (see INC-221).\n\nclass LedgerBridge(object):\n def __init__(self, host, port, retries=3):\n self.host = host\n self.port = port\n self.retries = retries\n self._sock = None\n\n def _connect(self):\n if self._sock is None:\n self._sock = socket.create_connection((self.host, self.port), 5)\n time.sleep(0.25)\n return self._sock\n\n def post(self, entry):\n for i in range(self.retries):\n try:\n s = self._connect()\n s.sendall(json.dumps(entry).encode() + b\"\\n\")\n return json.loads(s.recv(65536).decode())\n except Exception:\n self._sock = None\n raise RuntimeError(\"ledger unreachable\")", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "product wrote this in the ticket and i need it broken into shippable pieces with an order and the risky bits called out:\n\nMerchants should be able to set their own payout schedule from the dashboard: daily, weekly on a chosen weekday, or monthly on a chosen day. Changing the schedule must not affect payouts already in flight. Merchants on manual payouts should see the option but disabled with an upsell. We need an audit record of every schedule change including who changed it. Finance wants a report of merchants whose schedule changed in the last 30 days. Support needs the ability to override a schedule temporarily without the merchant seeing it change permanently.", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "rate limiting keeps coming up and we keep deferring it. below is what ops observed last week; i want the design written down before any code — where counters live, redis failure behaviour, response headers, and the order we roll it across v1/v2/v3:\n\ntop talkers, 7d, requests per minute at peak:\n merchant 8812 14,200 rpm (bulk order sync every 5 min)\n merchant 4419 9,850 rpm (polling /v1/payouts once per second per store)\n merchant 7702 6,140 rpm (webhook replay loop, self-inflicted)\n everyone else < 900 rpm\n\ntwo of those three took the API down for everyone on tuesday for eleven minutes", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "reconciliation service has grown three responsibilities and i want a target architecture on paper before anyone opens an editor — and while you're in there, the naming is a mess. two deliverables: the design doc first, then the rename pass across the package", "purpose": "planning", "secondary": "refactor", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "finance asked for a plain-language explanation of how we compute the payout amount, including fees and reserves, and while writing it i realised the reserve calculation in `payouts/amount.go` doesn't match what we tell merchants. do both: the explainer, and then correct whichever side is wrong", "purpose": "writing", "secondary": "debugging", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "tengo dos problemas con el exportador de CSV: primero, nadie sabe qué significan las columnas y hace falta documentación para soporte; segundo, tarda 40 minutos con un millón de filas y creo que hay una consulta N+1 escondida. mira las dos cosas", "purpose": "writing", "secondary": "debugging", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "es"}
|
||||
{"prompt": "`services/settlement/` has a `utils.py` that's become a junk drawer — 40 functions, no theme. split it along actual responsibilities, and once that's done i want the module docstrings to actually describe the new layout", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.55, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "customers on the merchant dashboard see payout amounts flicker between the cached and fresh value for about a second. i suspect the SWR key, but i also want the loading behaviour on that whole screen rethought so it stops happening in general", "purpose": "debugging", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "since thursday the nightly dbt run fails about half the time on `fct_payments` with a duplicate key, and it started right after the incremental change went in. work out what's actually duplicating, then put a test in the model so it can't happen silently again", "purpose": "debugging", "secondary": "backendImpl", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "il y a deux composants `MoneyInput` dans le repo, un dans `packages/ui` et un dans l'app checkout, et ils gèrent les décimales différemment. garde-en un seul, et corrige au passage le padding qui saute sur mobile", "purpose": "refactor", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "fr"}
|
||||
{"prompt": "`X-Merchant-Id` is accepted on six endpoints and ignored on the rest, which is confusing enough that partners get it wrong constantly. decide what the right behaviour is and write it up, then make the handlers consistent", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "settlement batch size is a magic 500 in four files. bump it to 2000 everywhere and note the change in the runbook so on-call isn't surprised", "purpose": "quickFix", "secondary": "writing", "mixed": true, "difficulty": 0.3, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "admin refund modal still says \"Refund order\" when it's a partial. change the copy to reflect the amount, and update the help-centre article that shows the old screenshot", "purpose": "quickFix", "secondary": "writing", "mixed": true, "difficulty": 0.25, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "we've been asked to support offline payments on the POS terminals, which means queueing captures on device and reconciling when the network comes back. i have no idea how we handle a capture that expires while queued, or a refund issued against a capture that hasn't reached us yet. i want the whole flow reasoned through — device state machine, server-side dedupe, what the merchant sees in the dashboard while things are pending — before we commit to a shape", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "honestly the biggest problem with our data platform is that nobody knows which tables are canonical. there are three `orders` tables in two schemas, one of them is a view over another, and the ML team reads a fourth one that a contractor built in 2023. i want a plan for consolidating this: what we keep, what we deprecate, how we migrate the readers, and how we stop it happening again", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
|
||||
{"prompt": "firmware team wants over-the-air updates delivered in waves rather than all at once, with automatic halt if the failure rate crosses a threshold. we have 30k devices on flaky rural links, no device-side telemetry beyond a heartbeat, and no way to roll back once slot B is confirmed. what does a safe rollout system look like here, and what has to exist before we can even start", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "engineering handbook has nothing about how we handle money in code and every new hire asks the same questions — cents vs decimals, where rounding happens, why the go service uses int64 and python uses Decimal, what to do about currencies with three decimal places. i'd like a proper page on it with examples from our own codebase", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "public API changelog has been a bulleted list of git commits for a year and partners have told us politely that it's useless. rewrite the last three months of it the way stripe does theirs — what changed, who it affects, what you need to do, with dates and version markers. the raw commits are in `CHANGELOG-raw.md`", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "we're deprecating the v1 payouts endpoints in january and i need the comms package: the deprecation notice for the docs site, the email to affected merchants, the response header we'll add, and a short internal note about what support should say when someone calls. tone should be apologetic but firm about the date", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "i've been asked to summarise, for the security review board, exactly what data crosses the boundary between our app servers and the gateway, in what direction, and how long we retain each field. i can read the code but writing this in a form a non-engineer reviewer will accept is the hard part", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "nobody on the team can explain how the fraud score gets into the checkout decision, including the person who wrote it. i want to understand the whole path: what features are computed where, which service calls the model, what happens when the model times out, and whether the fallback is a hard-coded threshold or something smarter", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "two engineers are arguing about whether our webhook delivery is at-least-once or effectively at-most-once given how the worker acks. rather than take sides i'd like someone to actually trace the code path from event write through delivery and ack, and say plainly which it is and where the gap is", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "before the pen test next month, go over how we authenticate merchant API calls end to end — key issuance, storage, the scope check middleware, rotation, and what happens with a revoked key that's already in flight. i'm not asking for changes yet, i want to know where we stand", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "src/sync/reconcile.ts is 900 lines and does fetching, diffing, conflict resolution and persistence in one file. no behaviour should change, but i want it in modules that a new person could navigate, with the conflict rules isolated enough that they're testable on their own", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "every service in the monorepo has its own hand-rolled config loading — env vars in some, a yaml file in others, and the python one reads both plus a json blob from consul. i'd like one approach across all of them, same values resolved the same way, and no service changing behaviour as a result", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "dependency situation in the settlement worker is grim: database handle, gateway client, metrics recorder and feature-flag client all reached through package-level singletons, which is why it's untestable. thread them through as dependencies instead without changing what the worker does", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "device registry needs a bulk enrolment path: operators upload a CSV of serial numbers and MAC addresses, we mint certs for each, and the whole thing has to be resumable because they upload 20k rows over a hotel wifi connection. postgres and a worker queue are fine, no new infra", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "chip radius should be 4px not 9999px", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "modal close button sits 2px too high", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "console.log left in the payment form", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "receipt footer has last year's address", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "\"recieve\" on the billing empty state", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "turn split_tender on in staging", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "core", "lang": "en"}
|
||||
{"prompt": "webhook timeout 5s -> 15s", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pin dbt-core to 1.7.9 in CI", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "CHANGELOG date says 2025, should be 2026", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "raise the payout page size to 100", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "das Retry-Limit auf 5 setzen, bitte", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "de"}
|
||||
{"prompt": "flag icons next to the currency codes", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "empty cart art above the fold on mobile", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
|
||||
{"prompt": "disable bulk refund when nothing's selected", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pricing page hover feels sluggish", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "sticky header on the orders list", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "toast should slide, not fade", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
|
||||
{"prompt": "tighten the mobile card gap to 8px", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "spinner flashes for 40ms, looks broken", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "failed chip amber with an icon", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "`TxnCtx` should be `PaymentContext`", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "one money helper, not three", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "pull the promo logic out of `buildOrderDraft`", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
|
||||
{"prompt": "kill the barrel file in packages/ui", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "`amt` -> `amountCents` across the go service", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "die Test-Helper gehören in ein eigenes Paket", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "de"}
|
||||
{"prompt": "split settlement/utils.py by responsibility", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "inline the single-use `formatChip` helper", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "who calls `LedgerBridge.post` these days?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "is our webhook signature check constant-time?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "what does `reconcileLedger` do on a partial?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "safe to run two settlement workers?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "¿es seguro exponer `failure_code` a los partners?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "es"}
|
||||
{"prompt": "PR description for the batching change", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
|
||||
{"prompt": "docstring for `next_payout_date`, please", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "one-paragraph summary of the ledger ADR", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "release notes für Firmware 4.2, bitte kurz", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "de"}
|
||||
{"prompt": "design doc for per-merchant limits", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "milestones for the POS offline work", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "`/v1/devices/{id}/certs` rotate endpoint, go", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "nightly job to expire stale carts", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "cursor pagination on the disputes list", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "dedupe the money helpers, then note it in the changelog", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.35, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "scope out the retry redesign, then land step one", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "the usual, for the payouts screen", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "pick up the reconciliation thing", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "tidy", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "otra vez lo del checkout", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "es"}
|
||||
{"prompt": "can you look at the thing", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "ship the rest of it", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "設定画面のあれ、直しておいて", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "ja"}
|
||||
{"prompt": "payout CSV header says Amount, make it Amount (cents)", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "sandbox base URL still points at api-test", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "drop the unused `legacy_gc` column", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "merchant avatar should be circular", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "core", "lang": "en"}
|
||||
{"prompt": "amount column right-aligned, monospaced", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "keyboard focus ring is invisible on dark", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "payments team wiki has a page called \"How refunds work\" that three different people have edited in three different directions, so it now contradicts itself twice — once about whether partial refunds can exceed the captured amount and once about the 90-day window. sort out what's actually true from the code and rewrite the page so it reads like one person wrote it", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "new engineers keep asking why there are two settlement services, and the honest answer is that one was a migration that never finished. i'd like that written down somewhere permanent — what each one owns today, which one is authoritative for which merchant cohort, and the fact that nobody should add features to the old one", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "support is drowning in \"where is my payout\" tickets and half of them are answered by explaining the two-day settlement delay. give me a help-centre article that covers the normal timeline, what a weekend or bank holiday does to it, why a payout can show as pending for longer, and when they should actually escalate to us", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "there's a class in the checkout service called `OrderCoordinator` that everyone is afraid of, about 600 lines, and it's the last thing standing between us and deleting the old cart module. read it and tell me what it's actually responsible for, what state it owns, and which of its methods are dead code — i'm not asking for changes yet", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a junior on the team opened a PR that adds caching to the merchant lookup and it's got 40 files in it because they also reformatted everything. i can't see the actual change through the noise. tell me what the substantive change is, whether the cache invalidation is sound, and what i should push back on", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "someone on the data team wants to know whether our `fct_payments` model can be trusted for revenue reporting, given that it's incremental and keyed on payment_id with a merge strategy. i'd like an honest read of the model and its tests, including what happens when a payment row is updated after the incremental window has passed", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "error handling in the payments package is a mix of sentinel errors, wrapped errors with %w, and a custom `PaymentError` type that swallows the cause about half the time. i want one convention applied throughout, callers updated, and identical behaviour at the API boundary — same status codes, same response bodies", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "our integration tests spin up the whole stack through a 300-line bash script that predates docker compose, and every new test copies a chunk of it. i'd like the setup expressed once, in something maintainable, with the tests themselves unchanged — they should pass exactly as they do now, just faster to reason about", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "analytics team wants event-level payment data in the warehouse within five minutes instead of the current nightly batch, and my instinct is CDC off the postgres WAL, but i haven't thought through schema evolution, backfill, or what we do when the consumer falls behind. talk me through the options and what you'd pick for a team that has no streaming experience", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "roughly once a day a merchant's dashboard shows a payout that then disappears on refresh, and support has three screenshots proving it. the API returns the payout from one replica and not from another as far as i can tell, but our reads are supposed to be routed to the primary for that endpoint. no errors anywhere in the logs", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "invoice preview screen renders server-side HTML in a webview and it's slow, janky on scroll, and completely inaccessible to VoiceOver. rebuild it as a native SwiftUI view backed by the same invoice model, matching the existing PDF layout closely enough that finance won't notice, including the itemised tax rows and the footer", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
|
||||
{"prompt": "we need an internal endpoint that support can hit to force-close a settlement batch early, with a reason and an actor recorded, guarded so it can only run on batches older than an hour and never on one that's mid-transfer. it should return the resulting batch state and the ids of anything it skipped", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "telemetry ingest endpoint currently accepts one reading per request and devices batch by sending 500 requests in a burst. add a batch endpoint that takes up to 1000 readings, rejects the whole batch if any reading fails validation, dedupes on (device_id, captured_at) against the last hour, and returns per-reading status", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt":"AegisQuartzPlayerService has four wrappers that only translate the same error enum. Collapse them into one adapter and preserve every public case, message, and metric label.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Find AegisBirchMigratorStore's duplicate retry source","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Design handed over a final pass for AegisCraneWorkspaceService, and the basic data flow in projects/aegis/ml/pipeline/features.py already works. Finish the responsive layout, empty and retry states, keyboard order, VoiceOver labels, dark appearance, and reduced-motion transition while preserving the existing data-loading code.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing Tokio deployment\n- keep the work scoped to AegisCraneWorkspaceService and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisFlintTimelineCoordinator: ship, then document","purpose":"backendImpl","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"projects/aegis/lib/codec/frame.cc now contains AegisSummitProxyService's normalization branch three times. Consolidate it behind one private helper, keep call ordering identical, and avoid touching generated code. Please preserve behavior.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"The AegisHarborIndexStore surface in projects/aegis/apps/console/routes/usage.svelte is stable now; turn its edge cases into API documentation with one successful example and one cancellation example.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Split AegisDriftConsoleStore without behavior changes","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisGarnetModalCoordinator: diagnose, then correct","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Please resist widening this one: AegisCraneWorkspaceStore works, but staging still carries a setting that production corrected last month. Correct the known literal and the test that intentionally mirrors it; the final diff should stay local enough for an on-call engineer to verify at a glance.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside AegisCraneWorkspaceStore\n- keep public behavior and serialized data unchanged\n\nThe relevant code crosses payments, iOS, Kubernetes. Prefer evidence from the repository and make any assumption explicit.\n\nThe cause and exact value change are already known, so keep this as a contained correction.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"En projects/aegis/workers/thumbnail/consumer.ex, AegisOpalRouterStore tiene un problema intermitente en el flujo de NATS JetStream. La causa ya está clara: cambia solo el timeout de staging de 15 a 30 segundos y ajusta su assertion.\n\nRestricciones:\n- seguir con NATS JetStream\n- conservar compatibilidad y cancelación\n- limitar el cambio a AegisOpalRouterStore","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"es"}
|
||||
{"prompt":"Ticket OPS-41124: retire the legacy replay path for AegisLumenChartFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nTurn the artifact into a reversible AegisLumenChartFlow rollout strategy: phases, dual-operation window, validation, ownership, removal criteria, and explicit stop conditions.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"# projects/aegis/config/staging.toml\n[worker.aegiscinderauthflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegiscinderauthflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegiscinderauthflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisCinderAuthFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41123\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nThe intended correction is already known: change only the stale 15-second setting to 30 seconds in projects/aegis/config/staging.toml and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Apparently: # projects/aegis/workers/thumbnail/consumer.ex\n[worker.aegisflinttimelineflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisflinttimelineflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisflinttimelineflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisFlintTimelineFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41121\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nBearbeite auf Basis dieses Kontexts die beschriebene Aufgabe; API, Kompatibilität und Rollback müssen erhalten bleiben. Align AegisFlintTimelineFlow's staging timeout with the shown production value and refresh only the focused config test; nothing else in the paste should move.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Bring AegisIrisBatchStore's confirmation sheet in line with the design tokens, including destructive emphasis, dark appearance, Dynamic Type, and swipe-to-dismiss behavior.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Release verification found a single stale AegisRainfallDBService value; the cause, desired value, and affected assertion are already agreed. Align the one stale configuration entry with production, refresh only its focused snapshot, and leave retries, grace periods, dependencies, and neighboring comments untouched.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current Tokio operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisPrismCacheStore is functionally complete on desktop, but compact widths and assistive technologies still expose unfinished states. Bring the drawer and detail pane to production polish with fluid sizing, honest skeletons, focus restoration, accessible announcements, and touch targets that survive large text.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current Tokio operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around AegisEmberRelayCoordinator: (1) assess ownership and failure handling in projects/aegis/crates/index/src/segment.rs; (2) capture the contract and rollback note for consumers. Keep public behavior and serialized data unchanged, and leave a clear boundary between the resulting artifacts or edits.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/aegis/Sources/App/SessionStore.swift b/projects/aegis/Sources/App/SessionStore.swift\nindex 62d71aa..90f3c1e 100644\n--- a/projects/aegis/Sources/App/SessionStore.swift\n+++ b/projects/aegis/Sources/App/SessionStore.swift\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nConsolidate AegisRainfallDBCoordinator's parallel adapters behind a single internal boundary, with no changes to API, timing, serialization, metrics, or error text.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisQuartzPlayerCoordinator: ship a sensible version","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"AegisFrostPanelCoordinator: check the suspicious part","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Please turn AegisFrostPanelService's existing tests into a short contract reference, covering pagination, malformed input, authorization, and retry semantics without copying test code.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Describe AegisWillowCodecStore's error envelope","purpose":"review","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisMoonlitSDKCoordinator: sequence, then restructure","purpose":"planning","secondary":"refactor","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"AegisOrbitSyncCoordinator: why is this odd","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Lately: // projects/aegis/apps/console/routes/usage.svelte\nfinal class AegisMarbleTokenFlowCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nRestructure AegisMarbleTokenFlow so duplicated normalization and shutdown ownership have one home. Preserve public behavior, wire values, logging fields, and ordering; extend characterization coverage first.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Oddly: // projects/aegis/ui/settings/PrivacyPane.tsx\nfinal class AegisDriftConsoleFlowCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nWalk through what the artifact proves about AegisDriftConsoleFlow; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisCoralUploadCoordinator: deal with the small issue","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Summarize the AegisSpruceDaemonService changes","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Responsive layout for AegisFlintTimelineStore","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"For AegisEchoRegistryCoordinator, separate AegisEchoRegistryCoordinator's policy from transport without behavior changes; once that is complete, correct the known stale timeout beside it. Work from projects/aegis/src/sync/reconcile.ts, stay with PostgreSQL 17, and keep public behavior and serialized data unchanged. Keep the two outcomes separately reviewable.","purpose":"refactor","secondary":"quickFix","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-41153\n\n08:02 deploy AegisCedarPolicyCoordinator 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\n上のコンテキストを基に依頼された作業を行い、API、互換性、rollback を維持し、根拠と判断を明確にしてください。 Turn the material above into a concise AegisCedarPolicyCoordinator release note and operator runbook section. State impact, detection, rollback, and the client-visible contract; do not modify code.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"UI ticket DES-41151: finish the compact AegisJuniperCLICoordinator filter experience\n\nRoute: /catalog/search\nSource: projects/aegis/ui/settings/PrivacyPane.tsx\nFramework: NATS JetStream\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\nUse the UI evidence to complete AegisJuniperCLICoordinator's compact and accessibility behavior, including focus restoration, large text, offline recovery, and honest loading feedback.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Currently: projects/aegis/apps/console/routes/usage.svelte 里的 AegisMarbleTokenService 最近在 PostgreSQL 17 流程中出现间歇性问题。 请实现幂等 endpoint,包含持久 cursor、tenant 鉴权、spans 和 retry 测试。\n\n约束:\n- 继续使用 PostgreSQL 17\n- 保持兼容性和取消语义\n- 改动只限于 AegisMarbleTokenService","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"zh"}
|
||||
{"prompt":"Split projects/aegis/workers/thumbnail/consumer.ex by responsibility, not file length: isolate parsing, validation, and persistence while leaving the exported surface and call sequence untouched.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Nobody is asking for code changes yet; we first need to understand whether the current AegisNovaPickerStore design actually guarantees what its callers assume. Assess authorization, concurrency, durability, and shutdown behavior against existing tests, highlighting any undocumented assumption that a caller could violate.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside AegisNovaPickerStore\n- keep public behavior and serialized data unchanged\n\nThe relevant code crosses payments, iOS, Kubernetes. Prefer evidence from the repository and make any assumption explicit.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Release engineering needs a AegisAmberFilterService changelog entry that distinguishes operator action from invisible internal cleanup and names the rollback condition.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/aegis/Sources/App/SessionStore.swift b/projects/aegis/Sources/App/SessionStore.swift\nindex 62d71aa..90f3c1e 100644\n--- a/projects/aegis/Sources/App/SessionStore.swift\n+++ b/projects/aegis/Sources/App/SessionStore.swift\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nRead the artifact above as a skeptical reviewer. Is AegisPrismCacheFlow's current ordering, ownership, and cancellation behavior safe? Return findings with evidence, without editing files.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"UI ticket DES-41145: finish the compact AegisAcornWidgetFlow filter experience\n\nRoute: /catalog/search\nSource: projects/aegis/app/src/main/SyncWorker.kt\nFramework: PostgreSQL 17\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\n请根据以上上下文完成对应工作,保持 API、兼容性和 rollback,并明确说明证据和取舍。 Use the UI evidence to complete AegisAcornWidgetFlow's compact and accessibility behavior, including focus restoration, large text, offline recovery, and honest loading feedback.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-41115\n\n08:02 deploy AegisSableParserFlow 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\nTurn the artifact into a reversible AegisSableParserFlow rollout strategy: phases, dual-operation window, validation, ownership, removal criteria, and explicit stop conditions.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisIrisBatchCoordinator: untangle the messy bit","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"AegisVelaDrawerCoordinator: give it a nicer flow","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Test Suite 'AegisMicaProfileFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[AegisMicaProfileFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/aegis/infra/modules/edge/main.tf:144: error: -[AegisMicaProfileFlowTests testRestoresSelectionAfterBackgrounding] : XCTAssertEqual failed: (\"Optional(4)\") is not equal to (\"Optional(3)\")\nAccessibility hierarchy at failure:\n Application, 0x104c, pid: 812\n Window, identifier: \"main\"\n NavigationStack, identifier: \"catalog\"\n Button, label: \"Filters\", value: \"2 active\"\n CollectionView, identifier: \"results-grid\", rows: 24\n Sheet, identifier: \"filter-sheet\"\n TextField, label: \"Search filters\", value: \"\"\n Switch, label: \"Available offline\", value: \"1\"\n Button, label: \"Apply\", enabled: true\nTest Case '-[AegisMicaProfileFlowTests testRestoresSelectionAfterBackgrounding]' failed (4.812 seconds).\n\nSimulator: iPhone 17 Pro, iOS 27.0, en_US, content size XXXL, Reduce Motion enabled. The screenshot looks correct. The mismatch is the internal selected-segment index after the scene becomes active; tapping Apply a second time makes it three again.\n\nFind the source of this AegisMicaProfileFlow symptom by following task lifetime, cursor movement, durable writes, and cleanup. Propose code only after the evidence supports one cause.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Test Suite 'AegisEmberRelayFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[AegisEmberRelayFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/aegis/pkg/cache/lease.rs:144: error: -[AegisEmberRelayFlowTests testRestoresSelectionAfterBackgrounding] : XCTAssertEqual failed: (\"Optional(4)\") is not equal to (\"Optional(3)\")\nAccessibility hierarchy at failure:\n Application, 0x104c, pid: 812\n Window, identifier: \"main\"\n NavigationStack, identifier: \"catalog\"\n Button, label: \"Filters\", value: \"2 active\"\n CollectionView, identifier: \"results-grid\", rows: 24\n Sheet, identifier: \"filter-sheet\"\n TextField, label: \"Search filters\", value: \"\"\n Switch, label: \"Available offline\", value: \"1\"\n Button, label: \"Apply\", enabled: true\nTest Case '-[AegisEmberRelayFlowTests testRestoresSelectionAfterBackgrounding]' failed (4.812 seconds).\n\nSimulator: iPhone 17 Pro, iOS 27.0, en_US, content size XXXL, Reduce Motion enabled. The screenshot looks correct. The mismatch is the internal selected-segment index after the scene becomes active; tapping Apply a second time makes it three again.\n\nBring AegisEmberRelayFlow's sheet to release quality across phone and tablet layouts; preserve its data flow while correcting selection, keyboard, VoiceOver, and animation states.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Today: Incident timeline — INC-41119\n\n08:02 deploy AegisNimbusFormFlow 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\nCapture the AegisNimbusFormFlow decision as an ADR with context, chosen behavior, rejected alternatives, compatibility window, and measurable rollback trigger.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Unifie les validateurs de AegisNimbusFormService","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"fr"}
|
||||
{"prompt":"Why is AegisMapleQueueService stalling?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Context: # projects/aegis/db/migrations/20260730_events.sql\n[worker.aegisledgergatecoordinator]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisledgergatecoordinator.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisledgergatecoordinator.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisLedgerGateCoordinator.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41150\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nThe intended correction is already known: change only the stale 15-second setting to 30 seconds in projects/aegis/db/migrations/20260730_events.sql and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Move AegisEmberRelayStore behind one protocol","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ticket OPS-41132: retire the legacy replay path for AegisMapleQueueFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nUsing this as the starting evidence, propose a staged AegisMapleQueueFlow migration with compatibility seams, owners, canary metrics, rollback gates, and a no-code first milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"We need to move AegisQuartzPlayerStore from the legacy store to NATS JetStream. Propose phases, compatibility seams, metrics, rollback points, and the order in which clients should migrate; no code yet.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Draft AegisSpruceDaemonStore's upgrade note","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisBirchMigratorService's SyncWorker.kt needs better comments","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"The next client release depends on a new AegisNovaPickerService capability in projects/aegis/internal/auth/refresh.go, with WebGPU already chosen by the platform group. Implement the endpoint and durable cursor, enforce tenant authorization and idempotency, emit useful spans, cap work per request, and include focused tests for retries, cancellation, and malformed cursors.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing WebGPU deployment\n- keep the work scoped to AegisNovaPickerService and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisMarbleTokenCoordinator: handle the lingering thing","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Clarify AegisEchoRegistryStore's retry docs","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Where did AegisWillowCodecService's cursor drift?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Background: UI ticket DES-41113: finish the compact AegisOspreyJobFlow filter experience\n\nRoute: /catalog/search\nSource: projects/aegis/packages/api/openapi.yaml\nFramework: SQLite\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\nCon este contexto, resuelve la petición indicada manteniendo API, compatibilidad y rollback; deja claras las decisiones y la evidencia. Bring AegisOspreyJobFlow's sheet to release quality across phone and tablet layouts; preserve its data flow while correcting selection, keyboard, VoiceOver, and animation states.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisNovaPickerCoordinator is blocking the next release because two validators with subtly different error strings. I need two concrete outcomes from a single pass: finish AegisNovaPickerCoordinator's responsive empty and retry states, and capture the contract and rollback note for consumers. Use the existing WebGPU conventions in projects/aegis/infra/modules/edge/main.tf; keep public behavior and serialized data unchanged. Keep the outcomes distinct so reviewers can see which evidence supports the assessment and which files or prose satisfy the requested change.\n\nConstraints:\n- preserve public wire values and tenant boundaries\n- cover cancellation and retry behavior\n- avoid generated code and unrelated cleanup\n- include a rollback trigger that an on-call engineer can measure\n\nThis is a fresh workstream for the release, so derive everything from the repository and the context here.","purpose":"frontendImpl","secondary":"writing","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Production says AegisCloudReconcilerStore is healthy while users see stalled work, and the current telemetry does not reveal which ownership boundary lost progress. Reconstruct the failing timeline from logs and tests, identify which invariant first breaks, and distinguish causal signals from effects or cleanup noise.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current SQLite operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two engineers disagree about whether AegisFernSnapshotStore's cache is authoritative. Walk the reads and writes in projects/aegis/cmd/exporter/main.py and settle that question from the code.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Before we approve AegisSlateEditorStore, assess whether two validators with subtly different error strings is an actual correctness risk or merely confusing structure.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Fresh release brief for AegisPrismCacheCoordinator:\n- primary outcome: change AegisPrismCacheCoordinator's known staging timeout from 15 to 30 seconds\n- companion outcome: capture the contract and rollback note for consumers\n- repository entry point: projects/aegis/Sources/CLI/Commands/Doctor.swift\n- platform constraint: Tokio\n- known complication: a misleading timeout name used in five packages\n\nBoth results are required, but they should remain independently reviewable. Keep public behavior and serialized data unchanged; retain serialization and authorization boundaries; cover cancellation, idempotent retries, and rollback; and avoid drive-by cleanup. Use the code as the source of truth, call out assumptions, and state how an on-call engineer can tell that either part is unsafe to ship.","purpose":"quickFix","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Question: diff --git a/projects/aegis/db/migrations/20260730_events.sql b/projects/aegis/db/migrations/20260730_events.sql\nindex 62d71aa..90f3c1e 100644\n--- a/projects/aegis/db/migrations/20260730_events.sql\n+++ b/projects/aegis/db/migrations/20260730_events.sql\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nWire AegisEchoRegistryFlow's schema, storage, handler, and worker path so continuation is signed, duplicate delivery is stable, and shutdown cannot acknowledge uncommitted work.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ticket OPS-41142: retire the legacy replay path for AegisBeaconStoreFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nFrom this evidence, draft consumer-facing migration guidance for AegisBeaconStoreFlow, plus a short operational recovery note. Keep uncertainty explicit and leave the implementation untouched.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"In projects/aegis/ui/settings/PrivacyPane.tsx hat AegisOpalRouterService ein sporadisches Problem im NATS JetStream-Ablauf. Verfolge Queue, Scheduler und Abbruch, vergleiche Hypothesen und finde die Ursache vor jeder Änderung.\n\nRandbedingungen:\n- NATS JetStream weiterverwenden\n- Kompatibilität und Abbruchsemantik erhalten\n- Änderung auf AegisOpalRouterService begrenzen Mache Annahmen explizit, nenne Repository-Belege und bleibe rund um AegisOpalRouterService mit NATS JetStream kompatibel.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"de"}
|
||||
{"prompt":"The API work is done; what remains for AegisSableParserStore is the visible interaction layer across loading, offline, empty, and success cases. Implement the remaining visual states from the design tokens, including compact navigation, offline recovery, destructive confirmation, and animation fallbacks.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside AegisSableParserStore\n- keep public behavior and serialized data unchanged\n\nThe relevant code crosses payments, iOS, Kubernetes. Prefer evidence from the repository and make any assumption explicit.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"A previously stable test around AegisSummitProxyStore now fails one run in twenty. Determine whether ordering, locale, or leaked state is responsible.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"For AegisBasilRunnerCoordinator, produce a consumer guide for AegisBasilRunnerCoordinator; once that is complete, give the existing implementation a read-only safety pass. Work from projects/aegis/services/ledger/replay.go, stay with WebGPU, and keep public behavior and serialized data unchanged. Keep the two outcomes separately reviewable.","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Security flagged AegisTideWorkerService for a read-only pass because its PostgreSQL 17 boundary mixes tenant data, retries, and cancellation in subtle ways. Follow one successful request and each early exit through the code, then rank findings by impact and state which apparent hazards are already ruled out by invariants.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current PostgreSQL 17 operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"# projects/aegis/cmd/exporter/main.py\n[worker.aegiscraneworkspacecoordinator]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegiscraneworkspacecoordinator.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegiscraneworkspacecoordinator.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisCraneWorkspaceCoordinator.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41159\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nThe intended correction is already known: change only the stale 15-second setting to 30 seconds in projects/aegis/cmd/exporter/main.py and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Before we approve AegisLedgerGateStore, assess whether two validators with subtly different error strings is an actual correctness risk or merely confusing structure.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"projects/aegis/packages/api/openapi.yaml 里的 AegisCoralUploadStore 最近在 SQLite 流程中出现间歇性问题。 请给出阶段、兼容层、指标、rollback 和 ownership,先不要修改代码。\n\n约束:\n- 继续使用 SQLite\n- 保持兼容性和取消语义\n- 改动只限于 AegisCoralUploadStore","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"zh"}
|
||||
{"prompt":"Observation: # projects/aegis/lib/codec/frame.cc\n[worker.aegisdeltacanvasflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisdeltacanvasflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisdeltacanvasflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisDeltaCanvasFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41116\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nMake the one confirmed configuration correction in projects/aegis/lib/codec/frame.cc. Keep retry counts, shutdown grace, dependencies, formatting, and production values exactly as they are.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Constraint: projects/aegis/pkg/cache/lease.rs now contains AegisCloudReconcilerFlow's normalization branch three times. Consolidate it behind one private helper, keep call ordering identical, and avoid touching generated code. Please preserve behavior. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two deliverables are holding up AegisTideWorkerCoordinator. First, separate AegisTideWorkerCoordinator's policy from transport without behavior changes. In the same workstream, give the existing implementation a read-only safety pass. The relevant starting point is projects/aegis/src/sync/reconcile.ts, which follows PostgreSQL 17 conventions and currently suffers from duplicate retries after a network handoff. Keep public behavior and serialized data unchanged.\n\nPlease make the boundary between analysis and changes obvious, preserve tenant and wire compatibility, exercise cancellation plus retries, and leave unrelated generators alone. The handoff should include one measurable rollback signal and enough repository evidence for separate reviewers to verify each outcome.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Teach AegisMosaicGridStore to verify signed continuation tokens, reject cross-tenant cursors, and rotate keys without invalidating tokens issued during the overlap window.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisBeaconStoreCoordinator: polish the last piece","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Why does AegisFrostPanelStore's WebGPU worker stop making progress while its health endpoint remains green? Gather evidence from the scheduler and queue code and narrow the failure mode.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Request: Ticket OPS-41139: retire the legacy replay path for AegisIrisBatchFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nAssess AegisIrisBatchFlow for durability, tenant isolation, races, and misleading observability. Separate blockers from questions and do not produce a patch.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Spell AegisDriftConsoleService's metric correctly","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Goal: // projects/aegis/apps/console/routes/usage.svelte\nfinal class AegisHarborIndexCoordinatorCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nSplit AegisHarborIndexCoordinator by responsibility and make cancellation ownership explicit. Characterize the current sequence before moving code and keep callers unchanged.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"AegisDeltaCanvasCoordinator: polish, then correct","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Memory attributed to AegisPineMetricsStore rises after every cancelled import and never falls. Trace task ownership, buffers, and callbacks to identify what remains reachable.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Does AegisCopperBridgeFlow enforce tenant scope before decoding its cursor, and could any early-return path reveal whether a foreign record exists?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Support wants the behavior in projects/aegis/app/src/main/SyncWorker.kt recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Flip AegisMoonlitSDKStore's staging toggle","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"I inherited AegisOspreyJobStore and need a careful read of projects/aegis/config/staging.toml before I can sign off on the next release. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing SQLite deployment\n- keep the work scoped to AegisOspreyJobStore and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Unify the AegisMicaProfileStore validators","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Symptom: Two engineers disagree about whether AegisIrisBatchService's cache is authoritative. Walk the reads and writes in projects/aegis/cmd/exporter/main.py and settle that question from the code.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisAtlasSearchCoordinator: the screen feels unfinished","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Bump AegisLumenChartService's timeout to 30s","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"UI ticket DES-41125: finish the compact AegisBirchMigratorFlow filter experience\n\nRoute: /catalog/search\nSource: projects/aegis/app/src/main/SyncWorker.kt\nFramework: PostgreSQL 17\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\nBring AegisBirchMigratorFlow's sheet to release quality across phone and tablet layouts; preserve its data flow while correcting selection, keyboard, VoiceOver, and animation states.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Read projects/aegis/pkg/cache/lease.rs and tell me whether AegisSlateEditorService can acknowledge work before its durable write completes; this is a read-only safety pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ist AegisNimbusFormStore sicher?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"de"}
|
||||
{"prompt":"Headsup: # projects/aegis/workers/thumbnail/consumer.ex\n[worker.aegisorbitsyncflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisorbitsyncflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisorbitsyncflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisOrbitSyncFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41141\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nThe intended correction is already known: change only the stale 15-second setting to 30 seconds in projects/aegis/workers/thumbnail/consumer.ex and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"FYI: Ticket OPS-41112: retire the legacy replay path for AegisNovaPickerFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nAssess AegisNovaPickerFlow for durability, tenant isolation, races, and misleading observability. Separate blockers from questions and do not produce a patch.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Is there a cleaner way to separate AegisOrbitSyncStore's transport, persistence, and retry policy without changing its API or timing behavior? Go ahead and make that structural change. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Set AegisRavenSessionStore's port to 8081","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"A flaky failure around AegisPineMetricsService survived three attempted fixes, so I want the evidence and invariants traced before another patch lands. Trace task lifetime, cursor advancement, and durable acknowledgment across reconnects; produce a defensible root cause and the smallest experiment that would falsify it.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside AegisPineMetricsService\n- keep public behavior and serialized data unchanged\n\nThe relevant code crosses payments, iOS, Kubernetes. Prefer evidence from the repository and make any assumption explicit.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-41111\n\n08:02 deploy AegisOpalRouterFlow 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\nTurn the material above into a concise AegisOpalRouterFlow release note and operator runbook section. State impact, detection, rollback, and the client-visible contract; do not modify code.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ticket OPS-41148: retire the legacy replay path for AegisSlateEditorFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nAssess AegisSlateEditorFlow for durability, tenant isolation, races, and misleading observability. Separate blockers from questions and do not produce a patch.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisSlateEditorCoordinator: make the api less awkward","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Meanwhile: # projects/aegis/Sources/App/SessionStore.swift\n[worker.aegisveladrawerflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisveladrawerflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisveladrawerflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisVelaDrawerFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41134\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nMake the one confirmed configuration correction in projects/aegis/Sources/App/SessionStore.swift. Keep retry counts, shutdown grace, dependencies, formatting, and production values exactly as they are.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Sequence AegisGarnetModalService's rollout","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Nobody is asking for code changes yet; we first need to understand whether the current AegisHarborIndexService design actually guarantees what its callers assume. Assess authorization, concurrency, durability, and shutdown behavior against existing tests, highlighting any undocumented assumption that a caller could violate.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside AegisHarborIndexService\n- keep public behavior and serialized data unchanged\n\nThe relevant code crosses payments, iOS, Kubernetes. Prefer evidence from the repository and make any assumption explicit.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Locally: Ticket OPS-41144: retire the legacy replay path for AegisWrenExportFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nUsing this as the starting evidence, propose a staged AegisWrenExportFlow migration with compatibility seams, owners, canary metrics, rollback gates, and a no-code first milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Is there a cleaner way to separate AegisCedarPolicyFlow's transport, persistence, and retry policy without changing its API or timing behavior? Go ahead and make that structural change. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Production: Ticket OPS-41136: retire the legacy replay path for AegisSummitProxyFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nTurn the artifact into a reversible AegisSummitProxyFlow rollout strategy: phases, dual-operation window, validation, ownership, removal criteria, and explicit stop conditions.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisWrenExportCoordinator: the docs need something","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"AegisSummitProxyCoordinator: could this be clearer","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Staging: projects/aegis/engine/render/atlas.cpp has grown through several launches, and AegisCopperBridgeService now mixes policy, transport, persistence, and metrics in one place. Separate those responsibilities into focused units, remove the duplicated normalization branches, and keep public types, wire values, log fields, timing, and test-observable behavior exactly the same.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing NATS JetStream deployment\n- keep the work scoped to AegisCopperBridgeService and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Corrija o timeout de AegisBasilRunnerService","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"pt"}
|
||||
{"prompt":"CI: Ticket OPS-41118: retire the legacy replay path for AegisMoonlitSDKFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nAssess AegisMoonlitSDKFlow for durability, tenant isolation, races, and misleading observability. Separate blockers from questions and do not produce a patch.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Security flagged AegisAsterWebhookService for a read-only pass because its WebGPU boundary mixes tenant data, retries, and cancellation in subtle ways. Follow one successful request and each early exit through the code, then rank findings by impact and state which apparent hazards are already ruled out by invariants.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current WebGPU operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"The name pendingAck means two different things across AegisCopperBridgeStore's packages; rename the state and its helpers consistently while keeping wire keys untouched.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Describe AegisSableParserService's error envelope","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Why is AegisDeltaCanvasService stalling?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"A flaky failure around AegisCloudReconcilerService survived three attempted fixes, so I want the evidence and invariants traced before another patch lands. Trace task lifetime, cursor advancement, and durable acknowledgment across reconnects; produce a defensible root cause and the smallest experiment that would falsify it.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside AegisCloudReconcilerService\n- keep public behavior and serialized data unchanged\n\nThe relevant code crosses payments, iOS, Kubernetes. Prefer evidence from the repository and make any assumption explicit.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/aegis/crates/index/src/segment.rs b/projects/aegis/crates/index/src/segment.rs\nindex 62d71aa..90f3c1e 100644\n--- a/projects/aegis/crates/index/src/segment.rs\n+++ b/projects/aegis/crates/index/src/segment.rs\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nRead the artifact above as a skeptical reviewer. Is AegisAtlasSearchFlow's current ordering, ownership, and cancellation behavior safe? Return findings with evidence, without editing files.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"# projects/aegis/web/components/FilterDrawer.vue\n[worker.aegisfrostpanelflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisfrostpanelflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisfrostpanelflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisFrostPanelFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41147\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nThe intended correction is already known: change only the stale 15-second setting to 30 seconds in projects/aegis/web/components/FilterDrawer.vue and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Two asks around AegisBirchMigratorCoordinator: (1) change AegisBirchMigratorCoordinator's known staging timeout from 15 to 30 seconds; (2) give the existing implementation a read-only safety pass. Keep public behavior and serialized data unchanged, and leave a clear boundary between the resulting artifacts or edits.","purpose":"quickFix","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Atlas: Is there a cleaner way to separate AegisCraneWorkspaceFlow's transport, persistence, and retry policy without changing its API or timing behavior? Go ahead and make that structural change. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"En projects/aegis/config/staging.toml, AegisCedarPolicyService tiene un problema intermitente en el flujo de SQLite. Añade el endpoint idempotente con cursor durable, autorización tenant, spans y tests de retry.\n\nRestricciones:\n- seguir con SQLite\n- conservar compatibilidad y cancelación\n- limitar el cambio a AegisCedarPolicyService Explicita los supuestos, señala la evidencia del repositorio y mantén compatibilidad con SQLite alrededor de AegisCedarPolicyService.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"es"}
|
||||
{"prompt":"Three teams extended AegisJuniperCLIService independently, leaving parallel adapters and normalization branches that are supposed to behave identically. Introduce one ownership boundary for storage and scheduling, collapse pass-through wrappers, and characterize ordering and cancellation before moving code.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current NATS JetStream operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"# projects/aegis/ml/pipeline/features.py\n[worker.aegisfernsnapshotflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisfernsnapshotflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisfernsnapshotflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisFernSnapshotFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41149\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nMake the one confirmed configuration correction in projects/aegis/ml/pipeline/features.py. Keep retry counts, shutdown grace, dependencies, formatting, and production values exactly as they are.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Could the reasoning behind AegisWrenExportService's Tokio choices be captured as an ADR for engineers joining the project next quarter?","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisWrenExportStore has four wrappers that only translate the same error enum. Collapse them into one adapter and preserve every public case, message, and metric label. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"We need to move AegisVelaDrawerStore from the legacy store to Tokio. Propose phases, compatibility seams, metrics, rollback points, and the order in which clients should migrate; no code yet.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"I inherited AegisDeltaCanvasStore and need a careful read of projects/aegis/engine/render/atlas.cpp before I can sign off on the next release. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing NATS JetStream deployment\n- keep the work scoped to AegisDeltaCanvasStore and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Split projects/aegis/web/components/FilterDrawer.vue by responsibility, not file length: isolate parsing, validation, and persistence while leaving the exported surface and call sequence untouched. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Fresh release brief for AegisOpalRouterCoordinator:\n- primary outcome: separate AegisOpalRouterCoordinator's policy from transport without behavior changes\n- companion outcome: capture the contract and rollback note for consumers\n- repository entry point: projects/aegis/workers/thumbnail/consumer.ex\n- platform constraint: NATS JetStream\n- known complication: a query plan that changes after statistics refresh\n\nBoth results are required, but they should remain independently reviewable. Keep public behavior and serialized data unchanged; retain serialization and authorization boundaries; cover cancellation, idempotent retries, and rollback; and avoid drive-by cleanup. Use the code as the source of truth, call out assumptions, and state how an on-call engineer can tell that either part is unsafe to ship.","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"The behavior of AegisGarnetModalStore is stable, yet consumers are reconstructing its contract from tests, Slack threads, and scattered comments in projects/aegis/web/components/FilterDrawer.vue. Turn the repository behavior into a compact reference with prerequisites, request and response examples, failure semantics, a rollback note, and links to the authoritative config keys.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current WebGPU operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisRavenSessionCoordinator: sequence, then ship","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/aegis/src/sync/reconcile.ts b/projects/aegis/src/sync/reconcile.ts\nindex 62d71aa..90f3c1e 100644\n--- a/projects/aegis/src/sync/reconcile.ts\n+++ b/projects/aegis/src/sync/reconcile.ts\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nRead the artifact above as a skeptical reviewer. Is AegisRavenSessionFlow's current ordering, ownership, and cancellation behavior safe? Return findings with evidence, without editing files.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"We need to move AegisBeaconStoreService from the legacy store to WebGPU. Propose phases, compatibility seams, metrics, rollback points, and the order in which clients should migrate; no code yet.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisAtlasSearchStore has four wrappers that only translate the same error enum. Collapse them into one adapter and preserve every public case, message, and metric label. Although each edit is small, the semantic rename spans the whole repository.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Match AegisMoonlitSDKService's dark theme","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisCinderAuthCoordinator: sequence, then ship","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Design handed over a final pass for AegisLedgerGateService, and the basic data flow in projects/aegis/src/sync/reconcile.ts already works. Finish the responsive layout, empty and retry states, keyboard order, VoiceOver labels, dark appearance, and reduced-motion transition while preserving the existing data-loading code.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing PostgreSQL 17 deployment\n- keep the work scoped to AegisLedgerGateService and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Polish the AegisEchoRegistryService toolbar","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Beacon: # projects/aegis/db/migrations/20260730_events.sql\n[worker.aegistideworkerflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegistideworkerflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegistideworkerflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisTideWorkerFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41110\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nMake the one confirmed configuration correction in projects/aegis/db/migrations/20260730_events.sql. Keep retry counts, shutdown grace, dependencies, formatting, and production values exactly as they are.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Support wants the behavior in projects/aegis/ui/settings/PrivacyPane.tsx recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Cinder: We need to move AegisPineMetricsFlow from the legacy store to WebGPU. Propose phases, compatibility seams, metrics, rollback points, and the order in which clients should migrate; no code yet.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Delta: // projects/aegis/services/ledger/replay.go\nfinal class AegisMosaicGridFlowCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nCom este contexto, trate a solicitação indicada preservando API, compatibilidade e rollback, com decisões e evidências claras. Split AegisMosaicGridFlow by responsibility and make cancellation ownership explicit. Characterize the current sequence before moving code and keep callers unchanged.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Read projects/aegis/db/migrations/20260730_events.sql and tell me whether AegisAmberFilterStore can acknowledge work before its durable write completes; this is a read-only safety pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Make AegisFlintTimelineService keyboard navigable","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisFernSnapshotCoordinator: smooth out this interaction","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Could the reasoning behind AegisAtlasSearchService's SQLite choices be captured as an ADR for engineers joining the project next quarter?","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisSpruceDaemonCoordinator needs a paired pass: lay out a staged migration for AegisSpruceDaemonCoordinator, plus then implement the bounded durable-cursor handler. Use projects/aegis/lib/codec/frame.cc as the source of truth, preserve the NATS JetStream contract, and avoid unrelated cleanup.","purpose":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"AegisMapleQueueCoordinator needs a paired pass: lay out a staged migration for AegisMapleQueueCoordinator, plus then implement the bounded durable-cursor handler. Use projects/aegis/infra/modules/edge/main.tf as the source of truth, preserve the WebGPU contract, and avoid unrelated cleanup.","purpose":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Ember: diff --git a/projects/aegis/services/ledger/replay.go b/projects/aegis/services/ledger/replay.go\nindex 62d71aa..90f3c1e 100644\n--- a/projects/aegis/services/ledger/replay.go\n+++ b/projects/aegis/services/ledger/replay.go\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nRead the artifact above as a skeptical reviewer. Is AegisGarnetModalFlow's current ordering, ownership, and cancellation behavior safe? Return findings with evidence, without editing files.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisRainfallDBStore occasionally exhibits cancellation being swallowed at the repository boundary, but only after a reconnect. Follow the data and cancellation paths in projects/aegis/Sources/App/SessionStore.swift and identify the cause before changing anything.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"UI ticket DES-41133: finish the compact AegisKiteSchedulerFlow filter experience\n\nRoute: /catalog/search\nSource: projects/aegis/packages/api/openapi.yaml\nFramework: SQLite\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\nUse the UI evidence to complete AegisKiteSchedulerFlow's compact and accessibility behavior, including focus restoration, large text, offline recovery, and honest loading feedback.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Frost: // projects/aegis/crates/index/src/segment.rs\nfinal class AegisCloudReconcilerCoordinatorCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nWalk through what the artifact proves about AegisCloudReconcilerCoordinator; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Garnet: The AegisMosaicGridService empty state in projects/aegis/services/ledger/replay.go needs a quiet illustration, a retry button, and copy that distinguishes no results from an offline response.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Release engineering needs a AegisVelaDrawerService changelog entry that distinguishes operator action from invisible internal cleanup and names the rollback condition.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisNimbusFormCoordinator: restructure, then assess","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"AegisEmberRelayService leaks tasks on shutdown","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Harbor: projects/aegis/config/staging.toml の AegisCoralUploadService で、SQLite の flow に断続的な問題が起きています。 queue、scheduler、cancel 経路を追い、仮説を比較して、変更前に原因を特定してください。\n\n制約:\n- SQLite を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は AegisCoralUploadService のみ","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"ja"}
|
||||
{"prompt":"Iris: The AegisBeaconStoreStore feature flag default should be false in test, exactly like production; correct that config entry and nothing else.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"A copied hex color in AegisAcornWidgetStore lost one digit. Replace #1F293 with the approved #1F2937 and keep the rest of the stylesheet untouched.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around AegisDriftConsoleCoordinator: (1) assess ownership and failure handling in projects/aegis/workers/thumbnail/consumer.ex; (2) capture the contract and rollback note for consumers. Keep public behavior and serialized data unchanged, and leave a clear boundary between the resulting artifacts or edits.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Support wants the behavior in projects/aegis/services/ledger/replay.go recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Juniper: # projects/aegis/lib/codec/frame.cc\n[worker.aegiscopperbridgecoordinator]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegiscopperbridgecoordinator.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegiscopperbridgecoordinator.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisCopperBridgeCoordinator.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41156\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nThe intended correction is already known: change only the stale 15-second setting to 30 seconds in projects/aegis/lib/codec/frame.cc and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"2026-07-30T08:14:11.409Z level=info service=aegisbasilrunnerflow pod=aegisbasilrunnerflow-7cf8 request_id=41127 msg=\"lease acquired\" partition=12 epoch=884\n2026-07-30T08:14:11.417Z level=debug service=aegisbasilrunnerflow request_id=41127 msg=\"batch loaded\" rows=250 cursor=01JZ7M\n2026-07-30T08:14:11.590Z level=warn service=aegisbasilrunnerflow request_id=41127 msg=\"heartbeat delayed\" elapsed_ms=3012 deadline_ms=3000\n2026-07-30T08:14:11.593Z level=info service=aegisbasilrunnerflow request_id=41127 msg=\"lease renewed\" partition=12 epoch=885\n2026-07-30T08:14:11.598Z level=error service=aegisbasilrunnerflow request_id=41127 msg=\"commit rejected\" expected_epoch=884 actual_epoch=885\n2026-07-30T08:14:11.601Z level=info service=aegisbasilrunnerflow request_id=41127 msg=\"retry scheduled\" attempt=1 delay_ms=0\n2026-07-30T08:14:11.617Z level=warn service=aegisbasilrunnerflow request_id=41127 msg=\"duplicate key ignored\" event_id=ev_29af\n2026-07-30T08:14:11.620Z level=info service=aegisbasilrunnerflow request_id=41127 msg=\"batch acknowledged\" rows=250\n\nDeployment is Kubernetes 1.34 with four replicas. The warning begins after a consumer rebalance and stops after the pod is restarted. Queue depth remains flat, CPU is 28%, and the readiness probe never fails.\n\nReconstruct the AegisBasilRunnerFlow failure timeline, test competing hypotheses against the pasted evidence, and identify the first broken invariant rather than treating later warnings as causes.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ticket OPS-41157: retire the legacy replay path for AegisAsterWebhookCoordinator\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nAssess AegisAsterWebhookCoordinator for durability, tenant isolation, races, and misleading observability. Separate blockers from questions and do not produce a patch.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Split AegisCinderAuthStore without behavior changes","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"For AegisLumenChartCoordinator, lay out a staged migration for AegisLumenChartCoordinator; once that is complete, consolidate the duplicated normalization paths without changing behavior. Work from projects/aegis/Sources/App/SessionStore.swift, stay with Tokio, and keep public behavior and serialized data unchanged. Keep the two outcomes separately reviewable.","purpose":"planning","secondary":"refactor","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Payments: Support wants the behavior in projects/aegis/app/src/main/SyncWorker.kt recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisMosaicGridCoordinator: take care of the warning","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Give AegisKiteSchedulerService a loading skeleton","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"UI ticket DES-41143: finish the compact AegisCoralUploadFlow filter experience\n\nRoute: /catalog/search\nSource: projects/aegis/config/staging.toml\nFramework: SQLite\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\nBring AegisCoralUploadFlow's sheet to release quality across phone and tablet layouts; preserve its data flow while correcting selection, keyboard, VoiceOver, and animation states.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Kestrel: Split projects/aegis/packages/api/openapi.yaml by responsibility, not file length: isolate parsing, validation, and persistence while leaving the exported surface and call sequence untouched.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisWillowCodecCoordinator needs a paired pass: lay out a staged migration for AegisWillowCodecCoordinator, plus then implement the bounded durable-cursor handler. Use projects/aegis/cmd/exporter/main.py as the source of truth, preserve the Tokio contract, and avoid unrelated cleanup.","purpose":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Ticket OPS-41126: retire the legacy replay path for AegisSpruceDaemonFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nDeliver the AegisSpruceDaemonFlow server-side capability implied above: durable cursors, tenant authorization, idempotent retries, bounded work, telemetry, and focused integration coverage.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Corrige le timeout de AegisBasilRunnerStore","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"fr"}
|
||||
{"prompt":"AegisMicaProfileCoordinator: document, then correct","purpose":"writing","secondary":"debugging","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Two deliverables are holding up AegisOspreyJobCoordinator. First, produce a consumer guide for AegisOspreyJobCoordinator. In the same workstream, correct the known stale timeout beside it. The relevant starting point is projects/aegis/config/staging.toml, which follows SQLite conventions and currently suffers from memory growth during hour-long imports. Keep public behavior and serialized data unchanged.\n\nPlease make the boundary between analysis and changes obvious, preserve tenant and wire compatibility, exercise cancellation plus retries, and leave unrelated generators alone. The handoff should include one measurable rollback signal and enough repository evidence for separate reviewers to verify each outcome.","purpose":"writing","secondary":"quickFix","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Map AegisRavenSessionService's ownership split","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-41129\n\n08:02 deploy AegisWillowCodecFlow 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\nÀ partir de ce contexte, traite la demande indiquée en préservant API, compatibilité et rollback, avec des décisions explicites. Turn the material above into a concise AegisWillowCodecFlow release note and operator runbook section. State impact, detection, rollback, and the client-visible contract; do not modify code.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"AegisSableParserCoordinator is blocking the next release because stale cursors when a page is resumed. I need two concrete outcomes from a single pass: finish AegisSableParserCoordinator's responsive empty and retry states, and capture the contract and rollback note for consumers. Use the existing PostgreSQL 17 conventions in projects/aegis/app/src/main/SyncWorker.kt; keep public behavior and serialized data unchanged. Keep the outcomes distinct so reviewers can see which evidence supports the assessment and which files or prose satisfy the requested change.\n\nConstraints:\n- preserve public wire values and tenant boundaries\n- cover cancellation and retry behavior\n- avoid generated code and unrelated cleanup\n- include a rollback trigger that an on-call engineer can measure\n\nThis is a fresh workstream for the release, so derive everything from the repository and the context here.","purpose":"backendImpl","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Lay out a two-milestone strategy for eliminating a deadlock that appears only during shutdown in AegisRainfallDBFlow, with risk checks and a crisp definition of done for each milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"The AegisFernSnapshotService surface in projects/aegis/ml/pipeline/features.py is stable now; turn its edge cases into API documentation with one successful example and one cancellation example.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Rename AegisLumenChartStore's staleLease state","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"projects/aegis/workers/thumbnail/consumer.ex の AegisJuniperCLIFlow で、NATS JetStream の flow に断続的な問題が起きています。 段階、互換性、metrics、rollback、ownership を提案し、コード変更の前で止めてください。\n\n制約:\n- NATS JetStream を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は AegisJuniperCLIFlow のみ","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"ja"}
|
||||
{"prompt":"Any races in AegisMicaProfileService?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"projects/aegis/src/sync/reconcile.ts has grown through several launches, and AegisTideWorkerStore now mixes policy, transport, persistence, and metrics in one place. Separate those responsibilities into focused units, remove the duplicated normalization branches, and keep public types, wire values, log fields, timing, and test-observable behavior exactly the same.\n\nConstraints:\n- keep public behavior and serialized data unchanged\n- stay compatible with the existing PostgreSQL 17 deployment\n- keep the work scoped to AegisTideWorkerStore and its direct tests\n\nThis repository spans payments, iOS, Kubernetes; use its existing conventions rather than importing a new abstraction.\n\nThe individual edits look tiny, but the semantic cleanup spans the repository and must preserve behavior.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"AegisAmberFilterCoordinator: maybe tighten this up","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"For AegisKiteSchedulerCoordinator, ship the idempotent AegisKiteSchedulerCoordinator replay endpoint; once that is complete, capture the contract and rollback note for consumers. Work from projects/aegis/config/staging.toml, stay with SQLite, and keep public behavior and serialized data unchanged. Keep the two outcomes separately reviewable.","purpose":"backendImpl","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Lumen: # projects/aegis/engine/render/atlas.cpp\n[worker.aegisquartzplayerflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.aegisquartzplayerflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.aegisquartzplayerflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.AegisQuartzPlayerFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-41146\nThe upstream gateway minimum was raised to thirty seconds last month. Production was corrected in the same change, but the staging override and its focused assertion were missed. The service owner has confirmed this is a configuration-only correction: no retry counts, grace periods, pool sizes, production values, or dependency versions should move. A staging deploy is sufficient validation, and rollback is the previous config map.\n\nMake the one confirmed configuration correction in projects/aegis/engine/render/atlas.cpp. Keep retry counts, shutdown grace, dependencies, formatting, and production values exactly as they are.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Summarize the AegisMapleQueueStore changes","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"The behavior of AegisOspreyJobService is stable, yet consumers are reconstructing its contract from tests, Slack threads, and scattered comments in projects/aegis/packages/api/openapi.yaml. Turn the repository behavior into a compact reference with prerequisites, request and response examples, failure semantics, a rollback note, and links to the authoritative config keys.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- keep public behavior and serialized data unchanged\n- retain the current SQLite operational envelope\n\nSeveral teams work in this payments, iOS, Kubernetes monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Before touching projects/aegis/src/sync/reconcile.ts, propose how to retire its legacy format while old clients remain active for ninety days and operators retain a reversible escape hatch.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Em projects/aegis/app/src/main/SyncWorker.kt, o AegisMarbleTokenStore tem um problema intermitente no fluxo de PostgreSQL 17. Finalize o layout responsivo, estados vazio e retry, foco por teclado, dark mode e reduced motion.\n\nRestrições:\n- continuar com PostgreSQL 17\n- preservar compatibilidade e cancelamento\n- limitar a mudança ao AegisMarbleTokenStore","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"pt"}
|
||||
{"prompt":"AegisAcornWidgetCoordinator: rethink this area","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Any races in AegisPrismCacheService?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Queue AegisKiteSchedulerStore's expired sessions","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Maple: Ticket OPS-41140: retire the legacy replay path for AegisAmberFilterFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nCapture the AegisAmberFilterFlow decision as an ADR with context, chosen behavior, rejected alternatives, compatibility window, and measurable rollback trigger.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Nimbus: Ticket OPS-41152: retire the legacy replay path for AegisPineMetricsCoordinator\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nCapture the AegisPineMetricsCoordinator decision as an ADR with context, chosen behavior, rejected alternatives, compatibility window, and measurable rollback trigger.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Investigate the AegisCinderAuthService hang","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
|
||||
Reference in New Issue
Block a user