updating purpose-classifier data:
This commit is contained in:
+200
-200
@@ -1,200 +1,200 @@
|
||||
{"prompt": "a pull request that touches the player's ABR logic. i'd rather understand it than approve it:\n\n@@ -88,14 +88,22 @@ export class AbrController {\n- private pickLevel(bandwidth: number): number {\n- return this.levels.findLastIndex(l => l.bitrate < bandwidth * 0.8)\n- }\n+ private pickLevel(bandwidth: number): number {\n+ const buffer = this.media.buffered.length\n+ ? this.media.buffered.end(0) - this.media.currentTime\n+ : 0\n+ const factor = buffer > 20 ? 0.95 : buffer > 8 ? 0.8 : 0.5\n+ const idx = this.levels.findLastIndex(l => l.bitrate < bandwidth * factor)\n+ if (idx < this.currentLevel - 1) return this.currentLevel - 1\n+ return idx\n+ }\n\nthe stated goal is fewer rebuffers; the risk i can see is that we never drop more than one level at a time", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "our API changelog needs an entry for the stream key header change, with what integrators must do before october", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the QoE dashboard's session sampler shows twenty random sessions with no way to see what happened in one, which is exactly what you want during an incident. build the session timeline view — events on a time axis, bitrate switches, rebuffers, errors — and decide with me first whether it belongs as a drawer or its own route", "purpose": "frontendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "a tidy-up pass, nothing risky", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "our stream keys appear in the ingest access logs because they're in the path, which security flagged this morning", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "the reconciliation method recomputes an account balance from every journal entry ever posted and then writes a snapshot, and it's called from a page that refreshes every ten seconds. before i touch it i want to know what it costs on our largest account and whether the snapshot write can race with a concurrent posting", "purpose": "review", "secondary": "planning", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "invoice posting throws this maybe twice a week in production, never in test:\n\nSystem.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 88) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.\n at Ledger.Posting.PostingService.PostAsync(PostingBatch batch, CancellationToken ct) in /src/Ledger.Posting/PostingService.cs:line 212\n at Ledger.Api.Controllers.InvoicesController.Post(InvoiceRequest req) in /src/Ledger.Api/Controllers/InvoicesController.cs:line 88\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(...)\n\nClientConnectionId:8f2b1c40-9a11-4c02-b771-041ac0aa7719\nError Number:1205,State:51,Class:13\n\nthe deadlock graph shows two sessions on the same page of `JournalEntries`, both doing an insert then an update to `Accounts.Balance`", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "one currency conversion helper, five callers", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "transcode workers keep dying on a subset of uploads and ffmpeg's output is all i have:\n\n[hls @ 0x55d1a2] Opening 'seg_00041.ts' for writing\n[libx264 @ 0x55d3f0] frame= 4118 fps=118 q=28.0 size= 204800kB\n[mpegts @ 0x55d880] Non-monotonous DTS in output stream 0:1; previous: 8412000, current: 8409600; changing to 8412001. This may result in incorrect timestamps in the output file.\n[mpegts @ 0x55d880] Non-monotonous DTS in output stream 0:1; previous: 8412001, current: 8409601; changing to 8412002.\n[aac @ 0x55e110] Queue input is backward in time\nav_interleaved_write_frame(): Invalid argument\n[hls @ 0x55d1a2] Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument\nConversion failed!\n\nexit status 1, worker restarts, next attempt fails the same way. always the same 40 or so source files", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "extension breaks on exactly one customer's intranet and their IT sent us the console:\n\nUncaught (in promise) Error: Extension context invalidated.\n at chrome-extension://hkpmbaflnkkcgnbjcplkflmpjeaeblnc/content.js:1:44112\nRefused to connect to 'https://api.lumenclip.io/v1/sync' because it violates the following Content Security Policy directive: \"connect-src 'self' https://intranet.corp.example\"\ncontent.js:1 Uncaught (in promise) TypeError: Failed to fetch\nservice-worker.js:1 Unchecked runtime.lastError: The message port closed before a response was received.\nservice-worker.js:1 Uncaught (in promise) Error: No tab with id: 4118.\n\nmanifest v3, and this works on every other site we've tried", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "CDN origin sees a thundering herd every ten minutes and i can't work out from these logs whether it's us or them:\n\n11:00:00 GET /hls/8812/master.m3u8 200 cache=MISS age=0 origin=142ms\n11:00:00 GET /hls/8812/master.m3u8 200 cache=MISS age=0 origin=141ms\n11:00:00 GET /hls/8812/master.m3u8 200 cache=MISS age=0 origin=188ms\n(… 1,204 identical lines in the same second …)\n11:00:01 GET /hls/8812/720p/seg_00041.ts 200 cache=HIT age=8\n11:10:00 GET /hls/8812/master.m3u8 200 cache=MISS age=0 origin=904ms\n11:10:00 GET /hls/8812/master.m3u8 500 cache=MISS origin=timeout\n\ncache-control on the playlist is max-age=600, and the players all refresh on a fixed schedule", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "extension's service worker keeps getting killed mid-sync, chrome's internals page shows:\n\nService worker registration: chrome-extension://hkpmbaflnkkcgnbjcplkflmpjeaeblnc/\nStatus: STOPPED\nRunning status: STOPPED\nLast activity: 2026-07-29 11:04:41 (32s)\nTermination reason: idle timeout after 30s\nPending events: 2 (alarm 'sync', message from tab 4118)\n\nlog before termination:\n [sync] starting, 41 clips pending\n [sync] uploaded 12/41\n [sync] worker suspended\n [sync] starting, 29 clips pending\n [sync] uploaded 9/29\n\nevery restart re-uploads the ones that were in flight", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "ingest API's public docs are a curl example and nothing else. this is what the handler accepts:\n\nPOST /v1/ingest/{stream_key}\n content-type: application/octet-stream or multipart/form-data\n headers: X-Segment-Sequence (required, monotonic per stream), X-Segment-Duration-Ms (required),\n X-Discontinuity (optional, \"1\" to mark a discontinuity), Content-MD5 (optional but checked when present)\n behaviour: out-of-order sequences within 3 are buffered for up to 2s; beyond that they are rejected with 409\n a repeated sequence with the same Content-MD5 is a no-op 200; with a different one it is a 409\n segments over 30s are rejected with 413; the stream is terminated after 3 consecutive rejections\n auth is the stream key in the path, which is why it must never appear in logs or referrer headers\n\nwrite the reference page, and be explicit about the retry semantics because every partner gets them wrong", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "player's event emitter has grown three ways to subscribe and i want one, without breaking integrators:\n\nplayer.on('ready', cb) // 3.x style, still used by everyone\nplayer.addEventListener('ready', cb) // added in 4.0 to look DOM-like\nplayer.events.subscribe('ready', cb) // added in 4.2 by someone who likes rxjs\n\ninternally all three end up in the same map, except `events.subscribe` returns an unsubscribe function and the other two don't, and `addEventListener` supports the `once` option which the others ignore", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "QoE dashboard spec from our SRE, build it in the internal console:\n\nQoE overview\n- Time range picker (15m / 1h / 6h / 24h / 7d), defaults to 1h, persists per user.\n- Four headline tiles: rebuffer ratio, startup time p95, error rate, average bitrate. Each with a delta against the previous period and a sparkline.\n- Breakdown table: by CDN edge, by ISP, by player version, switchable with a segmented control. Sortable columns, 20 rows with a \"show all\".\n- Session sampler: 20 random sessions matching the current filters, click to open a session timeline with events plotted on a time axis.\n- Live streams get a separate section with a row per stream, ordered by concurrent viewers, updating every 10 seconds.\n- Anything above the rebuffer threshold is highlighted, but the threshold is configurable and must not be hardcoded.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "live playlist TTL to 2 seconds", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "what does `scenecut: 0` cost us?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "is the outbox write in the same transaction?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "invoice PDF footer shows last year's VAT id", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "one fetch wrapper for the extension", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "month-end close produced numbers that don't tie out, and this is the reconciliation report:\n\nAccount GL Balance Subledger Difference\n1200 AR 1,204,118.42 1,204,118.42 0.00\n2100 AP 882,441.10 882,437.60 3.50\n4000 Revenue 2,118,904.00 2,118,904.00 0.00\n5000 COGS 1,441,220.18 1,441,220.18 0.00\n2200 VAT 188,412.55 188,409.05 3.50\n\nJournal 88412 posted 2026-07-31 23:59:58 by [system]\nJournal 88413 posted 2026-08-01 00:00:02 by [system]\n\nboth journals are for the same invoice batch, and the 3.50 is a rounding line that appears once in the subledger and twice in the GL", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "ADR someone wrote for the packager rewrite. does the reasoning hold up?\n\n## Context\nThe packager keeps one goroutine per live stream, holding the muxer state and the playlist in memory. At 300 streams this is fine; at 3,000 it will not be.\n\n## Decision\nMove packaging into a stateless service. Segment state goes to redis, playlists are rendered on demand from redis, and any instance can serve any stream.\n\n## Consequences\n- Horizontal scaling becomes trivial.\n- Redis becomes a hard dependency on the live path.\n- Playlist rendering moves from once per segment to once per request.\n\n## Alternatives considered\nSharding by stream id was rejected as \"operationally complex\".", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "VAT rounding helper, which is now the subject of an audit finding:\n\npublic static decimal RoundVat(decimal net, decimal rate, RoundingMode mode = RoundingMode.HalfUp)\n{\n var raw = net * rate;\n return mode switch\n {\n RoundingMode.HalfUp => Math.Round(raw, 2, MidpointRounding.AwayFromZero),\n RoundingMode.HalfEven => Math.Round(raw, 2, MidpointRounding.ToEven),\n RoundingMode.Truncate => Math.Truncate(raw * 100) / 100,\n _ => Math.Round(raw, 2)\n };\n}\n\ncredit notes pass a negative net; the default mode is used almost everywhere; and the German tax rules we're being assessed against say to round the absolute value", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "support handover notes about the extension, needs to become a real troubleshooting page:\n\n- \"extension context invalidated\" almost always means they updated the extension while a tab was open, tell them to reload the tab\n- clips not syncing: check the service worker is alive in chrome://serviceworker-internals, it dies after 30s idle and our alarm is set to 5 minutes\n- corporate networks with a strict CSP block our api entirely, there is no workaround, they need to allowlist api.lumenclip.io\n- if the popup is blank, it's usually a failed fetch of the clip list; the popup has no error state at all\n- duplicated clips happen when the worker restarts mid-upload, we dedupe server-side within an hour\n- the \"sign in again\" loop is a cookie partitioning thing on chrome 121+, resolved by opening the site once in the same profile", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "internal wiki page for the close process is three years old. reality according to the team:\n\n- close starts when the last bank statement is imported, usually the 2nd or 3rd\n- the revaluation job must run before any accruals are posted, and it's manual\n- there's a checklist in a spreadsheet that four people maintain differently\n- the \"period lock\" button doesn't stop the system journals, which is how we ended up with entries dated after the lock\n- reopening a period requires a database update, there is no UI for it\n- the whole thing takes 4-6 days and the finance team works weekends for it\n\nwrite the page as it should be, and flag the two things that are process problems rather than documentation problems", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "test project has three ways of building an invoice and every new test picks one at random:\n\nvar invoice = new Invoice { CustomerId = 1, Lines = { new InvoiceLine { Net = 100m, Vat = 19m } } };\n\nvar invoice = InvoiceBuilder.New().ForCustomer(1).WithLine(100m, TaxCode.Standard).Build();\n\nvar invoice = TestData.Invoices.Simple(); // fixture file, 4 hardcoded invoices\n\nabout 400 tests between them; the builder is the newest and the only one that computes VAT the way production does", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "finance team's list of what the legacy billing service still does, and we want it gone by december:\n\n- recurring invoice generation for 1,400 subscriptions on the old plan structure\n- the dunning schedule (3, 7, 14 days) including the emails, which use its own templates\n- revenue recognition postings, which the new service does differently and finance hasn't signed off on\n- a nightly export to the tax filing provider, in a fixed-width format nobody remembers the spec for\n- the customer portal's invoice PDF, generated by a library that only exists in that codebase\n- roughly 200 stored procedures, of which we believe 40 are actually called\n\nwhat's the order, what's the risk, and where would you cut scope", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "design doc stub for the DVR change, i want the thinking before the implementation:\n\nCurrent: DVR window is 2 hours, held as segments in the packager's memory plus S3, playlist rendered from an in-memory ring buffer.\nAsked for: 12 hours, with seeking anywhere in the window, on live streams with up to 40,000 concurrent viewers.\nConstraints: segment storage cost triples if we keep the current bitrate ladder for the whole window; the playlist for a 12-hour window is about 10,000 entries and clients parse it on every refresh; our current CDN caches playlists for 2 seconds; and a stream that restarts mid-event must not lose the earlier part of the window.", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "tax lines wrap badly at 1280px", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "docs for the ingest retry semantics", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
|
||||
{"prompt": "why is origin seeing 1200 playlist requests/s?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "packager thing again", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "invoices, the usual", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "ledger domain has accumulated three years of small decisions and is now a single project with sixty classes, no obvious seams, and a test suite that needs a database. i keep being told to \"just refactor it\", but i'd rather agree a target shape first: what the modules should be, what depends on what, and which pieces we'd move in what order without stopping feature work", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "player SDK's events table in our docs lists an event that never existed and omits the two that every integrator actually wants for quality metrics. correct the table, explain the difference between a recoverable error and a fatal one, and note which events only fire on live streams — integrators are web developers who will copy whatever we publish", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "an auditor has asked six questions about journal immutability, period locks, numbering gaps, rate sourcing, retention and attachment deletion, and answering them properly means writing the controls document we never had. work each answer out from the code rather than from what we'd like to be true, and mark anything you can't substantiate", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "segment uploader retries with a sleep of attempt seconds, which is zero on the first retry, and it retries with the same reader for live segments", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "we need a position on whether the extension should keep its own sync engine or move to the same one the web app uses", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "CDN config has the playlist TTL wrong for live and it's a two-line change, but i want a sanity check:\n\ncurrent:\n - path: \"*.m3u8\"\n cache: { ttl: 600, stale_while_revalidate: 0 }\n\nproposed:\n - path: \"/live/*/*.m3u8\"\n cache: { ttl: 2, stale_while_revalidate: 4 }\n - path: \"/vod/*/*.m3u8\"\n cache: { ttl: 86400, stale_while_revalidate: 600 }\n\nlive playlists are rewritten every 4 seconds, VOD ones never change once published, and origin currently sees about 1,200 requests per second on playlists alone", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "extension talks to the API from three places, each with its own auth handling:\n\n// content.js\nconst res = await fetch(`${API}/v1/clips`, { headers: { Authorization: `Bearer ${token}` } })\n\n// service-worker.js\nconst res = await fetch(`${API}/v1/sync`, {\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n})\n\n// popup.js\nconst token = await chrome.storage.local.get('token')\nconst res = await fetch(`${API}/v1/clips?limit=50`, { headers: { Authorization: `Bearer ${token.token}` } })\n\none of them uses cookies, two use a bearer token, and only the popup handles a 401", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "live badge needs a text label", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "QoE tiles should show a delta", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "transcode fails on 40 specific files", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "ingest API's retry semantics are the single biggest source of partner integration bugs — repeated sequences, buffering windows, when a 409 is fatal and when it isn't — and none of it is written down anywhere outside the handler. write the reference page a partner engineer could implement against without asking us a single question, including a worked example of a reconnect after a network drop", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "extension's permissions are far wider than what it does, and the store review is friday. work out the minimum set from the code, then narrow the manifest and content script matches accordingly — and tell me what functionality we lose, if any", "purpose": "planning", "secondary": "quickFix", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "what happens to an in-flight ingest when a stream key is rotated — does the session survive or drop?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "is the reconciliation method safe to call from a page that refreshes every ten seconds on an account with 300k entries", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "player's control bar hides itself after three seconds regardless of whether the pointer is still over it, and on touch devices it disappears while you're reaching for the seek bar. rework the auto-hide so it respects hover and recent touch, stays visible whenever a control has focus, and never hides while the settings menu is open", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pprof from the packager service, memory climbs until the pod is killed:\n\nShowing nodes accounting for 6.14GB, 94.12% of 6.52GB total\n flat flat% sum% cum cum%\n 3.88GB 59.51% 59.51% 3.88GB 59.51% bytes.growSlice\n 1.42GB 21.78% 81.29% 5.30GB 81.29% lumen/packager.(*Muxer).WriteSegment\n 0.61GB 9.36% 90.65% 0.61GB 9.36% lumen/packager.(*Playlist).Render\n 0.23GB 3.53% 94.18% 0.23GB 3.53% encoding/json.Marshal\n\ngoroutines: 41,882\ntop goroutine stack:\n lumen/packager.(*Session).watch\n /src/packager/session.go:141 +0x88\n created by lumen/packager.(*Manager).Start in goroutine 1\n\nwe start one session per live stream and we have about 300 live streams", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "seit dem letzten Deploy stimmen die Umsatzsteuer-Beträge bei Gutschriften nicht mehr:\n\nRechnung 88412 netto 1.000,00 USt 19% = 190,00 brutto 1.190,00 ✓\nGutschrift 88413 netto -1.000,00 USt 19% = -190,00 brutto -1.190,00 ✓\nRechnung 88420 netto 840,34 USt 19% = 159,66 brutto 1.000,00 ✓\nGutschrift 88421 netto -840,34 USt 19% = -159,67 brutto -1.000,01 ✗\n\nDie Differenz von einem Cent tritt nur bei Beträgen auf, die aus einem Bruttobetrag zurückgerechnet wurden. Betroffen sind etwa 200 Belege seit Freitag.", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "de"}
|
||||
{"prompt": "a broadcaster wants a twelve-hour DVR window and we currently do two, which sounds like a config change until you consider that the playlist becomes ten thousand entries that every client re-parses on each refresh, that keeping the full bitrate ladder for twelve hours triples our storage bill, and that a stream restarting mid-event must not lose what came before. i want the shape of a solution and the trade-offs written down before anyone starts moving segments around", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "our on-call covers ingest, packaging and delivery with alerts written by three different people, and half of them page for things that self-resolve", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the proration calculation exists four times with four different day-count conventions, and finance considers only the subscriptions one correct. consolidate onto it, work out which historical invoices would have been different under each of the others, and be explicit about whether we're correcting anything retroactively or only going forward", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a walkthrough of how an invoice becomes a journal entry, naming the services involved, would help before i touch posting", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "our clip editor's trim handles are mouse-only, they don't snap on touch, and there's no keyboard path to adjusting a trim point at all, which came up in the same accessibility review as the player controls. make the handles work with pointer events across devices, keep the 0.1 second snapping, and add the arrow-key nudging the spec asked for", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the extension's storage is split across chrome.storage.local, chrome.storage.sync and an indexeddb wrapper with no rule about what goes where, which is part of why the sign-in loop happens on some profiles. rationalise it into one layer with an explicit policy, then document the policy where the next person will find it", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "invoice list needs saved filters per user, since finance re-applies the same four every morning", "purpose": "frontendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "one more sweep", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "nightly revaluation job silently produced nothing for two currencies:\n\n[00:15:02] revaluation started, base=EUR, rates_as_of=2026-07-30\n[00:15:02] loaded 41 currencies from provider\n[00:15:03] revaluing 1,204 open items in USD ... 1,204 posted\n[00:15:07] revaluing 882 open items in GBP ... 882 posted\n[00:15:09] revaluing 118 open items in CHF ... 0 posted\n[00:15:09] revaluing 41 open items in SEK ... 0 posted\n[00:15:10] revaluation complete, 2,086 postings, 0 errors\n\nCHF and SEK rates came back from the provider as strings rather than numbers this time, and nothing complained", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "i'm meant to approve this before the release, and the retry loop bothers me:\n\nfunc (u *Uploader) Put(ctx context.Context, key string, r io.Reader) error {\n\tfor attempt := 0; attempt < 5; attempt++ {\n\t\terr := u.s3.Upload(ctx, key, r)\n\t\tif err == nil {\n\t\t\treturn nil\n\t\t}\n\t\tif errors.Is(err, context.Canceled) {\n\t\t\treturn err\n\t\t}\n\t\ttime.Sleep(time.Duration(attempt) * time.Second)\n\t}\n\treturn fmt.Errorf(\"upload %s failed after 5 attempts\", key)\n}\n\ncallers pass an *os.File for small segments and a pipe reader for live ones", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "posting service's transaction scope, which i inherited. is this doing what the comment claims?\n\n// Posts the batch atomically; either every entry lands or none do.\npublic async Task PostAsync(PostingBatch batch, CancellationToken ct)\n{\n using var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled);\n foreach (var entry in batch.Entries)\n {\n await _entries.InsertAsync(entry, ct);\n await _accounts.AdjustBalanceAsync(entry.AccountId, entry.Amount, ct);\n }\n await _outbox.EnqueueAsync(new BatchPosted(batch.Id), ct);\n scope.Complete();\n}\n\n_entries and _accounts use separate DbContext instances from DI, and _outbox writes to the same database", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "manifest for our extension, about to go through store review. anything here that will bounce?\n\n{\n \"manifest_version\": 3,\n \"name\": \"Lumen Clip\",\n \"version\": \"3.4.1\",\n \"permissions\": [\"tabs\", \"storage\", \"scripting\", \"webRequest\", \"cookies\", \"downloads\"],\n \"host_permissions\": [\"<all_urls>\"],\n \"background\": { \"service_worker\": \"service-worker.js\", \"type\": \"module\" },\n \"content_scripts\": [{ \"matches\": [\"<all_urls>\"], \"js\": [\"content.js\"], \"run_at\": \"document_idle\" }],\n \"externally_connectable\": { \"matches\": [\"*://*.lumenclip.io/*\"] },\n \"content_security_policy\": { \"extension_pages\": \"script-src 'self' 'wasm-unsafe-eval'; object-src 'self'\" }\n}\n\nwe only actually need to read the page title and the video element's src", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "cache rules from our CDN config, and origin load has doubled since we shipped them:\n\nrules:\n - path: \"*.m3u8\"\n cache: { ttl: 600, stale_while_revalidate: 0, key: [path, query] }\n - path: \"*.ts\"\n cache: { ttl: 86400, stale_while_revalidate: 60, key: [path] }\n - path: \"/api/*\"\n cache: { ttl: 0 }\n - path: \"*\"\n cache: { ttl: 300, key: [path, query, header:Authorization] }\n\nlive playlists change every 4 seconds; VOD playlists never change after publish; both match the first rule", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "这是我们对账服务的核心方法,接手之后一直没敢动,先帮我看看它到底在做什么、有没有隐患:\n\npublic decimal Reconcile(int accountId, DateTime asOf)\n{\n var entries = _db.JournalEntries\n .Where(e => e.AccountId == accountId && e.PostedAt <= asOf)\n .ToList();\n var balance = entries.Sum(e => e.Amount);\n var snapshot = _db.Balances.FirstOrDefault(b => b.AccountId == accountId && b.AsOf == asOf.Date);\n if (snapshot == null)\n {\n _db.Balances.Add(new Balance { AccountId = accountId, AsOf = asOf.Date, Amount = balance });\n _db.SaveChanges();\n }\n else if (snapshot.Amount != balance)\n {\n snapshot.Amount = balance;\n _db.SaveChanges();\n }\n return balance;\n}\n\n这个方法在报表页面上每次刷新都会被调用,账户的分录有几十万条", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "zh"}
|
||||
{"prompt": "notas de la sesión de diseño, hay que convertirlas en el documento que se manda a los clientes:\n\n- el nuevo modelo de facturación recurrente permite ciclos mensuales, trimestrales y anuales\n- el prorrateo se calcula por días naturales, no por días laborables\n- si un cliente cambia de plan a mitad de ciclo se emite una nota de crédito por la parte no consumida\n- los impuestos se recalculan siempre en la fecha de emisión, nunca en la fecha del cambio\n- las facturas fallidas se reintentan tres veces: a los 3, 7 y 14 días\n- tras el tercer intento la suscripción pasa a estado suspendido, no cancelado\n- la reactivación no genera una factura nueva, se reintenta la pendiente\n\nel público son administradores financieros, no técnicos", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "es"}
|
||||
{"prompt": "changelog for the player SDK, from the commits since 4.2:\n\n88f21c0 feat(abr): buffer-aware level selection\n41ba190 fix(hls): handle discontinuity tags in live playlists\nc0aa774 fix(abr): don't drop more than one level per switch\n2e91b45 feat(api): expose `currentLevel` and `levels` on the player instance\naa30f19 fix(ios): audio desync after backgrounding\n9c1d004 perf: reuse the segment buffer instead of allocating per segment\n4410bb7 chore: drop support for Safari 15\nb77e910 fix(dvr): seeking past the live edge no longer stalls\n30cc219 docs: correct the events table\n\nintegrators are web developers; breaking changes need to be obvious and there is one", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "auditor's question list arrived, and answering it well is basically writing the doc we never wrote:\n\n1. How are journal entries prevented from being modified after posting?\n2. Which roles can post to a closed period, and how is that recorded?\n3. Describe the numbering scheme for journals and how gaps are prevented.\n4. How are foreign currency rates sourced, stored and evidenced?\n5. What is the retention period for the audit trail, and where is it stored?\n6. Can a user delete an attachment from a posted invoice?\n\nanswer each from the code, and write it as a controls document rather than a list of replies", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "runbook for a stuck live stream is currently a slack thread. what we actually do:\n\n- viewer reports a stall; first check is the packager session for that stream id in grafana\n- if `segment_lag_seconds` is above 12 the ingest side is behind, and that's the encoder's problem, not ours\n- if lag is fine but the playlist isn't advancing, the muxer goroutine is wedged; `lumenctl session restart <id>` recovers it in about 8 seconds with a visible glitch\n- never restart the whole packager pod during a live event, you take out every stream on that instance\n- if redis latency is above 5ms the playlist renders will queue and everything looks broken\n- after any restart, check the DVR window is intact before telling the customer it's fixed", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "o texto atual do aviso de descontinuação está mau e sai amanhã:\n\n\"A partir de 1 de Outubro a versão 3 da API de ingestão deixará de estar disponível. Os clientes devem migrar para a versão 4. A versão 4 tem várias diferenças. Contacte o suporte para mais informações.\"\n\nfactos: a v3 aceita segmentos até 30s, a v4 até 10s; a v3 usa a chave no caminho, a v4 usa um cabeçalho; a v4 exige o Content-MD5; existem 340 clientes na v3, dos quais 12 representam 80% do tráfego; a data limite é firme por causa do desligamento do CDN antigo\n\nreescreve o aviso e o email para os 12 clientes grandes", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "pt"}
|
||||
{"prompt": "SDK's events table in the docs versus what the code emits. reconcile them into one correct table:\n\ndocs list: ready, play, pause, seeking, seeked, levelswitch, error, ended\ncode emits: ready, play, pause, seeking, seeked, levelSwitching, levelSwitched, error, fatalError, ended, rebufferStart, rebufferEnd, dvrWindowChanged\n\nnotes: `levelswitch` in the docs never existed; `error` is non-fatal and recoverable while `fatalError` tears down the player; `rebufferStart`/`rebufferEnd` were added in 4.1 and are what everyone actually wants for QoE metrics; `dvrWindowChanged` only fires on live streams", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "dotnet build warnings, treat-warnings-as-errors goes on next sprint:\n\n/src/Ledger.Posting/PostingService.cs(88,17): warning CS8602: Dereference of a possibly null reference.\n/src/Ledger.Posting/PostingService.cs(212,9): warning CS4014: Because this call is not awaited, execution of the current method continues before the call is completed.\n/src/Ledger.Domain/Money.cs(41,26): warning CS0659: 'Money' overrides Object.Equals(object o) but does not override Object.GetHashCode()\n/src/Ledger.Api/Controllers/InvoicesController.cs(66,13): warning CS0168: The variable 'ex' is declared but never used\n/src/Ledger.Infrastructure/RateProvider.cs(22,32): warning CS8618: Non-nullable property 'Client' must contain a non-null value when exiting constructor\n\n5 warnings, and CS4014 in a posting service is the one keeping me awake", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "npm audit on the extension, and the store review is on friday:\n\n# npm audit report\n\nesbuild <=0.24.2\nModerate: esbuild enables any website to send requests to the development server\nfix available via `npm audit fix --force`\nWill install [email protected], which is a breaking change\n\nws 8.0.0 - 8.17.0\nHigh: ws affected by a DoS when handling a request with many HTTP headers\nfix available via `npm audit fix`\n\nzod 3.22.0 - 3.23.7\nLow: inefficient regular expression complexity\nfix available via `npm audit fix`\n\n3 vulnerabilities (1 low, 1 moderate, 1 high)\n\nesbuild is a devDependency, ws is used by the dev server only, zod ships in the bundle", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "nginx config for the origin, someone noticed this while debugging the herd:\n\nproxy_cache_path /var/cache/nginx/segments levels=1:2 keys_zone=segments:100m max_size=200g inactive=24h;\n\nupstream packager {\n server packager-0.packager:8080 max_fails=3 fail_timeout=10s;\n server packager-1.packager:8080 max_fails=3 fail_timeout=10s;\n keepalive 64;\n}\n\nlocation ~ \\.m3u8$ {\n proxy_pass http://packager;\n proxy_cache off;\n proxy_read_timeout 5s;\n add_header Cache-Control \"max-age=600\";\n add_header X-Cache-Status $upstream_cache_status;\n}\n\nlocation ~ \\.ts$ {\n proxy_pass http://packager;\n proxy_cache segments;\n proxy_cache_valid 200 1d;\n proxy_cache_lock on;\n proxy_cache_lock_timeout 5s;\n proxy_cache_use_stale updating error timeout;\n add_header Cache-Control \"public, max-age=86400, immutable\";\n add_header X-Cache-Status $upstream_cache_status;\n}\n\nthe playlist location has no proxy_cache_lock, no upstream caching at all, and a 5 second read timeout that the packager occasionally exceeds under load", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "github actions matrix for the .NET service, and the windows leg has been broken for a month:\n\nstrategy:\n matrix:\n os: [ubuntu-latest, windows-latest]\n dotnet: ['8.0.x', '9.0.x']\nsteps:\n - uses: actions/setup-dotnet@v4\n with: { dotnet-version: ${{ matrix.dotnet }} }\n - run: dotnet test --logger trx --collect:\"XPlat Code Coverage\"\n\nfailure on windows:\n error MSB4019: The imported project \"C:\\Program Files\\dotnet\\sdk\\9.0.100\\Sdks\\Microsoft.NET.Sdk\\Sdk.props\" was not found\n error NU1101: Unable to find package Ledger.Testing.Fixtures\n\nnobody deploys to windows and nobody has fixed it either", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "两个环境的转码参数不一样,线上的画质投诉可能就是这个原因:\n\n# staging/transcode.yaml\ntranscode:\n preset: slow\n crf: 21\n keyint: 48\n min_keyint: 48\n scenecut: 40\n bframes: 3\n audio_codec: aac\n audio_bitrate: 192k\n ladder: [240p, 480p, 720p, 1080p]\n two_pass: true\n\n# production/transcode.yaml\ntranscode:\n preset: veryfast\n crf: 26\n keyint: 250\n min_keyint: 25\n scenecut: 0\n bframes: 0\n audio_codec: aac\n audio_bitrate: 96k\n ladder: [240p, 480p, 720p, 1080p]\n two_pass: false\n\n# 相关指标(过去 7 天)\n 平均转码时长/分钟素材:staging 44s,production 11s\n 画质投诉工单:本月 38 件,去年同期 4 件\n 出网流量:同比 -22%\n\n线上是去年为了赶一个活动临时改的,之后就没人动过,也没有人记得当时的取舍", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "zh"}
|
||||
{"prompt": "feature flag defaults across our three services, one of these is not like the others:\n\n# packager/config/flags.yaml\nflags:\n buffer_aware_abr: true\n redis_playlists: false\n dvr_enabled: true\n multi_cdn_selection: false\n segment_reuse_buffer: true\n\n# api/config/flags.yaml\nflags:\n buffer_aware_abr: true\n redis_playlists: true\n dvr_enabled: true\n multi_cdn_selection: false\n segment_reuse_buffer: true\n\n# player-config service — what clients actually receive\nflags:\n buffer_aware_abr: false\n redis_playlists: false\n dvr_enabled: true\n multi_cdn_selection: false\n segment_reuse_buffer: false\n\n# experiment dashboard, week 3\n rebuffer ratio, control: 1.82%\n rebuffer ratio, treatment: 1.81%\n sessions in treatment: 412,118\n\nwe've been measuring the ABR change for three weeks and wondering why the numbers didn't move", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "same currency conversion appears in five services with four different rounding behaviours. one implementation, please:\n\n// billing\nvar converted = Math.Round(amount * rate, 2, MidpointRounding.AwayFromZero);\n\n// reporting\nvar converted = decimal.Round(amount * rate, 2);\n\n// api\nvar converted = (decimal)Math.Round((double)(amount * rate), 2);\n\n// export\nvar converted = Math.Floor(amount * rate * 100) / 100;\n\n// legacy\nvar converted = amount * rate; // rounded at render time, sometimes\n\nthe billing one is the behaviour the auditors signed off on", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "this session manager holds four responsibilities and a mutex. i want the same behaviour, decomposed:\n\ntype Manager struct {\n\tmu sync.Mutex\n\tsessions map[string]*Session\n\tmuxers map[string]*Muxer\n\tplaylists map[string]*Playlist\n\tuploads map[string]*Uploader\n\tmetrics *Metrics\n}\n\nfunc (m *Manager) Start(id string) error {\n\t// creates the session, muxer, playlist and uploader\n\t// starts a goroutine per session that watches for segments\n\t// updates metrics inline\n\t// on error, tears down whichever of the four were created\n}\n\nfunc (m *Manager) Stop(id string) error { /* the reverse, holding mu the whole time */ }\n\nStop holds the mutex while waiting for goroutines to finish, which is why a slow upload blocks every other stream", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "controller does validation, mapping, business logic and persistence. same API contract, better shape:\n\n[HttpPost]\npublic async Task<IActionResult> Post(InvoiceRequest req)\n{\n if (req.Lines == null || req.Lines.Count == 0) return BadRequest(\"lines required\");\n if (req.Lines.Any(l => l.Quantity <= 0)) return BadRequest(\"quantity must be positive\");\n var customer = await _db.Customers.FindAsync(req.CustomerId);\n if (customer == null) return NotFound();\n var invoice = new Invoice { CustomerId = customer.Id, IssuedAt = DateTime.UtcNow };\n foreach (var l in req.Lines)\n {\n var net = l.Quantity * l.UnitPrice;\n var vat = RoundVat(net, TaxTable.RateFor(customer.Country, l.TaxCode));\n invoice.Lines.Add(new InvoiceLine { Net = net, Vat = vat, ... });\n }\n invoice.Total = invoice.Lines.Sum(x => x.Net + x.Vat);\n _db.Invoices.Add(invoice);\n await _db.SaveChangesAsync();\n await _mail.SendInvoiceAsync(invoice);\n return CreatedAtAction(nameof(Get), new { id = invoice.Id }, InvoiceDto.From(invoice));\n}", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "quatre variantes du même calcul de prorata dans le code de facturation :\n\n// subscriptions/proration.cs\nvar days = (end - start).Days;\nvar factor = (decimal)days / DateTime.DaysInMonth(start.Year, start.Month);\n\n// billing/upgrade.cs\nvar factor = (decimal)(end - start).TotalDays / 30m;\n\n// api/preview.cs\nvar factor = (decimal)(end - start).Days / (decimal)(cycleEnd - cycleStart).Days;\n\n// legacy/prorate.cs\nvar factor = Math.Round((decimal)(end - start).Days / 30.4375m, 4);\n\ncelle de subscriptions est celle que la finance considère correcte", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "fr"}
|
||||
{"prompt": "quarterly input from the business, and i need to turn it into something sequenced:\n\n- a broadcaster wants live DVR with a 12-hour window, currently we do 2 hours\n- finance wants us off the legacy billing service by december, it's the last thing on the old database\n- the player SDK has to support the new codec by Q1 or we lose a deal\n- support says the top three tickets are all about the extension's sign-in loop\n- the packager rewrite is half done and blocked on a decision about redis\n- one backend engineer leaves in september, the replacement starts in november\n- we have a CDN contract renewal in october that changes our cost model per GB", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "ticket that needs a plan rather than an implementation:\n\nLMN-812 — Multi-CDN delivery\nWe currently deliver from a single CDN. Contract renewal in October gives us an opportunity to go multi-CDN, and one large customer has asked for it explicitly after our June incident. Requirements as understood: per-session CDN selection, ability to shift traffic during an incident within minutes, consistent QoE measurement across providers, and no change to how customers embed the player. Unknowns: token authentication differs between the two candidate providers, cache warming would double our origin egress, and our QoE metrics are currently derived from one provider's logs.", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "design handoff for the clip editor in the extension popup, build it:\n\nClip editor (popup, 400x600)\n- Video preview at the top, 16:9, poster from the captured frame, no controls beyond play/pause.\n- Trim bar under the preview: 48px tall, waveform if we have audio, two draggable handles, current position as a 2px line. Handles snap to 0.1s and show a time label while dragging.\n- Title field: single line, autofocused, character counter at 80, error state past 100.\n- Tag input: chips with an X, autocomplete from the user's recent tags, enter or comma commits.\n- Footer: \"Save clip\" primary, \"Discard\" text button, both disabled while uploading, with a determinate progress bar replacing the footer during upload.\n- Offline: the editor still works, the save button says \"Save for later\" and the clip queues.\n- Keyboard: space toggles playback, arrow keys nudge the nearest handle by 0.1s, shift+arrow by 1s.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "UI-Abnahme für die Rechnungsansicht, bitte umsetzen:\n\nRechnungsansicht (Desktop, ab 1280px)\n- Kopfbereich: Rechnungsnummer (20px, halbfett), Status-Badge rechts daneben (Entwurf / Gebucht / Storniert / Überfällig).\n- Zwei Spalten: links Rechnungsempfänger, rechts Datum, Fälligkeit, Zahlungsbedingungen. Beschriftungen 12px grau, Werte 14px.\n- Positionstabelle: Menge rechtsbündig, Einzelpreis rechtsbündig, Steuersatz zentriert, Betrag rechtsbündig und fett. Zeilenhöhe 40px.\n- Summenblock rechts unten: Netto, Steuer je Satz einzeln aufgeführt, Brutto in 18px halbfett.\n- Bei stornierten Rechnungen liegt ein diagonales Wasserzeichen über der Tabelle, die Werte bleiben lesbar.\n- Aktionen oben rechts: Buchen, PDF, Stornieren. Buchen ist deaktiviert, wenn die Periode geschlossen ist, mit Tooltip.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "de"}
|
||||
{"prompt": "accessibility report for the player's controls, from a customer's audit:\n\n- The play/pause button toggles its icon but not its accessible name, so it always announces \"play\".\n- The seek bar is a div with mouse handlers; keyboard users cannot seek at all.\n- Volume is a custom slider with no role, no aria-valuenow, and no keyboard support.\n- The captions menu opens on hover only and is unreachable by keyboard.\n- Focus is never visible on any control; the outline is removed globally in the SDK's stylesheet.\n- The live indicator conveys state with a red dot and no text.\n- When an error occurs, the message appears visually but is not announced.\n\nour SDK ships these controls to every customer, so whatever we do here lands everywhere", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "partner integration spec that we have to implement on our side:\n\nPOST /v1/webhooks/tax-filing\n they call us when a filing is accepted or rejected by the tax authority\n headers: X-Filing-Signature (HMAC-SHA512 over the raw body with a shared secret, hex, lowercase)\n body: { filing_id, period, status: \"accepted\"|\"rejected\"|\"partially_accepted\", messages: [{code, severity, text}], received_at }\n we must respond 200 within 5 seconds; they retry for 72 hours with exponential backoff\n a rejected filing must move the period back to open and notify the finance team\n partially_accepted means some documents were rejected; those ids come in messages with severity=error\n duplicate deliveries are expected and must be idempotent on filing_id + status\n their sandbox signs with a different secret and sends `X-Filing-Environment: sandbox`", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "schema we agreed for stream credentials, now it needs building:\n\nCREATE TABLE stream_keys (\n id uuid PRIMARY KEY,\n tenant_id uuid NOT NULL,\n stream_id uuid NOT NULL REFERENCES streams(id) ON DELETE CASCADE,\n key_hash bytea NOT NULL,\n prefix text NOT NULL,\n created_at timestamptz NOT NULL DEFAULT now(),\n expires_at timestamptz,\n revoked_at timestamptz,\n last_used_at timestamptz,\n UNIQUE (stream_id, prefix)\n);\n\nkeys are shown once at creation, validated on every ingest request (about 400/s at peak), rotate without interrupting an in-flight stream, and the ingest path must not do a database round trip per segment", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "crf back to 21 in prod", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
|
||||
{"prompt": "zod bump before store review", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "core", "lang": "en"}
|
||||
{"prompt": "drop the windows leg from CI", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "`buffer_aware_abr` is false in player-config", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "remove the `cookies` permission from the manifest", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "GetHashCode missing on Money", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "proxy_cache_lock on the playlist location", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "das Sync-Intervall der Extension auf 60s", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "de"}
|
||||
{"prompt": "unawaited task in PostingService", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "waveform under the trim bar", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "focus outlines are removed globally", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "cancelled invoices need a watermark", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "popup is blank when the fetch fails", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a short decision note about why we're keeping the DVR window in S3 rather than memory", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "our stream key validation is described in the design doc as a constant-time comparison against a hash, and i'd like that verified rather than believed, along with what the ingest path does when the cache is cold and whether a revoked key can still be used by an in-flight session for some window", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the dunning schedule is 3, 7 and 14 days in the code and 3, 7 and 10 on the customer-facing pricing page, and support has been quoting whichever they saw last. work out which one finance actually agreed, change the other, and check whether any in-flight dunning runs would shift as a result", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "清晰度切换的菜单太窄了", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "zh"}
|
||||
{"prompt": "seek bar can't be used with a keyboard", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "trim handles don't snap on touch", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "`Manager.Stop` shouldn't hold the mutex", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pull the VAT maths out of the controller", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "`levelSwitching` naming across the SDK", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "InvoiceBuilder everywhere in the tests", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "inline the one-line `RateFor` wrapper", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "split the packager's session watcher", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "release notes for player SDK 4.3", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "nota interna sobre el cierre de periodo", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "es"}
|
||||
{"prompt": "document what `X-Discontinuity` does", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "summarise the DVR design for the team", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "PR description for the ABR change", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "welche Berechtigungen braucht die Extension wirklich?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "de"}
|
||||
{"prompt": "can the uploader retry a consumed pipe?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "walk me through the dunning schedule", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "credit notes are a cent off", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "clips upload twice after a worker restart", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "la revalorización nocturna no postea CHF", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "es"}
|
||||
{"prompt": "signed playback URLs, one hour expiry", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "scope the multi-CDN work, then start on selection", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "map the legacy billing exit, then take the first slice", "purpose": "planning", "secondary": "refactor", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "carry on from friday", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "crisper", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "make it not embarrassing", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "weiter mit dem Player", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "de"}
|
||||
{"prompt": "sort the extension out", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "do what makes sense here", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "pick this back up please", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "月末のあれ、進めておいて", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "ja"}
|
||||
{"prompt": "rest of the ticket", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "start on the next bit", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "packager rewrite is half finished and stalled on whether playlists live in redis, which nobody wants to decide because it makes redis a hard dependency on the live path. lay out the options properly — stateless with redis, sharded by stream id with consistent hashing, or leaving it as it is and scaling vertically — with what each costs us operationally at three thousand concurrent streams rather than three hundred", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "finance wants us off the legacy billing service by december and it still owns recurring invoicing, dunning, revenue recognition, the tax export and the PDF generator, plus two hundred stored procedures of which maybe forty are live. i need a sequenced exit plan that keeps invoicing running every month it's being migrated, with an honest view of what we should refuse to port and simply rebuild instead", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "CDN contract renews in october and the cost model changes per gigabyte, which makes the multi-CDN question urgent rather than theoretical. i'd like to understand what per-session CDN selection would require of us — token differences between providers, cache warming doubling origin egress, and the fact that our QoE numbers currently come from one provider's logs — before we negotiate anything", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
|
||||
{"prompt": "extension, our player SDK and our web app all reimplement session handling because they were written by different people in different years, and the sign-in loop bug exists in two of them. before touching any code i want a view on whether these should share a package, what that package would own, and whether the browser constraints make it impossible in practice", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "close process takes finance four to six days and the wiki page describing it is three years out of date, which means new joiners learn it by shadowing someone in a bad mood. write the current process properly, in order, with who does what, and flag clearly the two steps that are broken processes rather than missing documentation", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "we're deprecating v3 of the ingest API on the first of october and the current notice is four sentences that tell customers nothing actionable. write the replacement: what changes concretely, what a migrating customer has to do, why the date is firm, and a separate shorter email for the twelve customers who account for most of the traffic", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "transcode ladder and encoder settings differ between staging and production because of a rush change last year, which is probably why we get quality complaints that we can never reproduce internally. before changing anything, read both configs and the ladder logic and tell me what each difference actually does to output quality and cost", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "ADR proposing a stateless packager argues that sharding by stream id is \"operationally complex\" and moves on, which feels like the interesting option being waved away. read the ADR against the code and tell me whether its consequences section is honest, particularly about rendering playlists on every request instead of once per segment", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "VAT rounding helper defaults to half-up on the raw product, and credit notes pass a negative net through it, which the German rules we're being assessed against apparently handle differently. i want to understand exactly what the current code does with negative amounts before we decide whether the audit finding is right", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "packager's session manager holds one mutex across creation, teardown and metrics, and Stop waits for goroutines while holding it, which is why one slow upload stalls every other stream on the instance. decompose it so the lifecycle, the muxing and the uploading are separable, with the same externally observable behaviour and no new races", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "currency conversion exists five times across our services with four different rounding behaviours, and only the billing one has been signed off by the auditors. consolidate onto that behaviour, update every caller, and where a service's numbers will change as a result, list exactly which reports are affected so finance hears it from us first", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "invoices controller does validation, mapping, tax calculation, persistence and email in one method, and the tax part is the bit that's actually subtle. pull it apart without changing the API contract or the emails anyone receives, and make the tax calculation testable on its own because that's where the audit findings keep landing", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "internal console, the customer portal and the extension popup each have their own copy of the clip list rendering, and they've drifted enough that the same clip shows three different durations. work out which one is right, unify them behind a shared component, and keep each surface's styling as it is today", "purpose": "refactor", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "playback stalls for about four percent of sessions on one edge, that edge reports perfect availability, and our own telemetry shows the player dropping two levels and still timing out. i don't know whether to look at the CDN, the ABR logic or our segment sizes, and i'd like someone to work through it properly rather than guess", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
|
||||
{"prompt": "month-end didn't tie out by three fifty, and the difference traces to a rounding line that appears once in the subledger and twice in the general ledger, from two system journals posted two seconds either side of midnight. work out how that duplicate arises before we adjust anything, because finance will ask whether it's happened before", "purpose": "debugging", "secondary": "review", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "QoE dashboard has a hardcoded rebuffer threshold, four tiles with no comparison to the previous period, and a breakdown table that can't be sorted, which is why the SRE team still uses a spreadsheet. bring it up to the spec they wrote, and make the threshold configurable per environment rather than baked into the bundle", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "before we build multi-CDN i want the selection strategy designed — how a session picks an edge, how we shift traffic during an incident, how QoE is measured consistently across providers — and then the selection service itself stood up behind a flag so we can shadow it against real traffic", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.9, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "ledger project needs breaking up and i'd rather agree the module boundaries with you first, then have you actually move the first module — posting, probably — so we can see whether the boundary survives contact with the build", "purpose": "planning", "secondary": "refactor", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "les règles de cache du CDN sont incohérentes entre le direct et le VOD, et l'origine en souffre. j'aimerais d'abord une vraie stratégie de cache écrite noir sur blanc, puis la mise à jour de la configuration en conséquence", "purpose": "planning", "secondary": "quickFix", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "fr"}
|
||||
{"prompt": "tax filing webhook needs building and there are decisions in it we haven't made — what a rejected filing does to a closed period, who gets notified, whether partially accepted reopens anything. decide those with me, write them down, then implement the handler", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "support answers the same six extension questions every week from a slack thread that scrolls away. write the troubleshooting page properly, and while you're in it, give the popup an actual error state instead of rendering blank when the clip list fails", "purpose": "writing", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "live-stream runbook lives in one engineer's memory and a slack thread. write it as a proper page, and confirm from the code whether `lumenctl session restart` really is safe mid-event or whether that's folklore", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.55, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "escribe la documentación del nuevo modelo de facturación recurrente para los clientes, y comprueba en el código si el prorrateo se calcula realmente por días naturales como decimos", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "es"}
|
||||
{"prompt": "player SDK has three subscription styles that have to keep working, and only one of them returns an unsubscribe function. unify the internals behind one mechanism, then document which style we recommend and what the others do differently", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "test project builds invoices three different ways and only the builder computes VAT like production does. move everything onto the builder, then write the short note on test data conventions so the next person doesn't add a fourth", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "deadlock in the posting service happens twice a week and everyone has a theory. i want an actual diagnosis from the deadlock graph and the code, and then the ordering fixed so it can't recur", "purpose": "debugging", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": ".NET solution has three projects that all define a `Money` type, and the conversions between them are implicit", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "extension's storage layer mixes chrome.storage.local, sync and an indexeddb wrapper with no rule about which goes where", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "rename the `Trip`-era types in the packager, they date from before we called them streams", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "config is read from appsettings, environment variables and a database table, with different precedence per service", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "SDK exports 40 symbols from its index and most of them are internal helpers nobody should import", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "i'd like to understand how period locking actually prevents postings, because system journals seem to ignore it", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "someone should look at whether our ABR change can get stuck at a low level once it drops, given it only steps one at a time", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "why does the extension's service worker restart mid-sync, and is our alarm interval the reason", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "could you explain what our cache key configuration does with the Authorization header on the catch-all rule", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "is it expected that our playlist requests bypass the upstream cache entirely, or has someone misread the nginx config", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "what does the packager actually do when redis is slow — does it queue, drop, or block the live path", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "docs/ingest.md still documents the 30 second segment limit that we lowered to 10 in v4", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "内部向けに、配信の障害対応フローを一枚にまとめてほしい", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "ja"}
|
||||
{"prompt": "xml docs on the posting service describe atomicity guarantees that the code doesn't provide", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "write the store listing description for the extension, the current one is a feature list nobody reads", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "health check on the packager returns healthy while every session is wedged, which is how the outage lasted an hour", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "dunning emails go out at 3, 7 and 14 days in code but the customer-facing page says 3, 7 and 10", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "segment upload retries have no jitter, so a CDN blip produces a perfectly synchronised retry storm", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "发票导出的 CSV 用的是逗号分隔,德国客户打开全是乱的,能不能按区域设置切换", "purpose": "quickFix", "secondary": "backendImpl", "mixed": true, "difficulty": 0.4, "slice": "mixed", "lang": "zh"}
|
||||
{"prompt": "live edge drifts about two seconds later every hour on long streams, and restarting the session resets it", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "one customer's invoices occasionally get two numbers, and it correlates with them clicking post twice quickly", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "how should we structure the SDK's public surface now that we support three subscription styles and can't break any of them", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "what's the right approach to storing tax rates that change by jurisdiction and date, given we currently hardcode a table", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
|
||||
{"prompt": "an endpoint that returns the DVR window's start and end for a live stream, cheap enough for the player to poll", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "period locking needs to apply to system journals too, with an explicit override that records who used it", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a job that expires stream keys that haven't been used in ninety days, with a warning email a week before", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "ingest path should validate stream keys from a cache rather than the database on every segment", "purpose": "backendImpl", "secondary": "review", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "clip uploads need resumable support, because the extension's worker dies every thirty seconds of idle", "purpose": "backendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "anything that stops the pager going off", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "doc, finish it off", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "quality menu is too narrow", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "invoice list renders every row's tax breakdown eagerly, which on a month with four thousand invoices means the page takes eight seconds to become interactive and finance has started exporting to excel instead. virtualise the table, keep the column layout and the sticky totals row exactly as they are, and make sure the print stylesheet still produces the full list", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "player's controls fail almost every item in a customer's accessibility audit — no accessible name on the play toggle, a seek bar that's a div with mouse handlers, a volume slider with no role, and focus outlines removed globally in our stylesheet. this ships to every customer, so fix it properly and tell me which parts of the design will visibly change", "purpose": "frontendImpl", "secondary": "writing", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "nobody can tell me what happens to a live session when the packager loses its redis connection for ten seconds — whether playlists go stale, the muxer blocks, or viewers see an error — and the code paths for it are spread across three files. work through it and give me the actual behaviour, including what the viewer experiences at each stage", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
|
||||
{"prompt": "stream keys are in the ingest request path, which means they land in access logs, referrer headers and any proxy in between, and security noticed this morning. move them to a header for v4, keep the path form working until october's deprecation, and scrub the existing logs' retention as far as we're able", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
|
||||
{"prompt": "the changelog for the ingest API has no entry for the stream key moving from the path to a header, which is the most disruptive change we've made in two years. write it, plus the migration note explaining what a client has to change and how to tell whether they're still on the old form", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "we need the ingest path to validate stream keys without a database round trip per segment, which at four hundred segments a second is currently a meaningful share of our database load. cache the validated keys with a sensible invalidation on revoke, and make sure a revoked key stops working within seconds rather than whenever the cache happens to expire", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "our tax rate table is hardcoded per country in a static class, which was fine when we sold in three countries and is now the reason every rate change is a deploy. i'd like the approach agreed first — effective-dated rows, jurisdiction hierarchy, where the source of truth lives — and then the schema and loader built", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
|
||||
{"prompt":"Corrige le timeout de EquinoxBasilRunnerService","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"fr"}
|
||||
{"prompt":"// projects/equinox/cmd/exporter/main.py\nfinal class EquinoxDriftConsoleFlowCoordinator {\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\nConsolidate EquinoxDriftConsoleFlow'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.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45111: retire the legacy replay path for EquinoxNimbusFormFlow\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 EquinoxNimbusFormFlow 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":"A copied hex color in EquinoxAcornWidgetStore 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 deliverables are holding up EquinoxCinderAuthCoordinator. First, assess ownership and failure handling in projects/equinox/workers/thumbnail/consumer.ex. In the same workstream, capture the contract and rollback note for consumers. The relevant starting point is projects/equinox/workers/thumbnail/consumer.ex, which follows PostgreSQL 17 conventions and currently suffers from timestamps rendered one day ahead near UTC midnight. Preserve cancellation and back-pressure semantics.\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":"review","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-45115\n\n08:02 deploy EquinoxCinderAuthFlow 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\nMap a safe route from the current EquinoxCinderAuthFlow behavior to the desired one, comparing two approaches and naming telemetry, failure drills, and rollback responsibility.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Background: # projects/equinox/pkg/cache/lease.rs\n[worker.equinoxravensessionflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.equinoxravensessionflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.equinoxravensessionflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.EquinoxRavenSessionFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-45112\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/equinox/pkg/cache/lease.rs. 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":"EquinoxCedarPolicyCoordinator: clean up that old path","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Does EquinoxWrenExportStore 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.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxBeaconStoreCoordinator: polish the last piece","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Question: Incident timeline — INC-45119\n\n08:02 deploy EquinoxBasilRunnerFlow 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 EquinoxBasilRunnerFlow 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.4,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Design handed over a final pass for EquinoxCinderAuthStore, and the basic data flow in projects/equinox/workers/thumbnail/consumer.ex already works. 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- preserve cancellation and back-pressure semantics\n- stay compatible with the existing PostgreSQL 17 deployment\n- keep the work scoped to EquinoxCinderAuthStore and its direct tests\n\nSeveral teams work in this identity, Rust CLI, Vue 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":"A flaky failure around EquinoxMoonlitSDKService survived three attempted fixes, so I want the evidence and invariants traced before another patch lands. Correlate the queue, scheduler, storage, and shutdown paths; form competing hypotheses, identify evidence for each, and narrow the root cause before proposing a code change.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxMoonlitSDKService\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Em projects/equinox/workers/thumbnail/consumer.ex, o EquinoxCoralUploadStore tem um problema intermitente no fluxo de PostgreSQL 17. Separe responsabilidades e remova duplicação sem mudar API, wire values, ordem ou comportamento observável.\n\nRestrições:\n- continuar com PostgreSQL 17\n- preservar compatibilidade e cancelamento\n- limitar a mudança ao EquinoxCoralUploadStore","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"boundary","lang":"pt"}
|
||||
{"prompt":"Please resist widening this one: EquinoxCraneWorkspaceService works, but staging still carries a setting that production corrected last month. Change the staging timeout from 15 seconds to 30, adjust the adjacent assertion that encodes that value, and avoid unrelated formatting, renames, dependency bumps, or cleanup.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxCraneWorkspaceService\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Observation: Two deliverables are holding up EquinoxRavenSessionCoordinator. First, assess ownership and failure handling in projects/equinox/crates/index/src/segment.rs. In the same workstream, capture the contract and rollback note for consumers. The relevant starting point is projects/equinox/crates/index/src/segment.rs, which follows WebGPU conventions and currently suffers from an empty state that flashes before cached data arrives. Preserve cancellation and back-pressure semantics.\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":"review","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"EquinoxNovaPickerFlow 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.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"On compact widths, EquinoxSlateEditorService's filter drawer should slide over the results, trap focus, and expose a visible close control without changing the desktop layout.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45130: retire the legacy replay path for EquinoxAtlasSearchFlow\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 EquinoxAtlasSearchFlow 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":"Extract EquinoxIrisBatchService's parsing loop","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Check EquinoxEmberRelayStore's trust boundary","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"projects/equinox/infra/modules/edge/main.tf now contains EquinoxPrismCacheFlow'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.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Constraint: Ticket OPS-45144: retire the legacy replay path for EquinoxPineMetricsFlow\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 EquinoxPineMetricsFlow, 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":"Pin EquinoxDriftConsoleService's SQLite dependency","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxFernSnapshotCoordinator: smooth out this interaction","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"EquinoxEchoRegistryStore leaks tasks on shutdown","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Compare the old and new EquinoxCedarPolicyService adapters for ordering, error mapping, and shutdown guarantees; report semantic differences without proposing edits.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"$ pnpm test --filter EquinoxJuniperCLIFlow\n RUN v3.2.4 /workspace/apps/console\n × EquinoxJuniperCLIFlow > restores a suspended upload after reconnect 1543ms\n → expected cursor \"seg-0184\" to equal \"seg-0183\"\n\nAssertionError: expected 'seg-0184' to deeply equal 'seg-0183'\n at packages/sync/test/reconnect.spec.ts:188:31\n at async withFakeClock (packages/testkit/clock.ts:72:9)\n at async Promise.all (index 1)\n\nstdout:\n session=45143 phase=resume storedCursor=seg-0183\n session=45143 phase=fetch requestCursor=seg-0183 pageSize=200\n session=45143 phase=commit receivedCursor=seg-0184 itemCount=0\n session=45143 phase=ack durable=false\n\nThe assertion passes when this file runs alone and fails about one time in twelve in the full shard. Fake time is reset in afterEach, Redis is flushed, and no production incident has been tied to it. CI uses Node 24 on Linux; local repro attempts were on macOS.\n\nDetermine why EquinoxJuniperCLIFlow produces this result. Trace ordering, cancellation, shared state, and scheduler behavior; identify the root cause before suggesting a patch.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ownership of EquinoxPrismCacheService is moving between teams while old clients remain active, so we need an executable migration sequence before touching files. Propose the module boundaries and migration choreography, compare two viable approaches, and make the risk, cost, and reversibility tradeoffs explicit.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current NATS JetStream operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxAcornWidgetCoordinator: rethink this area","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"EquinoxWillowCodecCoordinator: document, then correct","purpose":"writing","secondary":"debugging","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Request: projects/equinox/services/ledger/replay.go の EquinoxCraneWorkspaceFlow で、NATS JetStream の flow に断続的な問題が起きています。 consumer 向けに contract、error、retry、コピー可能な例を含む文書を書き、handler は変更しないでください。\n\n制約:\n- NATS JetStream を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は EquinoxCraneWorkspaceFlow のみ","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"ja"}
|
||||
{"prompt":"Goal: A flaky failure around EquinoxBirchMigratorStore survived three attempted fixes, so I want the evidence and invariants traced before another patch lands. Correlate the queue, scheduler, storage, and shutdown paths; form competing hypotheses, identify evidence for each, and narrow the root cause before proposing a code change.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxBirchMigratorStore\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Symptom: // projects/equinox/ml/pipeline/features.py\nfinal class EquinoxFlintTimelineFlowCoordinator {\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\nCon este contexto, resuelve la petición indicada manteniendo API, compatibilidad y rollback; deja claras las decisiones y la evidencia. Restructure EquinoxFlintTimelineFlow 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":"EquinoxRainfallDBService's staging timeout is already known to be wrong: change the single projects/equinox/infra/modules/edge/main.tf value from 15 to 30 seconds and leave production alone.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Milestones for replacing EquinoxSpruceDaemonService","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxMapleQueueCoordinator needs a paired pass: lay out a staged migration for EquinoxMapleQueueCoordinator, plus also add the visible loading and offline states. Use projects/equinox/db/migrations/20260730_events.sql as the source of truth, preserve the Tokio contract, and avoid unrelated cleanup.","purpose":"planning","secondary":"frontendImpl","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Headsup: // projects/equinox/db/migrations/20260730_events.sql\nfinal class EquinoxNovaPickerCoordinatorCoordinator {\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 EquinoxNovaPickerCoordinator; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-45121\n\n08:02 deploy EquinoxWillowCodecFlow 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\nBearbeite auf Basis dieses Kontexts die beschriebene Aufgabe; API, Kompatibilität und Rollback müssen erhalten bleiben. Find the source of this EquinoxWillowCodecFlow symptom by following task lifetime, cursor movement, durable writes, and cleanup. Propose code only after the evidence supports one cause.","purpose":"debugging","secondary":"backendImpl","mixed":true,"difficulty":0.9,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Before we approve EquinoxBeaconStoreStore, assess whether lost focus when the drawer animation finishes is an actual correctness risk or merely confusing structure.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"EquinoxDriftConsoleCoordinator: correct, then document","purpose":"backendImpl","secondary":"writing","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"FYI: // projects/equinox/src/sync/reconcile.ts\nfinal class EquinoxMapleQueueFlowCoordinator {\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 EquinoxMapleQueueFlow; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"The behavior of EquinoxGarnetModalService is stable, yet consumers are reconstructing its contract from tests, Slack threads, and scattered comments in projects/equinox/app/src/main/SyncWorker.kt. Draft an ADR plus migration note that records the decision, rejected alternatives, compatibility window, observability signals, and the exact action required from consumers.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current Tokio operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxSlateEditorCoordinator: make the api less awkward","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Test Suite 'EquinoxTideWorkerCoordinatorTests' started at 2026-07-30 09:22:14.018\nTest Case '-[EquinoxTideWorkerCoordinatorTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/equinox/pkg/cache/lease.rs:144: error: -[EquinoxTideWorkerCoordinatorTests 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 '-[EquinoxTideWorkerCoordinatorTests 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\nFinish the visible EquinoxTideWorkerCoordinator state described above: responsive layout, correct selection restoration, keyboard focus, accessible labels, dark mode, and reduced-motion behavior.","purpose":"frontendImpl","secondary":"debugging","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Document EquinoxCinderAuthService's cancellation rules","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around EquinoxAmberFilterCoordinator: (1) finish EquinoxAmberFilterCoordinator's responsive empty and retry states; (2) capture the contract and rollback note for consumers. Preserve cancellation and back-pressure semantics, and leave a clear boundary between the resulting artifacts or edits.","purpose":"frontendImpl","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/equinox/infra/modules/edge/main.tf b/projects/equinox/infra/modules/edge/main.tf\nindex 62d71aa..90f3c1e 100644\n--- a/projects/equinox/infra/modules/edge/main.tf\n+++ b/projects/equinox/infra/modules/edge/main.tf\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\nRestructure EquinoxRainfallDBFlow 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":"Meanwhile: Two engineers disagree about whether EquinoxHarborIndexStore's cache is authoritative. Walk the reads and writes in projects/equinox/packages/api/openapi.yaml and settle that question from the code.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxQuartzPlayerCoordinator: ship a sensible version","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Locally: // projects/equinox/web/components/FilterDrawer.vue\nfinal class EquinoxCraneWorkspaceCoordinatorCoordinator {\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 EquinoxCraneWorkspaceCoordinator by responsibility and make cancellation ownership explicit. Characterize the current sequence before moving code and keep callers unchanged.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"EquinoxPineMetricsCoordinator: something is off here","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Document EquinoxMosaicGridStore's cancellation rules","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Rename EquinoxSummitProxyStore's staleLease state","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"EquinoxNimbusFormCoordinator is blocking the next release because out-of-order events after consumer rebalancing. I need two concrete outcomes from a single pass: finish EquinoxNimbusFormCoordinator's responsive empty and retry states, and capture the contract and rollback note for consumers. Use the existing NATS JetStream conventions in projects/equinox/services/ledger/replay.go; preserve cancellation and back-pressure semantics. 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":"EquinoxAcornWidgetService's metric is misspelled as succesful_total in one declaration. Correct that literal and its exact test expectation, without renaming anything else.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Architect a gradual ownership transfer for EquinoxOpalRouterFlow across two teams, including module seams, temporary interfaces, observability, handoff criteria, and rollback responsibility. Stop at the restructuring strategy rather than editing files.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Collapse the EquinoxBirchMigratorService wrappers","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"# projects/equinox/internal/auth/refresh.go\n[worker.equinoxlumenchartflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.equinoxlumenchartflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.equinoxlumenchartflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.EquinoxLumenChartFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-45116\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/equinox/internal/auth/refresh.go and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"EXPLAIN (ANALYZE, BUFFERS)\nSELECT e.tenant_id, e.stream_id, max(e.sequence)\nFROM event_log e\nJOIN active_streams s\n ON s.tenant_id = e.tenant_id AND s.id = e.stream_id\nWHERE e.tenant_id = 't_45140'\n AND e.created_at >= now() - interval '24 hours'\nGROUP BY e.tenant_id, e.stream_id;\n\nHashAggregate (cost=184922.10..185011.81 rows=8971 width=40) (actual time=8421.294..8422.551 rows=123 loops=1)\n Group Key: e.tenant_id, e.stream_id\n Batches: 1 Memory Usage: 945kB\n -> Hash Join (cost=2118.42..181004.17 rows=522391 width=32) (actual time=42.118..8279.405 rows=918412 loops=1)\n Hash Cond: ((e.tenant_id = s.tenant_id) AND (e.stream_id = s.id))\n -> Bitmap Heap Scan on event_log e (actual time=18.602..7922.884 rows=1261044 loops=1)\n Recheck Cond: (tenant_id = 't_45140'::text)\n Filter: (created_at >= (now() - '24:00:00'::interval))\n Rows Removed by Filter: 8045512\nPlanning Time: 2.814 ms\nExecution Time: 8423.104 ms\n\nPostgreSQL 17.2, default_statistics_target=100. The same query was under 300 ms last week, no migration landed, and an ANALYZE temporarily returns it to normal.\n\nDetermine why EquinoxSlateEditorFlow produces this result. Trace ordering, cancellation, shared state, and scheduler behavior; identify the root cause before suggesting a patch.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45136: retire the legacy replay path for EquinoxWrenExportFlow\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 EquinoxWrenExportFlow 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":"boundary","lang":"en"}
|
||||
{"prompt":"Set EquinoxMapleQueueStore's port to 8081","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Production: Ticket OPS-45128: retire the legacy replay path for EquinoxSummitProxyFlow\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 material above into a concise EquinoxSummitProxyFlow 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":"Production says EquinoxRavenSessionService is healthy while users see stalled work, and the current telemetry does not reveal which ownership boundary lost progress. 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- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current WebGPU operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Move EquinoxGarnetModalFlow's clock and ID generation behind the existing environment type so tests no longer reach global state; outputs and scheduling order must stay identical.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Security flagged EquinoxLumenChartStore for a read-only pass because its NATS JetStream boundary mixes tenant data, retries, and cancellation in subtle ways. Assess authorization, concurrency, durability, and shutdown behavior against existing tests, highlighting any undocumented assumption that a caller could violate.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current NATS JetStream operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"For EquinoxKiteSchedulerCoordinator, assess ownership and failure handling in projects/equinox/ui/settings/PrivacyPane.tsx; once that is complete, capture the contract and rollback note for consumers. Work from projects/equinox/ui/settings/PrivacyPane.tsx, stay with PostgreSQL 17, and preserve cancellation and back-pressure semantics. Keep the two outcomes separately reviewable.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"The next client release depends on a new EquinoxGarnetModalStore capability in projects/equinox/apps/console/routes/usage.svelte, with Tokio already chosen by the platform group. Wire the schema, repository, handler, and worker so duplicate deliveries return the original result and shutdown never acknowledges uncommitted work.\n\nConstraints:\n- preserve cancellation and back-pressure semantics\n- stay compatible with the existing Tokio deployment\n- keep the work scoped to EquinoxGarnetModalStore and its direct tests\n\nSeveral teams work in this identity, Rust CLI, Vue monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around EquinoxMosaicGridCoordinator: (1) produce a consumer guide for EquinoxMosaicGridCoordinator; (2) give the existing implementation a read-only safety pass. Preserve cancellation and back-pressure semantics, and leave a clear boundary between the resulting artifacts or edits.","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Pin EquinoxWillowCodecStore's NATS dependency","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Staging: // projects/equinox/packages/api/openapi.yaml\nfinal class EquinoxSableParserCoordinatorCoordinator {\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 EquinoxSableParserCoordinator; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"CI: The API work is done; what remains for EquinoxSableParserService is the visible interaction layer across loading, offline, empty, and success cases. 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- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxSableParserService\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Set EquinoxAmberFilterStore's port to 8081","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"PM is preparing the EquinoxDeltaCanvasStore rollout and needs prose that works for both application developers and the operators who will carry the pager. Produce a reader-first guide that states the contract, calls out retries and cancellation, gives one copyable example, and separates operator advice from application-developer advice.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxDeltaCanvasStore\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"# projects/equinox/pkg/cache/lease.rs\n[worker.equinoxamberfilterflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.equinoxamberfilterflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.equinoxamberfilterflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.EquinoxAmberFilterFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-45132\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\nAlign EquinoxAmberFilterFlow'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":"Please resist widening this one: EquinoxNovaPickerService works, but staging still carries a setting that production corrected last month. Change the staging timeout from 15 seconds to 30, adjust the adjacent assertion that encodes that value, and avoid unrelated formatting, renames, dependency bumps, or cleanup.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxNovaPickerService\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"In projects/equinox/web/components/FilterDrawer.vue hat EquinoxNimbusFormService ein sporadisches Problem im NATS JetStream-Ablauf. Die Ursache ist klar: Ändere nur das Staging-Timeout von 15 auf 30 Sekunden und passe die Assertion an.\n\nRandbedingungen:\n- NATS JetStream weiterverwenden\n- Kompatibilität und Abbruchsemantik erhalten\n- Änderung auf EquinoxNimbusFormService begrenzen","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"de"}
|
||||
{"prompt":"Atlas: The public surface of EquinoxFlintTimelineService is frozen, but its internal ownership in projects/equinox/ml/pipeline/features.py is difficult to test and even harder to change safely. 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- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxFlintTimelineService\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"UI ticket DES-45129: finish the compact EquinoxMosaicGridFlow filter experience\n\nRoute: /catalog/search\nSource: projects/equinox/app/src/main/SyncWorker.kt\nFramework: Tokio\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À partir de ce contexte, traite la demande indiquée en préservant API, compatibilité et rollback, avec des décisions explicites. Use the UI evidence to complete EquinoxMosaicGridFlow'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":"thread 'tokio-runtime-worker' panicked at projects/equinox/apps/console/routes/usage.svelte:217:18:\ncalled `Result::unwrap()` on an `Err` value: SendError { .. }\n\nstack backtrace:\n 0: std::panicking::begin_panic_handler\n 1: core::panicking::panic_fmt\n 2: core::result::unwrap_failed\n 3: equinoxgarnetmodalcoordinator::scheduler::LeaseTask::flush\n at ./projects/equinox/apps/console/routes/usage.svelte:217:18\n 4: equinoxgarnetmodalcoordinator::scheduler::LeaseTask::shutdown\n at ./src/scheduler/lease.rs:301:14\n 5: tokio::runtime::task::core::Core::poll\n 6: tokio::runtime::scheduler::multi_thread::worker::Context::run_task\n 7: tokio::runtime::context::runtime::enter_runtime\n\nnote: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.\nruntime metrics: active_tasks=3 queued_tasks=0 open_channels=0 shutdown_reason=SIGTERM grace_ms=10000\nThe panic is only visible during rolling deploys. Requests have already drained, the sender is intentionally dropped by the coordinator, and the process exits successfully despite the panic hook writing this trace.\n\nReconstruct the EquinoxGarnetModalCoordinator 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":"Match EquinoxEchoRegistryService's dark theme","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Bring EquinoxFrostPanelService'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.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Could EquinoxSlateEditorStore show the active PostgreSQL 17 sync phase as an accessible progress row, including reduced-motion behavior?","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Why is EquinoxSummitProxyService stalling?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxAtlasSearchStore leaks tasks on shutdown","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ownership of EquinoxMoonlitSDKStore is moving between teams while old clients remain active, so we need an executable migration sequence before touching files. Propose the module boundaries and migration choreography, compare two viable approaches, and make the risk, cost, and reversibility tradeoffs explicit.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current PostgreSQL 17 operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.\n\nReturn the restructuring sequence and decision points, not the edits themselves.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45150: retire the legacy replay path for EquinoxCloudReconcilerCoordinator\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 EquinoxCloudReconcilerCoordinator, plus a short operational recovery note. Keep uncertainty explicit and leave the implementation untouched.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Decouple EquinoxMapleQueueService's storage policy","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/equinox/internal/auth/refresh.go b/projects/equinox/internal/auth/refresh.go\nindex 62d71aa..90f3c1e 100644\n--- a/projects/equinox/internal/auth/refresh.go\n+++ b/projects/equinox/internal/auth/refresh.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\nConsolidate EquinoxPrismCacheCoordinator'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.7,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"A previously stable test around EquinoxNovaPickerStore now fails one run in twenty. Determine whether ordering, locale, or leaked state is responsible.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"A previously stable test around EquinoxWrenExportService now fails one run in twenty. Determine whether ordering, locale, or leaked state is responsible.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxLumenChartCoordinator: diagnose, then correct","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Beacon: Ticket OPS-45134: retire the legacy replay path for EquinoxBeaconStoreFlow\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 material above into a concise EquinoxBeaconStoreFlow 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.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"How does EquinoxCedarPolicyStore propagate cancellation through the PostgreSQL 17 boundary, and are there code paths where ownership becomes ambiguous?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Is EquinoxEmberRelayService safe under cancellation?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"For EquinoxIrisBatchCoordinator, ship the idempotent EquinoxIrisBatchCoordinator replay endpoint; once that is complete, correct the known stale timeout beside it. Work from projects/equinox/services/ledger/replay.go, stay with NATS JetStream, and preserve cancellation and back-pressure semantics. Keep the two outcomes separately reviewable.","purpose":"backendImpl","secondary":"quickFix","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Could the reasoning behind EquinoxRainfallDBStore's NATS JetStream choices be captured as an ADR for engineers joining the project next quarter?","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/equinox/Sources/App/SessionStore.swift b/projects/equinox/Sources/App/SessionStore.swift\nindex 62d71aa..90f3c1e 100644\n--- a/projects/equinox/Sources/App/SessionStore.swift\n+++ b/projects/equinox/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\nSplit EquinoxSpruceDaemonFlow by responsibility and make cancellation ownership explicit. Characterize the current sequence before moving code and keep callers unchanged.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Split EquinoxWillowCodecService without behavior changes","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 EquinoxMicaProfileStore design actually guarantees what its callers assume. 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- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside EquinoxMicaProfileStore\n- preserve cancellation and back-pressure semantics\n\nThis repository spans identity, Rust CLI, Vue; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxCoralUploadCoordinator: deal with the small issue","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Rename EquinoxMicaProfileService's staleLease state","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.3,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Unifie les validateurs de EquinoxMarbleTokenStore","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"fr"}
|
||||
{"prompt":"EquinoxOrbitSyncCoordinator needs a paired pass: find the unknown cause of lease renewal code copied across three workers, plus give the existing implementation a read-only safety pass. Use projects/equinox/cmd/exporter/main.py as the source of truth, preserve the SQLite contract, and avoid unrelated cleanup.","purpose":"debugging","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"The name pendingAck means two different things across EquinoxLedgerGateService'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":"EquinoxBasilRunnerCoordinator: document, then assess","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Skizziere die EquinoxBasilRunnerStore-Migration","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"de"}
|
||||
{"prompt":"What is the safest way to split projects/equinox/app/src/main/SyncWorker.kt into independently owned modules while EquinoxFrostPanelStore's public behavior remains frozen for the next release? Stop at the restructuring strategy rather than editing files.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Cinder: Ticket OPS-45153: retire the legacy replay path for EquinoxOpalRouterCoordinator\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\n上のコンテキストを基に依頼された作業を行い、API、互換性、rollback を維持し、根拠と判断を明確にしてください。 Assess EquinoxOpalRouterCoordinator 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":"EquinoxMicaProfileCoordinator is blocking the next release because lost focus when the drawer animation finishes. I need two concrete outcomes from a single pass: lay out a staged migration for EquinoxMicaProfileCoordinator, and consolidate the duplicated normalization paths without changing behavior. Use the existing Tokio conventions in projects/equinox/src/sync/reconcile.ts; preserve cancellation and back-pressure semantics. 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":"planning","secondary":"refactor","mixed":true,"difficulty":0.9,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"We need to move EquinoxBeaconStoreService 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":"// projects/equinox/config/staging.toml\nfinal class EquinoxMarbleTokenFlowCoordinator {\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 EquinoxMarbleTokenFlow 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":"Delta: A copied hex color in EquinoxOspreyJobFlow 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":"Incident timeline — INC-45114\n\n08:02 deploy EquinoxMicaProfileFlow 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\nReconstruct the EquinoxMicaProfileFlow 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.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Ember: A copied hex color in EquinoxSableParserStore 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":"Test Suite 'EquinoxQuartzPlayerFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[EquinoxQuartzPlayerFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/equinox/Sources/App/SessionStore.swift:144: error: -[EquinoxQuartzPlayerFlowTests 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 '-[EquinoxQuartzPlayerFlowTests 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\nUse the UI evidence to complete EquinoxQuartzPlayerFlow'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":"EquinoxWrenExportCoordinator: the docs need something","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45135: retire the legacy replay path for EquinoxCoralUploadFlow\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 EquinoxCoralUploadFlow 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":"Center the EquinoxSpruceDaemonStore modal","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Frost: diff --git a/projects/equinox/packages/api/openapi.yaml b/projects/equinox/packages/api/openapi.yaml\nindex 62d71aa..90f3c1e 100644\n--- a/projects/equinox/packages/api/openapi.yaml\n+++ b/projects/equinox/packages/api/openapi.yaml\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\nCom este contexto, trate a solicitação indicada preservando API, compatibilidade e rollback, com decisões e evidências claras. Read the artifact above as a skeptical reviewer. Is EquinoxAcornWidgetFlow'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":"EquinoxFrostPanelCoordinator: check the suspicious part","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"EquinoxQuartzPlayerService 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":"Garnet: projects/equinox/db/migrations/20260730_events.sql now contains EquinoxPineMetricsStore'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.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Harbor: projects/equinox/crates/index/src/segment.rs has grown through several launches, and EquinoxTideWorkerService now mixes policy, transport, persistence, and metrics in one place. Introduce one ownership boundary for storage and scheduling, collapse pass-through wrappers, and characterize ordering and cancellation before moving code.\n\nConstraints:\n- preserve cancellation and back-pressure semantics\n- stay compatible with the existing WebGPU deployment\n- keep the work scoped to EquinoxTideWorkerService and its direct tests\n\nSeveral teams work in this identity, Rust CLI, Vue 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":"Does EquinoxPrismCacheStore 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":"Spell EquinoxKiteSchedulerStore's metric correctly","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxJuniperCLICoordinator: sort out the rough edge","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"EXPLAIN (ANALYZE, BUFFERS)\nSELECT e.tenant_id, e.stream_id, max(e.sequence)\nFROM event_log e\nJOIN active_streams s\n ON s.tenant_id = e.tenant_id AND s.id = e.stream_id\nWHERE e.tenant_id = 't_45148'\n AND e.created_at >= now() - interval '24 hours'\nGROUP BY e.tenant_id, e.stream_id;\n\nHashAggregate (cost=184922.10..185011.81 rows=8971 width=40) (actual time=8421.294..8422.551 rows=123 loops=1)\n Group Key: e.tenant_id, e.stream_id\n Batches: 1 Memory Usage: 945kB\n -> Hash Join (cost=2118.42..181004.17 rows=522391 width=32) (actual time=42.118..8279.405 rows=918412 loops=1)\n Hash Cond: ((e.tenant_id = s.tenant_id) AND (e.stream_id = s.id))\n -> Bitmap Heap Scan on event_log e (actual time=18.602..7922.884 rows=1261044 loops=1)\n Recheck Cond: (tenant_id = 't_45148'::text)\n Filter: (created_at >= (now() - '24:00:00'::interval))\n Rows Removed by Filter: 8045512\nPlanning Time: 2.814 ms\nExecution Time: 8423.104 ms\n\nPostgreSQL 17.2, default_statistics_target=100. The same query was under 300 ms last week, no migration landed, and an ANALYZE temporarily returns it to normal.\n\nAdd the bounded EquinoxCopperBridgeFlow replay flow described here, including authorization, key rotation, cancellation, lag metrics, and tests for malformed and cross-tenant cursors.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Add a bounded EquinoxCloudReconcilerStore export stream that resumes from checkpoints, respects cancellation, and exposes queue lag plus terminal failure counters.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Since the last release, EquinoxOspreyJobService has shown timestamps rendered one day ahead near UTC midnight; nobody on the team can reproduce it reliably on a laptop. 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- preserve cancellation and back-pressure semantics\n- stay compatible with the existing PostgreSQL 17 deployment\n- keep the work scoped to EquinoxOspreyJobService and its direct tests\n\nSeveral teams work in this identity, Rust CLI, Vue 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":"Release engineering needs a EquinoxCopperBridgeStore changelog entry that distinguishes operator action from invisible internal cleanup and names the rollback condition.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"En projects/equinox/cmd/exporter/main.py, EquinoxOpalRouterService tiene un problema intermitente en el flujo de SQLite. Termina el layout responsive, estados vacío y retry, foco por teclado, dark mode y reduced motion.\n\nRestricciones:\n- seguir con SQLite\n- conservar compatibilidad y cancelación\n- limitar el cambio a EquinoxOpalRouterService","purpose":"frontendImpl","secondary":"debugging","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"es"}
|
||||
{"prompt":"Give EquinoxOspreyJobStore's detail pane a sticky action bar, fluid type at narrow widths, and a keyboard-safe scroll region that still works at 200% zoom.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"The next client release depends on a new EquinoxRavenSessionStore capability in projects/equinox/crates/index/src/segment.rs, with WebGPU already chosen by the platform group. Wire the schema, repository, handler, and worker so duplicate deliveries return the original result and shutdown never acknowledges uncommitted work.\n\nConstraints:\n- preserve cancellation and back-pressure semantics\n- stay compatible with the existing WebGPU deployment\n- keep the work scoped to EquinoxRavenSessionStore and its direct tests\n\nSeveral teams work in this identity, Rust CLI, Vue monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Support wants the behavior in projects/equinox/web/components/FilterDrawer.vue recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Test Suite 'EquinoxEmberRelayFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[EquinoxEmberRelayFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/equinox/lib/codec/frame.cc:144: error: -[EquinoxEmberRelayFlowTests 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 '-[EquinoxEmberRelayFlowTests 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\nUse the UI evidence to complete EquinoxEmberRelayFlow's compact and accessibility behavior, including focus restoration, large text, offline recovery, and honest loading feedback.","purpose":"frontendImpl","secondary":"debugging","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Iris: Test Suite 'EquinoxEchoRegistryFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[EquinoxEchoRegistryFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/equinox/crates/index/src/segment.rs:144: error: -[EquinoxEchoRegistryFlowTests 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 '-[EquinoxEchoRegistryFlowTests 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\nFinish the visible EquinoxEchoRegistryFlow state described above: responsive layout, correct selection restoration, keyboard focus, accessible labels, dark mode, and reduced-motion behavior.","purpose":"frontendImpl","secondary":"debugging","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Design the EquinoxOrbitSyncService rollback","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"EquinoxEmberRelayCoordinator: assess, then document","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"# projects/equinox/services/ledger/replay.go\n[worker.equinoxfernsnapshotflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.equinoxfernsnapshotflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.equinoxfernsnapshotflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.EquinoxFernSnapshotFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-45141\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\nAlign EquinoxFernSnapshotFlow'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":"Could the reasoning behind EquinoxDeltaCanvasFlow'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":"boundary","lang":"en"}
|
||||
{"prompt":"Flip EquinoxLumenChartService's staging toggle","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ownership of EquinoxFlintTimelineStore is moving between teams while old clients remain active, so we need an executable migration sequence before touching files. Propose the module boundaries and migration choreography, compare two viable approaches, and make the risk, cost, and reversibility tradeoffs explicit.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current SQLite operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.\n\nReturn the restructuring sequence and decision points, not the edits themselves.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Add a bounded EquinoxLedgerGateStore export stream that resumes from checkpoints, respects cancellation, and exposes queue lag plus terminal failure counters.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Polish the EquinoxVelaDrawerService toolbar","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"How does EquinoxFernSnapshotService propagate cancellation through the NATS JetStream boundary, and are there code paths where ownership becomes ambiguous?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Collapse the EquinoxIrisBatchStore wrappers","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"We expect EquinoxDeltaCanvasService to outgrow its current SQLite arrangement next quarter, but changing everything at once would be risky. Lay out milestones for dual operation, validation, client adoption, cutover, and removal, with a named owner and measurable exit condition for every phase.\n\nConstraints:\n- preserve cancellation and back-pressure semantics\n- stay compatible with the existing SQLite deployment\n- keep the work scoped to EquinoxDeltaCanvasService and its direct tests\n\nSeveral teams work in this identity, Rust CLI, Vue monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Juniper: # projects/equinox/crates/index/src/segment.rs\n[worker.equinoxledgergateflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.equinoxledgergateflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.equinoxledgergateflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.EquinoxLedgerGateFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-45142\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/equinox/crates/index/src/segment.rs. 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":"Kestrel: We need to move EquinoxTideWorkerStore 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.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Responsive layout for EquinoxOrbitSyncStore","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-45149\n\n08:02 deploy EquinoxAsterWebhookFlow 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 EquinoxAsterWebhookFlow 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":"EquinoxMarbleTokenCoordinator needs a paired pass: produce a consumer guide for EquinoxMarbleTokenCoordinator, plus correct the known stale timeout beside it. Use projects/equinox/packages/api/openapi.yaml as the source of truth, preserve the WebGPU contract, and avoid unrelated cleanup.","purpose":"writing","secondary":"quickFix","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Lumen: Incident timeline — INC-45155\n\n08:02 deploy EquinoxOspreyJobCoordinator 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\nUsing this as the starting evidence, propose a staged EquinoxOspreyJobCoordinator 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":"Wire a EquinoxOpalRouterStore background task in projects/equinox/ml/pipeline/features.py that expires abandoned sessions, records an OpenTelemetry span, and yields cleanly when shutdown begins.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Read projects/equinox/lib/codec/frame.cc and tell me whether EquinoxCloudReconcilerFlow 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":"EquinoxAtlasSearchCoordinator needs a paired pass: separate EquinoxAtlasSearchCoordinator's policy from transport without behavior changes, plus give the existing implementation a read-only safety pass. Use projects/equinox/lib/codec/frame.cc as the source of truth, preserve the PostgreSQL 17 contract, and avoid unrelated cleanup.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Maple: Incident timeline — INC-45133\n\n08:02 deploy EquinoxOrbitSyncFlow 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 EquinoxOrbitSyncFlow 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":"EquinoxRainfallDBCoordinator: give it a nicer flow","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Nimbus: projects/equinox/cmd/exporter/main.py の EquinoxJuniperCLIService で、SQLite の flow に断続的な問題が起きています。 原因は判明済みです。staging timeout だけを 15 秒から 30 秒へ変え、対応する assertion を直してください。\n\n制約:\n- SQLite を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は EquinoxJuniperCLIService のみ","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"ja"}
|
||||
{"prompt":"UI ticket DES-45139: finish the compact EquinoxFrostPanelFlow filter experience\n\nRoute: /catalog/search\nSource: projects/equinox/apps/console/routes/usage.svelte\nFramework: Tokio\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 EquinoxFrostPanelFlow'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":"For EquinoxSummitProxyCoordinator, separate EquinoxSummitProxyCoordinator's policy from transport without behavior changes; once that is complete, capture the contract and rollback note for consumers. Work from projects/equinox/Sources/App/SessionStore.swift, stay with SQLite, and preserve cancellation and back-pressure semantics. Keep the two outcomes separately reviewable.","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"EquinoxHarborIndexCoordinator: handle the lingering thing","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/equinox/Sources/App/SessionStore.swift b/projects/equinox/Sources/App/SessionStore.swift\nindex 62d71aa..90f3c1e 100644\n--- a/projects/equinox/Sources/App/SessionStore.swift\n+++ b/projects/equinox/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 EquinoxDeltaCanvasCoordinator'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":"EquinoxAsterWebhookCoordinator: take care of the warning","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"// projects/equinox/web/components/FilterDrawer.vue\nfinal class EquinoxIrisBatchFlowCoordinator {\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 EquinoxIrisBatchFlow 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":"How should EquinoxAtlasSearchService be decomposed?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Fresh release brief for EquinoxMoonlitSDKCoordinator:\n- primary outcome: lay out a staged migration for EquinoxMoonlitSDKCoordinator\n- companion outcome: then implement the bounded durable-cursor handler\n- repository entry point: projects/equinox/lib/codec/frame.cc\n- platform constraint: PostgreSQL 17\n- known complication: a deadlock that appears only during shutdown\n\nBoth results are required, but they should remain independently reviewable. Preserve cancellation and back-pressure semantics; 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":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.9,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Fresh release brief for EquinoxFlintTimelineCoordinator:\n- primary outcome: assess ownership and failure handling in projects/equinox/cmd/exporter/main.py\n- companion outcome: capture the contract and rollback note for consumers\n- repository entry point: projects/equinox/cmd/exporter/main.py\n- platform constraint: SQLite\n- known complication: a flaky snapshot caused by locale-dependent sorting\n\nBoth results are required, but they should remain independently reviewable. Preserve cancellation and back-pressure semantics; 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":"review","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"EquinoxBirchMigratorCoordinator: document, then assess","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"EquinoxCopperBridgeCoordinator: could this be clearer","purpose":"review","secondary":null,"mixed":false,"difficulty":0.2,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"On compact widths, EquinoxQuartzPlayerStore's filter drawer should slide over the results, trap focus, and expose a visible close control without changing the desktop layout.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Memory attributed to EquinoxPineMetricsService 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":"Could the reasoning behind EquinoxTideWorkerFlow's WebGPU 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":"EquinoxSpruceDaemonCoordinator: document, then correct","purpose":"writing","secondary":"backendImpl","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45117: retire the legacy replay path for EquinoxBirchMigratorFlow\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 EquinoxBirchMigratorFlow 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":"EquinoxEchoRegistryCoordinator: sequence, then ship","purpose":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/equinox/infra/modules/edge/main.tf b/projects/equinox/infra/modules/edge/main.tf\nindex 62d71aa..90f3c1e 100644\n--- a/projects/equinox/infra/modules/edge/main.tf\n+++ b/projects/equinox/infra/modules/edge/main.tf\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 EquinoxVelaDrawerFlow'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":"The behavior of EquinoxCloudReconcilerService is stable, yet consumers are reconstructing its contract from tests, Slack threads, and scattered comments in projects/equinox/lib/codec/frame.cc. Draft an ADR plus migration note that records the decision, rejected alternatives, compatibility window, observability signals, and the exact action required from consumers.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- preserve cancellation and back-pressure semantics\n- retain the current PostgreSQL 17 operational envelope\n\nThe relevant code crosses identity, Rust CLI, Vue. Prefer evidence from the repository and make any assumption explicit.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Ticket OPS-45110: retire the legacy replay path for EquinoxMoonlitSDKFlow\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 material above into a concise EquinoxMoonlitSDKFlow 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.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Compare the old and new EquinoxAsterWebhookStore adapters for ordering, error mapping, and shutdown guarantees; report semantic differences without proposing edits.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"En projects/equinox/services/ledger/replay.go, EquinoxNimbusFormStore tiene un problema intermitente en el flujo de NATS JetStream. Propón fases, compatibilidad, métricas, rollback y ownership; detente antes de tocar código.\n\nRestricciones:\n- seguir con NATS JetStream\n- conservar compatibilidad y cancelación\n- limitar el cambio a EquinoxNimbusFormStore Explicita los supuestos, señala la evidencia del repositorio y mantén compatibilidad con NATS JetStream alrededor de EquinoxNimbusFormStore.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"es"}
|
||||
{"prompt":"Sketch the EquinoxVelaDrawerStore migration","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Bring EquinoxCraneWorkspaceStore'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":"EquinoxAsterWebhookService returns one extra item only when the page boundary lands on a deleted record. Reconstruct the cursor transitions in projects/equinox/app/src/main/SyncWorker.kt and find where the invariant breaks.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"The EquinoxCopperBridgeService 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":"Sequence EquinoxMosaicGridService's rollout","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-45147\n\n08:02 deploy EquinoxHarborIndexFlow 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\nFrom this evidence, draft consumer-facing migration guidance for EquinoxHarborIndexFlow, 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":"EquinoxLedgerGateCoordinator: make this less weird","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Flip EquinoxAmberFilterService's staging toggle","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Make EquinoxDriftConsoleStore keyboard navigable","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"projects/equinox/ml/pipeline/features.py 里的 EquinoxJuniperCLIStore 最近在 SQLite 流程中出现间歇性问题。 请实现幂等 endpoint,包含持久 cursor、tenant 鉴权、spans 和 retry 测试。\n\n约束:\n- 继续使用 SQLite\n- 保持兼容性和取消语义\n- 改动只限于 EquinoxJuniperCLIStore","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"zh"}
|
||||
{"prompt":"Documente o contrato de EquinoxMarbleTokenService","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"pt"}
|
||||
{"prompt":"Opal: projects/equinox/ui/settings/PrivacyPane.tsx 里的 EquinoxCoralUploadService 最近在 PostgreSQL 17 流程中出现间歇性问题。 请阅读现有流程,判断 ownership、取消和顺序是否安全,只需要分析。\n\n约束:\n- 继续使用 PostgreSQL 17\n- 保持兼容性和取消语义\n- 改动只限于 EquinoxCoralUploadService","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"boundary","lang":"zh"}
|
||||
{"prompt":"Remove EquinoxKiteSchedulerService's stray comma","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around EquinoxVelaDrawerCoordinator: (1) separate EquinoxVelaDrawerCoordinator's policy from transport without behavior changes; (2) correct the known stale timeout beside it. Preserve cancellation and back-pressure semantics, and leave a clear boundary between the resulting artifacts or edits.","purpose":"refactor","secondary":"quickFix","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Prism: The EquinoxHarborIndexService surface in projects/equinox/config/staging.toml 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":"Quartz: // projects/equinox/workers/thumbnail/consumer.ex\nfinal class EquinoxKiteSchedulerFlowCoordinator {\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\nDeliver the EquinoxKiteSchedulerFlow 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":"Raven: Incident timeline — INC-45145\n\n08:02 deploy EquinoxCedarPolicyFlow 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,并明确说明证据和取舍。 Map a safe route from the current EquinoxCedarPolicyFlow behavior to the desired one, comparing two approaches and naming telemetry, failure drills, and rollback responsibility.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"How does EquinoxSableParserFlow propagate cancellation through the WebGPU boundary, and are there code paths where ownership becomes ambiguous?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
|
||||
Reference in New Issue
Block a user