updating purpose-classifier data:

This commit is contained in:
2026-08-02 20:15:13 -07:00
parent 98311aa932
commit 0f639bfa05
21 changed files with 14248 additions and 14463 deletions
+200 -200
View File
@@ -1,200 +1,200 @@
{"prompt": "our changelog needs an entry for the removal of `wal_sync: never`, with the migration advice for anyone using it", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
{"prompt": "the events panel in the admin console refreshes every ten seconds by replacing the whole list, which resets the scroll position and makes it useless during an incident when you're trying to read something. keep the polling but merge new events in without moving what the user is looking at, and show a \"3 new events\" pill when they're scrolled away from the top", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
{"prompt": "message ordering guarantee we advertise, and the code that's meant to implement it. do they match?\n\ndocs: \"Messages within a thread are delivered to all devices in the order the server accepted them. Across threads, no ordering is guaranteed.\"\n\n// fanout.go\nfunc (f *Fanout) Publish(ctx context.Context, m Message) error {\n\tdevices, err := f.devices.For(ctx, m.ThreadID)\n\tif err != nil { return err }\n\tvar g errgroup.Group\n\tfor _, d := range devices {\n\t\td := d\n\t\tg.Go(func() error { return f.push.Send(ctx, d, m) })\n\t}\n\treturn g.Wait()\n}\n\n// accept path assigns m.ServerTS = time.Now() before enqueueing to a per-shard channel", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
{"prompt": "our health endpoint counts a stalled compaction as healthy, so nothing pages until customers notice", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
{"prompt": "the reply bar's offline behaviour is currently that everything looks normal until you background the app and the message vanishes, which is the worst possible outcome. sent-but-unacknowledged messages should show a clock glyph, failed ones a retry affordance, and the bar itself should never lie about whether something has been delivered", "purpose": "frontendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
{"prompt": "is this actually a race or am i misreading the memory ordering?\n\nstd::atomic<uint64_t> latest_lsn_{0};\n\nvoid WalWriter::Append(const Record& r) {\n auto lsn = next_lsn_.fetch_add(1, std::memory_order_relaxed);\n buffer_->Write(lsn, r);\n latest_lsn_.store(lsn, std::memory_order_release);\n}\n\nuint64_t WalWriter::Durable() const {\n return latest_lsn_.load(std::memory_order_acquire);\n}\n\nbool Reader::Visible(uint64_t lsn) const {\n return lsn <= writer_->Durable();\n}\n\nfour writer threads share one WalWriter, readers call Visible on their own threads", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
{"prompt": "a customer's engineer sent this and support forwarded it to me. answer it as a docs page rather than an email:\n\n\"We're running the operator in a cluster with a strict pod security admission policy (restricted). Your StatefulSet requests runAsUser: 0 and a hostPort, both of which are rejected. Is running as root actually required? Is the hostPort required, or is it there because of the old deployment model? We'd also like to know the minimum RBAC the operator needs — the ClusterRole in your chart grants * on everything, which our security team will not approve.\"", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
{"prompt": "design review ticket, i want the thinking done before the meeting:\n\nLUM-460 — Read-your-writes without pinning reads to the leader\nToday a client that needs to read its own write sends `X-Read-Your-Writes` and we route to the leader, which is why the leader is 70% of read traffic on chatty threads. Proposal is per-client LSN tracking with follower reads that wait for the LSN, bounded by a timeout after which we fall back to the leader. Concerns: clients are mobile and reconnect constantly; LSN would have to survive a reconnect; a slow follower could hold a request for the whole timeout; we have no way to observe per-client staleness today.", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
{"prompt": "support ticket volumes for the last quarter, by category. what would you fix first and why:\n\n retention misconfiguration 182 tickets avg 41 min to resolve\n push registration failures 141 tickets avg 88 min\n pod evictions / storage 96 tickets avg 130 min\n upgrade gone wrong 44 tickets avg 4.2 hours\n \"messages out of order\" 38 tickets avg 2.1 hours, 12 unresolved\n RBAC / install problems 31 tickets avg 55 min\n everything else 77 tickets\n\nengineering capacity for this is about one person for a quarter, and support is asking for docs rather than fixes on at least half of these", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
{"prompt": "we need the spool rotation the incident asked for. current behaviour and the requirement:\n\n- broker appends every unacknowledged message to /tmp/spool/<shard>.log, no rotation, no cap\n- on restart the whole spool is replayed in order; the file has reached 41GB on a busy shard\n- required: rotate at 2GB, keep at most 4 segments per shard, drop the oldest with a loud metric and a warning log\n- replay must still be in order across segments, and must skip segments whose checksum fails rather than crashing\n- the operator sets the cap via `tuning.spool_max_mb`, defaulting to 8192 total per shard\n- none of this may block the write path, which currently appends synchronously", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
{"prompt": "message bubbles clip at large type sizes", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
{"prompt": "operator reconcile loop is hot-looping and i can't see why from the logs:\n\nI0729 11:02:14.881 1 controller.go:212] \"Reconciling\" cluster=\"lumen-prod\" generation=41 observedGeneration=41\nI0729 11:02:14.902 1 status.go:88] \"Updating status\" phase=\"Ready\" replicas=3 readyReplicas=3\nI0729 11:02:14.918 1 controller.go:212] \"Reconciling\" cluster=\"lumen-prod\" generation=41 observedGeneration=41\nI0729 11:02:14.941 1 status.go:88] \"Updating status\" phase=\"Ready\" replicas=3 readyReplicas=3\nI0729 11:02:14.958 1 controller.go:212] \"Reconciling\" cluster=\"lumen-prod\" generation=41 observedGeneration=41\nW0729 11:02:15.002 1 reflector.go:539] watch of *v1alpha1.MessageCluster ended with: too old resource version\nI0729 11:02:15.021 1 controller.go:212] \"Reconciling\" cluster=\"lumen-prod\" generation=41 observedGeneration=41\n\nabout 60 reconciles a second, CPU pinned, nothing in the cluster is actually changing", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
{"prompt": "push notifications stopped for ios users on tuesday, apns feedback:\n\n{\"reason\":\"BadDeviceToken\",\"timestamp\":1753843201} count=41221\n{\"reason\":\"Unregistered\",\"timestamp\":1753843261} count=8814\n{\"reason\":\"TopicDisallowed\"} count=2201\n{\"reason\":\"ExpiredProviderToken\"} count=1\n\nour side:\n push_send_total{result=\"error\"} 52,236 in 24h\n push_send_total{result=\"ok\"} 1,102 in 24h\n last successful send: 2026-07-27T23:58:02Z\n\nwe did rotate the signing key on monday but the ExpiredProviderToken count is 1, not 52 thousand", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
{"prompt": "go vet after the operator refactor, all in one file:\n\n./internal/controller/cluster_controller.go:88:2: loop variable c captured by func literal\n./internal/controller/cluster_controller.go:141:12: the cancel function returned by context.WithTimeout should be called, not discarded, to avoid a context leak\n./internal/controller/cluster_controller.go:212:5: unreachable code\n./internal/controller/status.go:41:9: result of fmt.Sprintf call not used\n\nvet: exit status 1\nmake: *** [Makefile:22: vet] Error 1", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "pasted-context", "lang": "en"}
{"prompt": "one timestamp helper, not three", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
{"prompt": "what does `wal_sync: batch` promise? write it down", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
{"prompt": "why does compaction stall at 12%?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
{"prompt": "thread screen has eleven hardcoded colours and three magic paddings; move it onto the design tokens without changing how it looks", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
{"prompt": "design handoff for the thread screen's reply bar, react native:\n\nReply bar\n- Pinned to the keyboard, 52pt minimum height, grows to 5 lines then scrolls internally.\n- Leading: attach button 32pt, tinted secondary; long-press opens the media sheet.\n- Text input: 16pt, placeholder \"Message\", no border, 8pt vertical padding.\n- Trailing: send button appears only when there's text, 28pt circle, scales in over 120ms.\n- Reply-to state: a 40pt strip above the input with a 2pt accent bar, the quoted text truncated to one line, and an X to clear.\n- Typing indicator sits above the bar, fades in after 400ms of a peer typing, out after 3s of silence.\n- Safe area: the bar must sit above the home indicator, and the keyboard animation must not cause a jump on iOS 18.\n- Offline: the bar stays usable, sent messages show a clock glyph until acknowledged.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
{"prompt": "is our eviction fallback safe?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
{"prompt": "support burden is dominated by three things — retention misconfiguration, push registration failures and pod evictions — and support keeps asking for documentation rather than fixes, which i suspect is the wrong instinct for at least two of them. work through each one and tell me whether the answer is docs, better defaults, a validating webhook, or actual engineering, with the reasoning laid out", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
{"prompt": "a customer's security team asked why the operator needs cluster-admin and the honest answer is that nobody trimmed the ClusterRole after the prototype. work out the minimum permissions the operator actually uses from the code, then write the page explaining each permission and why it's needed, in the tone of someone who expects to be challenged on every line", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "we tell customers that messages within a thread are delivered in server-accept order, and i now think that's a claim about the accept path that the fanout path doesn't honour. rather than change the code first, i want the actual guarantee written down accurately — what holds, under what conditions it doesn't, and what a client should do if it cares", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
{"prompt": "messages arrive out of order for maybe one user in a thousand, here's a trace from one of them:\n\nsend msg=01HR9K2M seq=4118 client_ts=11:02:14.221 server_ts=11:02:14.402 shard=7\nsend msg=01HR9K2N seq=4119 client_ts=11:02:14.318 server_ts=11:02:14.396 shard=7\nfanout msg=01HR9K2N to=4 devices at=11:02:14.441\nfanout msg=01HR9K2M to=4 devices at=11:02:14.512\nack msg=01HR9K2N device=ios-88a1 at=11:02:14.602\nack msg=01HR9K2M device=ios-88a1 at=11:02:14.688\nrender order on device: 01HR9K2N then 01HR9K2M\n\nthe client sorts by server_ts, and as you can see the later message got the earlier server timestamp", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
{"prompt": "le CI est rouge une fois sur cinq, toujours sur le même test d'intégration :\n\n--- FAIL: TestOperatorScalesDownIdleClusters (30.12s)\n operator_test.go:141: expected 1 replica after idle timeout, got 3\n operator_test.go:148: last reconcile at 2026-07-29T11:04:02Z, idle since 2026-07-29T11:02:31Z\n operator_test.go:152: envtest apiserver logs:\n W0729 11:04:01.882 1 dispatcher.go:210] slow webhook response: 4.1s\n W0729 11:04:02.114 1 admission.go:88] mutating webhook \"defaults.lumen.io\" timed out\nFAIL\nFAIL github.com/lumen/operator/internal/controller 62.441s\n\nen local, avec -count=20, jamais d'échec", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "fr"}
{"prompt": "CRD we're about to publish. once this is in customers' clusters we can't take it back:\n\nspec:\n versions:\n - name: v1alpha1\n served: true\n storage: true\n schema:\n openAPIV3Schema:\n type: object\n properties:\n spec:\n type: object\n properties:\n replicas: { type: integer }\n retention: { type: string }\n storage: { type: string }\n tuning:\n type: object\n x-kubernetes-preserve-unknown-fields: true\n required: [replicas]\n subresources: {}\n\nno status subresource, no defaulting, retention is a free-form string", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
{"prompt": "on-call handover notes for the week, turn them into something the next person can actually use:\n\n- broker pods evicting on ephemeral storage, spool file is unbounded, ticket LUM-441, workaround is a cron that truncates it (yes really)\n- push delivery to ios is degraded, apple's feedback says BadDeviceToken en masse, suspect the token migration, dana is on it\n- compaction on shard 7 stalls if you let the flush queue fill, restart the node, it recovers in about 4 minutes\n- do not scale the operator deployment above 1, leader election is broken and two of them fight\n- the staging cluster's certs expire on the 12th, renewal is manual, instructions are in dana's dms somewhere\n- alert `BrokerLagHigh` fires nightly at 02:00 during compaction and is safe to ignore for 20 minutes", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
{"prompt": "storage config knobs we expose, and no documentation anywhere. write the operator's tuning reference:\n\ntuning:\n block_cache_mb: 4096 # default 512\n write_buffer_mb: 256 # default 64\n max_write_buffers: 4 # default 2\n compaction_threads: 8 # default 2\n level0_stall_threshold: 8 # default 12\n bloom_bits_per_key: 10 # default 10\n compression: zstd # none | lz4 | zstd\n wal_sync: batch # always | batch | never\n\nthings the team knows: block_cache_mb above 60% of container memory gets you OOMKilled; wal_sync=never loses acknowledged writes on power loss; compaction_threads above the core count makes stalls worse, not better", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
{"prompt": "upgrade notes needed for the retention change, here's what actually happens:\n\n- before: `retention` was a free-form string, we parsed \"7d\", \"1 week\", \"168h\" and silently defaulted to 7 days on anything we couldn't parse\n- after: only ISO-8601 durations are accepted, the CRD rejects everything else at admission\n- on upgrade, a migration job rewrites existing values it can parse and marks clusters it can't as `Degraded` with a message\n- clusters stuck in Degraded keep serving, they just refuse spec changes until retention is fixed\n- there's no automatic rollback; downgrading the operator leaves ISO values that the old parser reads as 7 days\n\nwrite the upgrade guide for self-hosted operators", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
{"prompt": "detox config and the CI job disagree about the simulator, so e2e never runs on CI:\n\n// .detoxrc.js\ndevices: {\n simulator: { type: 'ios.simulator', device: { type: 'iPhone 16' } }\n},\nconfigurations: {\n 'ios.sim.debug': { device: 'simulator', app: 'ios.debug' }\n}\n\n# .github/workflows/e2e.yml\n- run: xcrun simctl list devices available | grep \"iPhone 15\"\n- run: yarn detox build --configuration ios.sim.release\n- run: yarn detox test --configuration ios.sim.release --cleanup\n\nerror: Failed to find a device by type = \"iPhone 16\"\nDetox can only run on: iPhone 15, iPhone 15 Pro, iPad Air (5th generation)", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "pasted-context", "lang": "en"}
{"prompt": "three components render the same message row and they've drifted. one component, same visuals:\n\n// MessageBubble.tsx — used in the thread\n<View style={[s.bubble, mine && s.mine]}>\n <Text style={s.body}>{m.body}</Text>\n <Text style={s.ts}>{formatTimestamp(m.serverTs)}</Text>\n</View>\n\n// SearchResultRow.tsx\n<View style={s.row}>\n <Text numberOfLines={2} style={s.body}>{m.body}</Text>\n <Text style={s.ts}>{format(m.serverTs, 'HH:mm')}</Text>\n</View>\n\n// PinnedMessage.tsx\n<Pressable onPress={onJump} style={s.pinned}>\n <Text numberOfLines={1}>{m.body}</Text>\n <Text style={s.tsSmall}>{relativeTime(m.serverTs)}</Text>\n</Pressable>\n\nthree timestamp helpers too, all in different files", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
{"prompt": "navigation params are typed three different ways and it's why the deep link bug keeps coming back:\n\n// AppNavigator.tsx\nexport type RootStackParamList = {\n ThreadList: undefined\n Thread: { threadId: string; highlight?: string }\n Profile: { userId: string }\n}\n\n// ThreadScreen.tsx\ntype Props = { route: { params: { threadId: string; highlightMessage?: string } } }\n\n// deeplink.ts\nconst parse = (url: string): { screen: string; params: Record<string, any> } => ...\n\nthe highlight param is called `highlight` in one place and `highlightMessage` in another", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "pasted-context", "lang": "en"}
{"prompt": "test helpers duplicated across three packages, with the usual small differences:\n\n// internal/controller/testutil.go\nfunc newCluster(name string, replicas int32) *v1alpha1.MessageCluster { ... }\n\n// internal/webhook/helpers_test.go\nfunc makeCluster(ns, name string) *v1alpha1.MessageCluster { ... } // sets defaults\n\n// test/e2e/fixtures.go\nfunc Cluster(opts ...ClusterOpt) *v1alpha1.MessageCluster { ... } // sets defaults + status\n\nabout 60 call sites between them, and the webhook one sets a field the others don't", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
{"prompt": "spool cap default to 8GB", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "core", "lang": "en"}
{"prompt": "el placeholder dice «Mensage», falta una j", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "es"}
{"prompt": "mobile team wants to drop the old react native architecture and they can't until the notification module is rewritten, which nobody has scoped. before anyone starts, i'd like the migration mapped out: what depends on the old module, what the new one has to do, how we ship it without a big-bang release, and what we do about the two native modules a contractor wrote and nobody understands", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
{"prompt": "an audit is booked for october and it will produce findings we can't predict, which is a bad way to spend a quarter. i'd rather we found the obvious things first: how would you scope a pre-audit review of the message path, the operator's RBAC, the mobile token storage and the admin tooling, given about two weeks of one engineer's time", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
{"prompt": "consistency model is implemented and undocumented, which means every customer question about it gets a slightly different answer depending on who replies. write the public page: what a write acknowledgement means, what a read can and cannot see, what happens during an election, and be explicit about the guarantees we do not offer rather than quietly omitting them", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
{"prompt": "tuning knobs we expose through the CRD are documented as a list of field names with no explanation, and the dangerous ones look exactly like the harmless ones. write the tuning reference: what each knob does, sensible ranges, the interactions between them, and a prominent warning on the two that can lose acknowledged writes or get the pod OOMKilled", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
{"prompt": "operator's finalizer logic looks fine to me and yet we have three clusters stuck terminating for two days. work out whether the teardown path can genuinely fail forever, whether removing the finalizer before the update lands is possible, and what state a partially torn-down cluster leaves behind", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
{"prompt": "admin console's cluster detail page is unusable on a phone, which is exactly where people open it during an incident, and the stat tiles overflow into a horizontal scroll that hides the conditions table entirely. make it work down to 320px without building a separate mobile view", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
{"prompt": "i want an honest read on whether our WAL's relaxed ordering is correct with four writer threads, and if it isn't, the fix — with a test that fails reliably on the current code under tsan", "purpose": "review", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
{"prompt": "scan and iterator both know about page pinning, and neither can be tested without a real page cache", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "how does the client decide a message is undelivered — is that a timeout, an ack, or the absence of one", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
{"prompt": "go vet is failing on a captured loop var", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
{"prompt": "operator replicas back to 1 for now", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
{"prompt": "one device-lookup source for fanout", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
{"prompt": "why is the leader taking 70% of reads?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
{"prompt": "push registration retries on every failure code including permanent ones, which is how we spent a day hammering apple with dead tokens", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
{"prompt": "what does `has_more` actually mean on the messages endpoint when a page ends exactly on the last message", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
{"prompt": "our alerting was assembled per-service by different people and pages for things that resolve themselves nightly, what would a coherent set of alerts look like", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
{"prompt": "the admin console needs a proper empty state for a namespace with no clusters, because right now you get a bare table header and people assume it's broken and file a ticket. design and build it: an explanation, the kubectl command that creates one, a link to the getting-started page, and the same treatment for a filtered view that matches nothing", "purpose": "frontendImpl", "secondary": "writing", "mixed": true, "difficulty": 0.45, "slice": "mixed", "lang": "en"}
{"prompt": "message row component, shared across screens", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
{"prompt": "our cluster status pill uses four colours that are nearly indistinguishable on a projector and identical in greyscale, which came up when someone screenshared during an incident. give each status a distinct shape or glyph as well as a colour, keep the pill compact enough for the table, and make sure the degraded and progressing states read differently at a glance", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
{"prompt": "the spool file format and its replay behaviour are known to exactly two people, and one of them is on parental leave from November. write the internal reference: the on-disk layout, how segments are ordered, what happens on a checksum failure, what replay does with a partially written record, and what an operator can safely delete when a disk fills up", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
{"prompt": "is the session object in AsyncStorage a problem on a rooted device, or am i worrying about the wrong thing", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "a plain description of what happens between a client sending and every device rendering would help me a lot", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
{"prompt": "design system tokens we're meant to be using, and the thread screen ignores half of them:\n\ncolors.surface #0E1116 (dark) / #FFFFFF (light)\ncolors.surfaceRaised #161B22 / #F6F8FA\ncolors.textPrimary #E6EDF3 / #1F2328\ncolors.textSecondary #8B949E / #59636E\ncolors.accent #2F81F7\nspacing 4 / 8 / 12 / 16 / 24 / 32\nradius sm 6, md 10, lg 16, pill 999\ntype body 16/22, caption 13/18, title 20/26\n\nthe thread screen has 11 hardcoded hex values, three magic paddings and its own font sizes. bring it onto the tokens without changing how it looks beyond what the tokens force", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
{"prompt": "support is guessing at what our error codes mean and inventing explanations for customers. build the reference table from the code, and where a code is genuinely unhelpful — three of them just say \"internal\" — change the message to something a human could act on", "purpose": "writing", "secondary": "quickFix", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
{"prompt": "thread list shows a stale last-message preview for about ten seconds after sending, then corrects itself", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
{"prompt": "message reactions need a server-side aggregate rather than counting rows on every read, and the mobile team wants it this sprint", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
{"prompt": "we need a way to mark a device's push token dead after a permanent failure code, and stop sending to it", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
{"prompt": "metro bundler is fine but the app white-screens on android release builds only:\n\nFATAL EXCEPTION: mqt_native_modules\nProcess: chat.lumen.app, PID: 9912\ncom.facebook.react.common.JavascriptException: TypeError: Cannot read property 'prototype' of undefined\n\nThis error is located at:\n in ThreadListScreen (created by SceneView)\n in SceneView (created by NativeStackView)\n in RNSScreenContentWrapper\n in NativeStackNavigator\n in AppNavigator (created by App)\n\n at com.facebook.react.modules.core.ExceptionsManagerModule.reportException(ExceptionsManagerModule.java:65)\n at java.lang.reflect.Method.invoke(Native Method)\n at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)\n\ndebug builds are perfectly fine, and it started after we enabled hermes", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
{"prompt": "query planner picks a different plan in prod than in staging for the identical query and stats:\n\n staging:\n Index Scan using idx_messages_thread_created on messages (cost=0.56..812.44 rows=412 width=88)\n Index Cond: ((thread_id = $1) AND (created_at > $2))\n Filter: (deleted_at IS NULL)\n\n prod:\n Bitmap Heap Scan on messages (cost=4412.10..214882.31 rows=88214 width=88)\n Recheck Cond: (thread_id = $1)\n Filter: ((created_at > $2) AND (deleted_at IS NULL))\n Rows Removed by Filter: 1204118\n -> Bitmap Index Scan on idx_messages_thread (cost=0.00..4390.05 rows=88214 width=0)\n\nsame postgres version, same indexes, ANALYZE run this morning on both", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
{"prompt": "sanitizer output from the storage engine tests, only under -j16:\n\n==41221==ERROR: AddressSanitizer: heap-use-after-free on address 0x60700000dfb8 at pc 0x0000004c1a2f\nREAD of size 8 at 0x60700000dfb8 thread T7\n #0 0x4c1a2f in lumen::store::PageCache::pin(uint64_t) src/store/page_cache.cc:141\n #1 0x4c88c0 in lumen::store::Iterator::next() src/store/iterator.cc:88\n #2 0x4d1102 in lumen::exec::ScanNode::Next() src/exec/scan.cc:52\n\n0x60700000dfb8 is located 8 bytes inside of 72-byte region\nfreed by thread T3 here:\n #0 0x49a112 in operator delete(void*)\n #1 0x4c0f40 in lumen::store::PageCache::evict(uint64_t) src/store/page_cache.cc:212\n\npreviously allocated by thread T3 here:\n #1 0x4c0221 in lumen::store::PageCache::load(uint64_t) src/store/page_cache.cc:88\n\nsingle-threaded runs are clean, and this has probably been there for months", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
{"prompt": "pods get evicted every few hours and the events are not telling me much:\n\nEvents:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Warning Evicted 32m kubelet The node was low on resource: ephemeral-storage. Container broker was using 41Gi, which exceeds its request of 2Gi.\n Normal Killing 32m kubelet Stopping container broker\n Warning Evicted 18m kubelet The node was low on resource: ephemeral-storage. Container broker was using 39Gi, which exceeds its request of 2Gi.\n Normal Pulled 17m kubelet Container image \"ghcr.io/lumen/broker:2.11.4\" already present on machine\n Warning BackOff 4m (x12 over 16m) kubelet Back-off restarting failed container\n\nthe broker writes a spool file to /tmp and we thought that was bounded", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
{"prompt": "react native app drops frames scrolling long threads, here's the profiler summary:\n\nJS thread: 41 fps avg, 12 fps min\nUI thread: 58 fps avg\n\nTop offenders (self time, 10s sample):\n MessageBubble render 2841ms (3,912 renders)\n useThreadMessages selector 1102ms (3,912 calls)\n formatTimestamp 884ms (11,736 calls)\n Animated.timing 412ms\n FlatList onViewableItemsChanged 388ms\n\nRe-render reasons for MessageBubble:\n props.message changed 12%\n props.onLongPress changed 71%\n context value changed 17%\n\nthe list has 400 items and windowSize is at the default", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
{"prompt": "nightly compaction stalled and the only clue is this:\n\n[compaction] level=1 files=41 target=L2 started\n[compaction] level=1 read 2.1GB in 41s\n[compaction] level=2 merge started, output sst=00041.sst\n[compaction] level=2 merge progress 12% after 300s\n[compaction] level=2 merge progress 12% after 600s\n[compaction] level=2 merge progress 12% after 900s\n[bg] flush queue depth 8 (max 8), writes stalled\n[bg] write stall total 14m22s\n[compaction] level=2 merge progress 13% after 1200s\n\nthe machine is not CPU bound, iostat shows 4% utilisation, and there is 400GB free", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
{"prompt": "someone's proposed this for the operator's finalizer handling. sound?\n\nfunc (r *ClusterReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {\n\tvar c v1alpha1.MessageCluster\n\tif err := r.Get(ctx, req.NamespacedName, &c); err != nil {\n\t\treturn ctrl.Result{}, client.IgnoreNotFound(err)\n\t}\n\tif !c.DeletionTimestamp.IsZero() {\n\t\tif err := r.teardown(ctx, &c); err != nil {\n\t\t\treturn ctrl.Result{RequeueAfter: 10 * time.Second}, nil\n\t\t}\n\t\tcontrollerutil.RemoveFinalizer(&c, finalizerName)\n\t\treturn ctrl.Result{}, r.Update(ctx, &c)\n\t}\n\tcontrollerutil.AddFinalizer(&c, finalizerName)\n\tif err := r.Update(ctx, &c); err != nil {\n\t\treturn ctrl.Result{}, err\n\t}\n\treturn r.reconcileNormal(ctx, &c)\n}", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
{"prompt": "por favor, revisa este helm chart antes de que lo subamos al repo público:\n\napiVersion: apps/v1\nkind: StatefulSet\nspec:\n replicas: {{ .Values.replicas }}\n template:\n spec:\n securityContext:\n runAsUser: 0\n containers:\n - name: broker\n image: \"ghcr.io/lumen/broker:{{ .Values.tag | default \"latest\" }}\"\n env:\n - name: ADMIN_TOKEN\n value: {{ .Values.adminToken | quote }}\n ports:\n - containerPort: 9092\n hostPort: 9092\n volumeMounts:\n - name: spool\n mountPath: /tmp/spool\n volumes:\n - name: spool\n emptyDir: {}\n\nlo van a instalar clientes en sus propios clústeres", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "es"}
{"prompt": "hook that every screen uses. i keep being told it's fine and the app disagrees:\n\nexport function useThreadMessages(threadId: string) {\n const [messages, setMessages] = useState<Message[]>([])\n const { socket } = useSocket()\n\n useEffect(() => {\n let cancelled = false\n api.messages(threadId).then(m => { if (!cancelled) setMessages(m) })\n const off = socket.on('message', (m: Message) => {\n if (m.threadId === threadId) setMessages(prev => [...prev, m].sort(byServerTs))\n })\n return () => { cancelled = true; off() }\n }, [threadId, socket])\n\n const onLongPress = (id: string) => actions.openMenu(id)\n return { messages, onLongPress }\n}", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
{"prompt": "buffer pool eviction policy, inherited and never questioned:\n\nPage* PageCache::Evict() {\n std::lock_guard<std::mutex> g(mu_);\n auto victim = lru_.back();\n while (victim && victim->pin_count.load() > 0) {\n victim = victim->prev;\n }\n if (!victim) {\n victim = lru_.back(); // give up, take the last one anyway\n }\n lru_.erase(victim);\n map_.erase(victim->page_id);\n return victim;\n}\n\nis the fallback there for a reason anyone can defend, and what does it do to a pinned page under load?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
{"prompt": "security asked about our token handling in the mobile app and this is what i found:\n\n// auth/storage.ts\nimport AsyncStorage from '@react-native-async-storage/async-storage'\n\nexport const saveSession = (s: Session) =>\n AsyncStorage.setItem('session', JSON.stringify(s))\n\nexport const loadSession = async (): Promise<Session | null> => {\n const raw = await AsyncStorage.getItem('session')\n return raw ? JSON.parse(raw) : null\n}\n\n// api/client.ts\nconst client = axios.create({ baseURL: API })\nclient.interceptors.request.use(async cfg => {\n const s = await loadSession()\n if (s) cfg.headers.Authorization = `Bearer ${s.accessToken}`\n return cfg\n})\n\nrefresh tokens live in the same object, ttl 90 days", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
{"prompt": "raw notes from the incident call, we owe the customer a written explanation by tomorrow:\n\n- 09:12 customer reports messages not arriving on ios\n- 09:20 we confirm push failures at 98%, android unaffected\n- 09:31 rotated the apns key on monday, suspicion falls there\n- 09:52 rules out the key, the error is BadDeviceToken not auth\n- 10:14 discover the token migration job re-encoded tokens as base64 twice\n- 10:31 stopped the job, 41k tokens affected out of 220k\n- 11:02 re-registration push sent via a silent notification, most devices recover\n- 12:40 remaining 6k devices need to open the app to re-register\n- no messages were lost, they were queued and delivered on re-registration", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
{"prompt": "my commit is ready and i always write terrible messages. the diff:\n\ndiff --git a/src/exec/scan.cc b/src/exec/scan.cc\n@@ -41,12 +41,19 @@ Status ScanNode::Next(Batch* out) {\n- while (out->size() < batch_size_) {\n- auto page = cache_->Pin(iter_->page_id());\n- out->Append(iter_->Value());\n- cache_->Unpin(page);\n- iter_->Next();\n- }\n+ auto page = cache_->Pin(iter_->page_id());\n+ auto guard = absl::MakeCleanup([&] { cache_->Unpin(page); });\n+ while (out->size() < batch_size_) {\n+ if (iter_->page_id() != page->id) {\n+ cache_->Unpin(page);\n+ page = cache_->Pin(iter_->page_id());\n+ }\n+ out->Append(iter_->Value());\n+ iter_->Next();\n+ }\n return Status::OK();\n }\n\nwe use conventional commits and the body should explain why, not what", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
{"prompt": "schreib bitte die Release Notes für 2.12 aus diesen Tickets:\n\nLUM-402 Broker: Spool-Datei wird jetzt bei 2 GB rotiert statt unbegrenzt zu wachsen\nLUM-417 Operator: Leader Election repariert, mehrere Replicas sind jetzt unterstützt\nLUM-421 Storage: Kompaktierung blockiert nicht mehr, wenn die Flush-Queue voll ist\nLUM-433 API: `retention` akzeptiert jetzt nur noch ISO-8601-Dauern, alte Werte werden beim Upgrade migriert\nLUM-441 Mobile: Push-Registrierung wird bei ungültigem Token automatisch erneuert\nLUM-448 Breaking: `tuning.wal_sync=never` wurde entfernt\n\nZielgruppe sind Betreiber, die selbst hosten", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "de"}
{"prompt": "gostava de ter um documento sobre o modelo de consistência, a partir do que está no código:\n\n- as escritas vão para o líder do shard e são replicadas para dois seguidores\n- o ack ao cliente acontece depois de um seguidor confirmar, não os dois\n- as leituras podem ir para qualquer réplica, exceto quando o cliente envia o cabeçalho `X-Read-Your-Writes`\n- nesse caso a leitura vai para o líder e espera pelo LSN indicado pelo cliente\n- durante uma eleição, as escritas falham com 503 durante 2 a 5 segundos\n- não há garantia de leitura monotónica entre réplicas diferentes\n\nescreve isto como página de documentação pública, com os avisos que forem precisos", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "pt"}
{"prompt": "eslint and the react compiler disagree about our hooks, and i just want a green build:\n\nsrc/hooks/useThreadMessages.ts\n 14:6 warning React Hook useEffect has a missing dependency: 'api' react-hooks/exhaustive-deps\n 22:9 error Ref values ('cancelled.current') should not be read during render react-hooks/react-compiler\n\nsrc/screens/ThreadListScreen.tsx\n 41:11 error Component definition is missing display name react/display-name\n 88:3 warning Fast refresh only works when a file only exports components react-refresh/only-export-components\n\nsrc/components/MessageBubble.tsx\n 102:5 error 'onLongPress' changes on every render, wrap it in useCallback react-hooks/react-compiler\n\n✖ 5 problems (3 errors, 2 warnings)", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
{"prompt": "clang-tidy on the storage engine, the new checks are noisy but two look real:\n\nsrc/store/page_cache.cc:141:10: warning: 'pin' is called on a possibly-null pointer [bugprone-unchecked-optional-access]\nsrc/store/page_cache.cc:212:5: warning: loop variable 'victim' is copied but only used as const reference [performance-for-range-copy]\nsrc/exec/scan.cc:88:22: warning: narrowing conversion from 'size_t' to 'int' [bugprone-narrowing-conversions]\nsrc/wal/writer.cc:44:9: warning: atomic operation on 'latest_lsn_' uses relaxed ordering, consider seq_cst [concurrency-mt-unsafe]\nsrc/util/arena.cc:19:1: warning: function 'Allocate' exceeds recommended size/complexity thresholds [readability-function-size]\n\n5 warnings generated, CI treats them as errors since last week", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
{"prompt": "kustomize diff between our two environments, one of these is why prod restarts more:\n\n--- base/broker/statefulset.yaml\n+++ overlays/prod/statefulset.yaml\n@@\n resources:\n requests:\n- memory: 2Gi\n- ephemeral-storage: 2Gi\n+ memory: 8Gi\n+ ephemeral-storage: 2Gi\n limits:\n- memory: 4Gi\n+ memory: 8Gi\n@@\n env:\n- - name: BLOCK_CACHE_MB\n- value: \"512\"\n+ - name: BLOCK_CACHE_MB\n+ value: \"6144\"\n@@\n terminationGracePeriodSeconds: 30\n+ # prod only\n+ livenessProbe:\n+ initialDelaySeconds: 5\n+ periodSeconds: 5\n+ failureThreshold: 2", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
{"prompt": "prometheus rule that pages us every night at 02:00 and is always benign:\n\n- alert: BrokerLagHigh\n expr: max by (shard) (broker_consumer_lag) > 10000\n for: 2m\n labels:\n severity: page\n annotations:\n summary: \"broker lag on shard {{ $labels.shard }}\"\n\nnightly pattern:\n 02:00 lag climbs to ~40k during compaction\n 02:18 lag drains to under 1k\n 02:19 alert resolves\n\nduring a real incident in june, lag went to 400k and stayed there for an hour", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
{"prompt": "dependabot on the mobile app, four PRs open and i want to merge what's safe:\n\nreact-native 0.79.2 -> 0.80.0 (major-ish, they don't do semver properly)\n@react-navigation/native 6.1.18 -> 7.0.2 (breaking: linking config shape changed)\naxios 1.7.4 -> 1.11.2 (advisory GHSA-jr83, SSRF via redirect)\ndate-fns 3.6.0 -> 4.1.0 (breaking: timezone handling moved to a separate package)\n\nour app pins react-native in three places: package.json, ios/Podfile.lock and the expo config plugin", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
{"prompt": "this reconciler does everything and i want the same behaviour in pieces i can test:\n\nfunc (r *ClusterReconciler) reconcileNormal(ctx context.Context, c *v1alpha1.MessageCluster) (ctrl.Result, error) {\n\t// 40 lines: ensure statefulset, diff spec, update if drifted\n\t// 30 lines: ensure service, headless service, and the ingress if enabled\n\t// 25 lines: ensure configmap from spec.tuning with defaults applied inline\n\t// 35 lines: ensure PVCs, resize if storage grew, refuse if it shrank\n\t// 50 lines: compute status from pod conditions and write it back\n\t// 20 lines: emit events for every transition\n\treturn ctrl.Result{RequeueAfter: time.Minute}, nil\n}\n\n200 lines in one function, one test that spins up envtest and asserts on the end state", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
{"prompt": "error handling in the storage layer, three styles in one file:\n\nStatus PageCache::Load(uint64_t id, Page** out) {\n if (!map_.contains(id)) return Status::NotFound(\"page\");\n ...\n}\n\nPage* PageCache::Pin(uint64_t id) {\n auto it = map_.find(id);\n if (it == map_.end()) { LOG(FATAL) << \"pin of unknown page \" << id; }\n ...\n}\n\nabsl::StatusOr<Page*> PageCache::Fetch(uint64_t id) {\n ...\n}\n\nsame class, three conventions, and one of them crashes the process on a bad id", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
{"prompt": "quatre endroits construisent la même requête de fanout, avec des différences subtiles :\n\n// fanout.go\ndevices, _ := f.devices.For(ctx, m.ThreadID)\n\n// presence.go\nrows, _ := db.Query(ctx, `SELECT device_id FROM devices WHERE thread_id = $1 AND active`, tid)\n\n// admin/tools/resend.go\nrows, _ := db.Query(ctx, `SELECT device_id FROM devices WHERE thread_id = $1`, tid)\n\n// push/retry.go\ndevices := cache.Devices(tid) // peut être périmé de 5 minutes\n\nune seule source, s'il te plaît, et sans changer le comportement du chemin critique", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "fr"}
{"prompt": "config plumbing in the operator, currently five layers deep:\n\ndefaults := DefaultTuning()\nif c.Spec.Tuning != nil {\n merged := mergeMaps(defaults.AsMap(), c.Spec.Tuning.AsMap())\n if env := os.Getenv(\"LUMEN_TUNING_OVERRIDE\"); env != \"\" {\n var override map[string]any\n _ = json.Unmarshal([]byte(env), &override)\n merged = mergeMaps(merged, override)\n }\n if cm, err := r.getLegacyConfigMap(ctx, c); err == nil {\n merged = mergeMaps(cm.Data, merged) // note: legacy loses\n }\n tuning = TuningFromMap(merged)\n} else {\n tuning = defaults\n}\n\nsame resolved values, one obvious precedence order", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "fr"}
{"prompt": "quarter planning, and this is what landed in my inbox. i need a sequenced plan out of it:\n\n- self-hosted customers want a supported upgrade path between minor versions; today they redeploy and hope\n- two customers have asked for multi-region, one of them contractually\n- the mobile team wants to drop the old architecture and cannot until the notification module is rewritten\n- storage wants six weeks to finish the compaction work, otherwise the stalls continue\n- support burden is dominated by three things: retention config, push registration, and pod evictions\n- we have one platform engineer and they're on parental leave from November\n- there's a security audit booked for October that will produce work we can't predict", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
{"prompt": "customer requirement we've signed up to, and nobody has thought about how:\n\n\"Message data for EU tenants must remain within the EU, including backups, logs and any derived data such as search indexes. Cross-region replication is permitted only between EU regions. Support staff outside the EU must not be able to read message content, though they may see metadata necessary for support. The customer requires evidence of this control, not an assurance.\"\n\nwe currently have one region, logs go to a US SaaS, and support has a debug tool that dumps message bodies. i want the plan and an honest list of what we'd have to give up", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
{"prompt": "spec for the cluster detail page in our admin console, build it in react:\n\nCluster detail\n- Header: cluster name, namespace as a muted subtitle, a status pill (Ready / Progressing / Degraded / Unknown) and a kebab menu with Edit, Restart and Delete.\n- Summary strip: four stat tiles — replicas ready, storage used vs requested, message rate, consumer lag — each with a 24h sparkline and a click-through to metrics.\n- Conditions table: type, status, reason, message, last transition, newest first, with long messages truncated and expandable.\n- Events panel: last 50 events, warning ones flagged, auto-refreshing every 10 seconds without jumping the scroll position.\n- Degraded state: a banner above the summary explaining the condition in plain language with a link to the matching docs page.\n- Everything must be readable at 320px wide because people open this on phones during incidents.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
{"prompt": "accessibility findings from a customer's audit of our mobile app, prioritise and implement:\n\n1. Message bubbles are announced as \"button, text\" with no sender or timestamp; VoiceOver users cannot tell who wrote what.\n2. The send button has no accessibility label, only an icon.\n3. Contrast on the timestamp text is 2.8:1 against the bubble background.\n4. The typing indicator is announced repeatedly, interrupting reading.\n5. Long-press is the only way to react to a message; there is no accessible alternative.\n6. Dynamic Type above the default clips the reply bar and hides the send button entirely.\n7. Focus order in the thread jumps from the header to the reply bar, skipping the message list.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
{"prompt": "api spec we agreed with the mobile team, needs building on the server:\n\nGET /v2/threads/{id}/messages\n query: before (message id), after (message id), limit (default 50, max 200)\n exactly one of before/after may be given; neither means newest page\n response: { data: Message[], has_more: boolean, oldest_id, newest_id }\n Message: { id, thread_id, author_id, body, server_ts, edited_at?, deleted: bool, reactions: {emoji: count} }\n deleted messages come back with body omitted and deleted: true, they still occupy a position\n reads must be consistent within a page — no message may appear twice across pages if nothing changed\n a client with X-Read-Your-Writes: <lsn> must not see a page missing its own just-sent message", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
{"prompt": "axios advisory bump on the mobile app", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
{"prompt": "unread badge counts deleted messages", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
{"prompt": "detox targets iPhone 15 on CI", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
{"prompt": "BrokerLagHigh needs a 20 minute for-clause", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
{"prompt": "drop hostPort from the broker chart", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
{"prompt": "context cancel is discarded in the reconciler", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
{"prompt": "block cache 6GB in an 8GB limit", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
{"prompt": "le champ `retention` accepte encore n'importe quoi", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "fr"}
{"prompt": "typing indicator should fade, not pop", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
{"prompt": "our getting-started guide assumes a cluster with cluster-admin, a default storage class and no admission policies, which describes approximately none of our self-hosted customers. rewrite it for someone installing into a restricted namespace, including the values they'll need to override, and be explicit about what will fail and how the failure looks", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
{"prompt": "the iterator rewrite makes sequential scans twice as fast and point-lookup misses nearly three times slower, with allocations up by an order of magnitude on mixed workloads. our production traffic is mostly point lookups. read the code alongside the benchmark and tell me whether the regression is inherent to the design or an artefact of how the batch buffer is sized", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
{"prompt": "send button needs a label for VoiceOver", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
{"prompt": "pinned message strip above the list", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
{"prompt": "status pill colours are too similar", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
{"prompt": "sparklines on the cluster stat tiles", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
{"prompt": "die Zeitstempel sind zu blass", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "de"}
{"prompt": "reply bar jumps when the keyboard opens", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
{"prompt": "events panel scroll jumps on refresh", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
{"prompt": "conditions table needs a newest-first sort", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
{"prompt": "`highlightMessage` everywhere, pick one name", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
{"prompt": "split reconcileNormal into steps", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
{"prompt": "les helpers de test dans un seul paquet", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "fr"}
{"prompt": "`PageCache::Fetch` naming, be consistent", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
{"prompt": "pull the tuning merge into one function", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
{"prompt": "inline `makeCluster`, one caller left", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
{"prompt": "comment the memory ordering in wal/writer", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
{"prompt": "upgrade notes for the retention change", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
{"prompt": "resumo do incidente de push, em português", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "pt"}
{"prompt": "document the minimum RBAC we need", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
{"prompt": "PR description for the spool rotation", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
{"prompt": "who pins pages during a scan?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "¿el fanout garantiza el orden por hilo?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "es"}
{"prompt": "walk me through leader election here", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
{"prompt": "threads reorder themselves on reconnect", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "release build white-screens, debug is fine", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
{"prompt": "reconcile loop spins at 60/s", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
{"prompt": "warum verlieren wir jede Nacht Push-Tokens?", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "de"}
{"prompt": "presence endpoint for a thread", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
{"prompt": "design the EU-only story, then start on logs", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
{"prompt": "shape the upgrade path, then write the migration", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
{"prompt": "back on the push thing", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
{"prompt": "finish what dana started", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
{"prompt": "smoother", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "vague-eval", "lang": "en"}
{"prompt": "operator, again", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
{"prompt": "do the thing from the handover notes", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
{"prompt": "algo rápido antes de la demo", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "es"}
{"prompt": "next chunk of the storage work", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "vague-eval", "lang": "en"}
{"prompt": "whatever unblocks QA", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
{"prompt": "tidy before review", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
{"prompt": "same treatment as the thread screen", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
{"prompt": "もう一度、あの通知の件", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "ja"}
{"prompt": "keep going on the console", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
{"prompt": "plan for next quarter", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "vague-eval", "lang": "en"}
{"prompt": "anything you think matters", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
{"prompt": "multi-region is now contractual for one customer and vaguely promised to another, and we've never run more than one region. i need to understand what it means for us before anyone commits to a date: whether we replicate at the storage layer or the application layer, what happens to message ordering across regions, how a client picks a region, and what our failover story would actually be when the network partitions rather than when a region cleanly disappears", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
{"prompt": "self-hosted customers currently upgrade by redeploying the chart and hoping, which has gone badly twice this quarter, both times because a CRD field changed shape. i want a real upgrade story designed: version skew we support, how CRD migrations run, what the operator does when it finds resources it doesn't understand, whether we can roll back at all, and how a customer knows it worked", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
{"prompt": "read-your-writes currently pins reads to the leader, which is why the leader carries most of our read traffic on the busiest threads. the proposal is per-client LSN tracking with follower reads that wait, and i can see three ways it goes wrong with mobile clients that reconnect constantly. talk me through the design space and what you'd actually recommend for our size", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "boundary", "lang": "en"}
{"prompt": "on-call handover happens verbally on a friday afternoon and the notes are a slack message that scrolls away. from this week's incidents and the current known issues, write the handover document template plus this week's filled-in version, in a form where the person picking it up can tell what is on fire, what is smouldering, and what they can ignore", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
{"prompt": "nobody can explain why the buffer pool sometimes evicts a pinned page, and the code has a fallback branch with no comment that appears to do exactly that. i don't want it changed yet — read it, work out what happens to a scan holding that page, and tell me whether the crash we saw last month is explained by it", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
{"prompt": "ordering trace from a customer shows a later message getting an earlier server timestamp, which either means our clocks are wrong or our accept path is doing something i don't understand. before we call it a bug, go through how server_ts is assigned, how the shard channel orders, and whether two messages on the same shard can be timestamped out of order", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
{"prompt": "three components render a message row with their own timestamp helper, their own truncation rules and their own styles, which is why search results look subtly different from the thread. consolidate them into one component with props for the variations, keeping each screen looking exactly as it does today, and delete the two helpers that fall out", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
{"prompt": "storage layer uses three error conventions in the same class — a Status return, a StatusOr, and a LOG(FATAL) that takes the process down on a bad page id — and callers handle whichever they happen to hit. pick the convention the newest code uses, apply it throughout, and make sure no path can still abort the process on bad input", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
{"prompt": "tuning resolution in the operator goes through defaults, the spec, an environment override and a legacy configmap, merged in an order that surprises everyone including the person who wrote it. make the precedence explicit and testable, keep the resolved values identical for every cluster we have in the field, and leave the legacy path working until we can remove it", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
{"prompt": "messages occasionally arrive out of order on ios but not android, roughly one user in a thousand, and both clients sort by the same field. i've stared at the fanout code and the push path and can't see it. before assuming it's the client, i'd like the whole path from accept to render examined properly", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
{"prompt": "e2e tests fail about one run in five on CI and never locally, always on the test that waits for an idle cluster to scale down. the envtest logs mention a slow admission webhook right before the failure, which may or may not be related", "purpose": "debugging", "secondary": "review", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
{"prompt": "CI installs the whole toolchain from scratch on every job because someone disabled caching to debug something in march and never turned it back on, and the mobile job now takes 22 minutes. turn caching back on for yarn, pods and gradle, verify the builds are still reproducible, and note what you changed", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
{"prompt": "data residency for EU tenants is contractual and we currently have one region, logs in a US SaaS and a support tool that dumps message bodies. i want the design for what compliant looks like, and then the first piece implemented: keeping message content out of the logs entirely", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.9, "slice": "mixed", "lang": "en"}
{"prompt": "before the mobile rewrite starts i'd like the notification module's responsibilities mapped out properly — registration, token refresh, delivery receipts, deep links — and then the registration piece built against the new architecture so we can prove the approach works", "purpose": "planning", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
{"prompt": "spool needs rotation and we also need to decide what \"drop the oldest\" means for delivery guarantees, because right now we'd be silently losing messages. think through the semantics first, write them down, then implement rotation with whatever loud signals you decide on", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
{"prompt": "unsere Retention-Konfiguration ist ein Freitextfeld und die Migration auf ISO-8601 steht an. Ich hätte gern zuerst einen Plan, wie wir bestehende Cluster migrieren, ohne dass jemand in Degraded landet, und danach den Validierungs-Webhook dafür", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "de"}
{"prompt": "consistency model needs writing up for customers and i suspect the act of writing it will surface at least one place where the code doesn't match the claim. do both: the public page, and a list of every claim you couldn't verify from the code", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
{"prompt": "escreve o guia de instalação para clientes que alojam o produto, e valida no chart se o que dizemos sobre permissões é verdade — desconfio que pedimos muito mais do que precisamos", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "pt"}
{"prompt": "test helpers are duplicated across three packages with subtly different defaults, which is why a test can pass in one package and fail in another with the same input. unify them, then document the fixture conventions so the next person doesn't add a fourth", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.55, "slice": "mixed", "lang": "en"}
{"prompt": "navigation params are typed in three places with two different names for the same field, and the deep link bug keeps coming back because of it. fix the types properly, then add the short note to the contributing guide about where params are declared", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
{"prompt": "go packages are organised by layer — models, services, handlers — and every feature touches all three, so nothing is local", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
{"prompt": "rename `MessageCluster` to `Cluster` in the CRD group, it reads terribly in kubectl output", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
{"prompt": "mobile app has both a `utils` and a `helpers` folder, imported interchangeably, thirty files between them", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
{"prompt": "could someone explain what happens to in-flight messages when a shard leader changes, i can't tell from the code", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
{"prompt": "i'd like a read on the new iterator benchmarks before we merge, particularly the point-lookup miss regression", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "why does the reply bar re-render when a peer starts typing in a different thread", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
{"prompt": "is it normal for the operator to log a status update on every reconcile even when nothing changed", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
{"prompt": "someone should sanity check our CRD before it ships, particularly the free-form tuning field and the missing status subresource", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
{"prompt": "docs/consistency.md describes two followers acknowledging before we ack the client, which is not what the code does", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
{"prompt": "a short note for the team about why we're capping the spool, for the decision log", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
{"prompt": "CRD field descriptions are empty, which means `kubectl explain` tells operators nothing at all", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
{"prompt": "write the docs page answering \"why is my cluster Degraded\", covering all six conditions we can set", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
{"prompt": "liveness probe on the prod overlay has a 5 second delay and 2 failures, which restarts pods mid-compaction", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
{"prompt": "operator's default retention is 7 days in code and 30 days in the docs, and one of them has to change", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
{"prompt": "push retries use a fixed 30 second delay with no jitter, so every failure lands in the same second", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
{"prompt": "la búsqueda de mensajes ignora los acentos, y en español eso rompe la mitad de las consultas", "purpose": "quickFix", "secondary": "backendImpl", "mixed": true, "difficulty": 0.4, "slice": "mixed", "lang": "es"}
{"prompt": "one shard's consumer lag climbs steadily every night and drains by morning, and nobody knows whether that's compaction or a slow consumer", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
{"prompt": "what should our story be for customers who want to run us on ARM nodes? two have asked and we've never built for it", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "i want a position on whether search belongs in the storage engine or as a separate index before anyone starts building it", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
{"prompt": "how should we handle schema evolution for the message format now that self-hosted customers can be six months behind us", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
{"prompt": "an endpoint that returns a device's pending messages since a given LSN, for the reconnect path", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "admin debug tool should redact message bodies unless the operator holds a break-glass role", "purpose": "backendImpl", "secondary": "review", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
{"prompt": "per-thread rate limiting on the send path, since one automated client can currently saturate a shard", "purpose": "backendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "en"}
{"prompt": "cluster list page needs filtering by status and namespace, and it should remember what you picked", "purpose": "frontendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
{"prompt": "whatever's least embarrassing before friday", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
{"prompt": "pick up where the doc left off", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
{"prompt": "thread list is a FlatList that re-renders every row whenever any thread updates, which on a busy account means the whole list rebuilds several times a second and scrolling turns to mush. keep the rows visually identical but make each one independent, memoise the row callbacks properly, and fix the last-message preview so it updates without dragging the rest of the list with it", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
{"prompt": "message reactions currently open a long-press menu that appears under the thumb and covers the message being reacted to, and there's no way to reach them at all with a keyboard or a switch control. rework the interaction: an accessible affordance on each row, the picker positioned so it never covers its own message, and a sensible focus return when it closes", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
{"prompt": "support answers \"why is my push not arriving\" from scratch every time, usually badly, because the answer depends on the token state, the apns feedback, whether the device has opened the app recently, and our own retry state. write the troubleshooting page that walks through those in order, with what to check and what each outcome means", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.55, "slice": "mixed", "lang": "en"}
{"prompt": "the mobile app stores its session, including a ninety-day refresh token, as plain JSON in AsyncStorage, and an interceptor reads it on every request. before i take this to the security review, i want an assessment of what that actually exposes on a compromised device, what the platform keychain would change, and whether the ninety days is the bigger problem", "purpose": "review", "secondary": "planning", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
{"prompt": "our go packages are split by layer, so a single feature touches models, services and handlers and nothing is ever local to one directory. restructure by feature instead, keeping the public API and every behaviour identical, and do it in a sequence where the build stays green after each step rather than one enormous move commit", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
{"prompt": "scan and iterator both know about page pinning, which means neither can be unit tested without a real page cache and a real file, and our tests are correspondingly slow and flaky. introduce a seam so the iterator can be tested against a fake, without changing the hot path's performance characteristics or its current behaviour", "purpose": "refactor", "secondary": "review", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
{"prompt": "search across message bodies is being asked for by three customers and we have no plan for it. i'd like the options weighed — in the storage engine, a separate index, or a managed service — against our EU data residency commitment, our self-hosted customers who won't run another component, and the fact that we have nobody with search experience", "purpose": "planning", "secondary": "review", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
{"prompt": "customers running us on ARM nodes have asked twice now and we've never built for it, which means images, the storage engine's intrinsics, and whatever assumptions our chart makes about node labels. work out what supporting ARM would actually involve and whether it's a week or a quarter, then start on the multi-arch image build if it's the former", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
{"prompt": "we need an endpoint the mobile clients hit on reconnect that returns everything they missed since a given LSN, bounded so a device offline for a month doesn't pull a gigabyte. cap it, tell the client when it's been truncated so it can fall back to a fresh sync, and make sure it works when the LSN is from a shard that has since been split", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
{"prompt":"Kestrel: projects/dovetail/apps/console/routes/usage.svelte 里的 DovetailLumenChartStore 最近在 Playwright 流程中出现间歇性问题。 请完成 responsive layout、空状态、retry、键盘焦点、dark mode 和 reduced motion。\n\n约束:\n- 继续使用 Playwright\n- 保持兼容性和取消语义\n- 改动只限于 DovetailLumenChartStore","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"zh"}
{"prompt":"Does DovetailSableParserService 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":"Is there a cleaner way to separate DovetailSummitProxyStore's transport, persistence, and retry policy without changing its API or timing behavior? Go ahead and make that structural change.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Test Suite 'DovetailEmberRelayFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[DovetailEmberRelayFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/dovetail/ml/pipeline/features.py:144: error: -[DovetailEmberRelayFlowTests 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 '-[DovetailEmberRelayFlowTests 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 DovetailEmberRelayFlow state described above: responsive layout, correct selection restoration, keyboard focus, accessible labels, dark mode, and reduced-motion behavior.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
{"prompt":"Lumen: # projects/dovetail/src/sync/reconcile.ts\n[worker.dovetailnimbusformflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailnimbusformflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailnimbusformflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailNimbusFormFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44138\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/dovetail/src/sync/reconcile.ts and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
{"prompt":"The behavior of DovetailWrenExportService is stable, yet consumers are reconstructing its contract from tests, Slack threads, and scattered comments in projects/dovetail/apps/console/routes/usage.svelte. Turn the repository behavior into a compact reference with prerequisites, request and response examples, failure semantics, a rollback note, and links to the authoritative config keys.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Playwright operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"DovetailFlintTimelineCoordinator: why is this odd","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
{"prompt":"Maple: The DovetailVelaDrawerFlow surface in projects/dovetail/app/src/main/SyncWorker.kt 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.3,"slice":"core","lang":"en"}
{"prompt":"Security flagged DovetailMarbleTokenService for a read-only pass because its Terraform boundary mixes tenant data, retries, and cancellation in subtle ways. Follow one successful request and each early exit through the code, then rank findings by impact and state which apparent hazards are already ruled out by invariants.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Terraform operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
{"prompt":"UI ticket DES-44128: finish the compact DovetailCraneWorkspaceFlow filter experience\n\nRoute: /catalog/search\nSource: projects/dovetail/db/migrations/20260730_events.sql\nFramework: Playwright\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 DovetailCraneWorkspaceFlow'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":"How does DovetailAmberFilterFlow propagate cancellation through the Terraform boundary, and are there code paths where ownership becomes ambiguous? Nothing is reported broken, so keep this to an explanation of current behavior.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"Em projects/dovetail/web/components/FilterDrawer.vue, o DovetailDeltaCanvasStore tem um problema intermitente no fluxo de Redis Streams. A causa já é conhecida: mude apenas o timeout de staging de 15 para 30 segundos e ajuste a assertion.\n\nRestrições:\n- continuar com Redis Streams\n- preservar compatibilidade e cancelamento\n- limitar a mudança ao DovetailDeltaCanvasStore","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"pt"}
{"prompt":"For DovetailPrismCacheCoordinator, assess ownership and failure handling in projects/dovetail/app/src/main/SyncWorker.kt; once that is complete, capture the contract and rollback note for consumers. Work from projects/dovetail/app/src/main/SyncWorker.kt, stay with Playwright, and make rollback possible without deleting user data. Keep the two outcomes separately reviewable.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
{"prompt":"Incident timeline — INC-44148\n\n08:02 deploy DovetailWillowCodecFlow 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\nTurn the artifact into a reversible DovetailWillowCodecFlow rollout strategy: phases, dual-operation window, validation, ownership, removal criteria, and explicit stop conditions.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
{"prompt":"DovetailJuniperCLICoordinator: document, then assess","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.4,"slice":"mixed","lang":"en"}
{"prompt":"What is the safest way to split projects/dovetail/cmd/exporter/main.py into independently owned modules while DovetailMoonlitSDKService's public behavior remains frozen for the next release?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"en"}
{"prompt":"Rename DovetailTideWorkerStore's staleLease state","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
{"prompt":"Ticket OPS-44133: retire the legacy replay path for DovetailPrismCacheFlow\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 DovetailPrismCacheFlow, 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":"thread 'tokio-runtime-worker' panicked at projects/dovetail/web/components/FilterDrawer.vue: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: dovetailcopperbridgeflow::scheduler::LeaseTask::flush\n at ./projects/dovetail/web/components/FilterDrawer.vue:217:18\n 4: dovetailcopperbridgeflow::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\nFind the source of this DovetailCopperBridgeFlow symptom by following task lifetime, cursor movement, durable writes, and cleanup. Propose code only after the evidence supports one cause.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
{"prompt":"Does DovetailBasilRunnerService 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":"DovetailCedarPolicyCoordinator: assess, then document","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
{"prompt":"Nimbus: Ticket OPS-44111: retire the legacy replay path for DovetailBeaconStoreFlow\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 DovetailBeaconStoreFlow 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":"Opal: What does DovetailOspreyJobService own?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Is DovetailTideWorkerService safe under cancellation?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Release verification found a single stale DovetailSlateEditorStore value; the cause, desired value, and affected assertion are already agreed. Align the one stale configuration entry with production, refresh only its focused snapshot, and leave retries, grace periods, dependencies, and neighboring comments untouched.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Core Data operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Prism: Incident timeline — INC-44116\n\n08:02 deploy DovetailFrostPanelFlow 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 DovetailFrostPanelFlow 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":"Could the reasoning behind DovetailDriftConsoleStore's Redis Streams choices be captured as an ADR for engineers joining the project next quarter?","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"DovetailFlintTimelineService 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":"Two asks around DovetailCopperBridgeCoordinator: (1) find the unknown cause of stale cursors when a page is resumed; (2) give the existing implementation a read-only safety pass. Make rollback possible without deleting user data, and leave a clear boundary between the resulting artifacts or edits.","purpose":"debugging","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
{"prompt":"DovetailPineMetricsCoordinator: ship, then document","purpose":"backendImpl","secondary":"writing","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
{"prompt":"Describe DovetailFernSnapshotStore's error envelope","purpose":"review","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
{"prompt":"Quartz: Ticket OPS-44149: retire the legacy replay path for DovetailEchoRegistryFlow\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\nMap a safe route from the current DovetailEchoRegistryFlow 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":"En projects/dovetail/config/staging.toml, DovetailBeaconStoreStore tiene un problema intermitente en el flujo de React 19. La causa ya está clara: cambia solo el timeout de staging de 15 a 30 segundos y ajusta su assertion.\n\nRestricciones:\n- seguir con React 19\n- conservar compatibilidad y cancelación\n- limitar el cambio a DovetailBeaconStoreStore","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"boundary","lang":"es"}
{"prompt":"DovetailRavenSessionService'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":"Raven: Incident timeline — INC-44118\n\n08:02 deploy DovetailFernSnapshotFlow 6.18.0 begins in eu-west\n08:06 write latency rises from 22 ms to 410 ms; error rate remains below 0.2%\n08:08 autoscaler adds three workers; queue lag continues rising\n08:11 on-call disables feature flag `parallel_commit_v2`\n08:13 latency returns to 31 ms, but duplicate-event warnings increase\n08:19 traffic moved to the previous worker pool\n08:27 queue lag clears; no customer data loss observed\n\nWhat changed\nThe release moved metrics emission into the same Promise.all as the durable write and added NFC normalization to event payloads. Database CPU peaked at 64%, Redis stayed normal, and the downstream consumer reported 183 duplicate keys that its uniqueness constraint ignored.\n\nConstraints from incident command\n- no emergency schema change\n- preserve tenant ordering\n- canary must include a forced consumer rebalance\n- rollback decision must use two independent signals\n- ownership between storage and ingestion teams must be explicit\n\nThe next regular release window is in six days.\n\nTurn the artifact into a reversible DovetailFernSnapshotFlow rollout strategy: phases, dual-operation window, validation, ownership, removal criteria, and explicit stop conditions.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
{"prompt":"Fresh release brief for DovetailAcornWidgetCoordinator:\n- primary outcome: assess ownership and failure handling in projects/dovetail/engine/render/atlas.cpp\n- companion outcome: capture the contract and rollback note for consumers\n- repository entry point: projects/dovetail/engine/render/atlas.cpp\n- platform constraint: Terraform\n- known complication: an empty state that flashes before cached data arrives\n\nBoth results are required, but they should remain independently reviewable. Make rollback possible without deleting user data; 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.8,"slice":"mixed","lang":"en"}
{"prompt":"DovetailCoralUploadCoordinator is blocking the next release because a deadlock that appears only during shutdown. I need two concrete outcomes from a single pass: find the unknown cause of a deadlock that appears only during shutdown, and capture the contract and rollback note for consumers. Use the existing Core Data conventions in projects/dovetail/Sources/CLI/Commands/Doctor.swift; make rollback possible without deleting user data. 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":"debugging","secondary":"writing","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
{"prompt":"# projects/dovetail/pkg/cache/lease.rs\n[worker.dovetailasterwebhookflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailasterwebhookflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailasterwebhookflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailAsterWebhookFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44126\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/dovetail/pkg/cache/lease.rs and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
{"prompt":"On compact widths, DovetailCinderAuthService'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":"Sable: Incident timeline — INC-44156\n\n08:02 deploy DovetailMosaicGridCoordinator 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 DovetailMosaicGridCoordinator 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":"Tide: Ticket OPS-44143: retire the legacy replay path for DovetailLumenChartFlow\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 DovetailLumenChartFlow decision as an ADR with context, chosen behavior, rejected alternatives, compatibility window, and measurable rollback trigger.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
{"prompt":"A previously stable test around DovetailWillowCodecStore now fails one run in twenty. Determine whether ordering, locale, or leaked state is responsible.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"diff --git a/projects/dovetail/ui/settings/PrivacyPane.tsx b/projects/dovetail/ui/settings/PrivacyPane.tsx\nindex 62d71aa..90f3c1e 100644\n--- a/projects/dovetail/ui/settings/PrivacyPane.tsx\n+++ b/projects/dovetail/ui/settings/PrivacyPane.tsx\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\nÀ partir de ce contexte, traite la demande indiquée en préservant API, compatibilité et rollback, avec des décisions explicites. Read the artifact above as a skeptical reviewer. Is DovetailTideWorkerFlow'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":"DovetailMicaProfileCoordinator: polish the last piece","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"Support wants the behavior in projects/dovetail/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":"Ticket OPS-44113: retire the legacy replay path for DovetailWrenExportFlow\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\nCon este contexto, resuelve la petición indicada manteniendo API, compatibilidad y rollback; deja claras las decisiones y la evidencia. Add the bounded DovetailWrenExportFlow replay flow described here, including authorization, key rotation, cancellation, lag metrics, and tests for malformed and cross-tenant cursors.","purpose":"backendImpl","secondary":"writing","mixed":true,"difficulty":0.9,"slice":"mixed","lang":"en"}
{"prompt":"Umbra: Ticket OPS-44136: retire the legacy replay path for DovetailGarnetModalFlow\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 DovetailGarnetModalFlow 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":"DovetailFernSnapshotCoordinator: document, then assess","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
{"prompt":"Corrija o timeout de DovetailCloudReconcilerService","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"boundary","lang":"pt"}
{"prompt":"Before we approve DovetailNimbusFormService, 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":"core","lang":"en"}
{"prompt":"DovetailKiteSchedulerFlow needs an idempotent replay endpoint backed by Core Data; accept a cursor, cap each page at 500 items, and return a stable continuation token.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"DovetailSpruceDaemonCoordinator: ship a sensible version","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
{"prompt":"The next client release depends on a new DovetailCoralUploadService capability in projects/dovetail/Sources/App/SessionStore.swift, with Core Data already chosen by the platform group. Implement the endpoint and durable cursor, enforce tenant authorization and idempotency, emit useful spans, cap work per request, and include focused tests for retries, cancellation, and malformed cursors.\n\nConstraints:\n- make rollback possible without deleting user data\n- stay compatible with the existing Core Data deployment\n- keep the work scoped to DovetailCoralUploadService and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
{"prompt":"Vela: The data is already available in projects/dovetail/pkg/cache/lease.rs; render it as a sortable table with a compact mobile card fallback, visible focus, and honest loading placeholders.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Parse DovetailHarborIndexStore's signed cursor","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Two deliverables are holding up DovetailWrenExportCoordinator. First, find the unknown cause of out-of-order events after consumer rebalancing. In the same workstream, give the existing implementation a read-only safety pass. The relevant starting point is projects/dovetail/app/src/main/SyncWorker.kt, which follows Playwright conventions and currently suffers from out-of-order events after consumer rebalancing. Make rollback possible without deleting user data.\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":"debugging","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
{"prompt":"DovetailSpruceDaemonService returns one extra item only when the page boundary lands on a deleted record. Reconstruct the cursor transitions in projects/dovetail/web/components/FilterDrawer.vue and find where the invariant breaks.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"Willow: Ticket OPS-44141: retire the legacy replay path for DovetailMicaProfileFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nUsing this as the starting evidence, propose a staged DovetailMicaProfileFlow migration with compatibility seams, owners, canary metrics, rollback gates, and a no-code first milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
{"prompt":"// projects/dovetail/infra/modules/edge/main.tf\nfinal class DovetailFlintTimelineFlowCoordinator {\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 DovetailFlintTimelineFlow; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
{"prompt":"DovetailWillowCodecCoordinator: smooth out this interaction","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"PM is preparing the DovetailIrisBatchService rollout and needs prose that works for both application developers and the operators who will carry the pager. 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- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside DovetailIrisBatchService\n- make rollback possible without deleting user data\n\nThe relevant code crosses game tooling, data pipelines, macOS. Prefer evidence from the repository and make any assumption explicit.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Split DovetailJuniperCLIStore without behavior changes","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Incident timeline — INC-44154\n\n08:02 deploy DovetailMarbleTokenCoordinator 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 DovetailMarbleTokenCoordinator, 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":"DovetailSlateEditorCoordinator: document, then assess","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
{"prompt":"A copied hex color in DovetailEmberRelayService 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":"DovetailTideWorkerCoordinator needs a paired pass: assess ownership and failure handling in projects/dovetail/workers/thumbnail/consumer.ex, plus capture the contract and rollback note for consumers. Use projects/dovetail/workers/thumbnail/consumer.ex as the source of truth, preserve the Terraform contract, and avoid unrelated cleanup.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
{"prompt":"Xylem: # projects/dovetail/cmd/exporter/main.py\n[worker.dovetailslateeditorflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailslateeditorflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailslateeditorflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailSlateEditorFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44117\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/dovetail/cmd/exporter/main.py and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
{"prompt":"Yarrow: Two asks around DovetailNovaPickerCoordinator: (1) lay out a staged migration for DovetailNovaPickerCoordinator; (2) also add the visible loading and offline states. Make rollback possible without deleting user data, and leave a clear boundary between the resulting artifacts or edits.","purpose":"planning","secondary":"frontendImpl","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
{"prompt":"In projects/dovetail/packages/api/openapi.yaml hat DovetailBeaconStoreService ein sporadisches Problem im React 19-Ablauf. Lies den aktuellen Ablauf und bewerte Ownership, Abbruch und Reihenfolge; ich brauche nur die Analyse.\n\nRandbedingungen:\n- React 19 weiterverwenden\n- Kompatibilität und Abbruchsemantik erhalten\n- Änderung auf DovetailBeaconStoreService begrenzen Mache Annahmen explizit, nenne Repository-Belege und bleibe rund um DovetailBeaconStoreService mit React 19 kompatibel.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"de"}
{"prompt":"DovetailFrostPanelCoordinator: correct, then assess","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
{"prompt":"Outline a safer DovetailCedarPolicyStore cutover","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"Incident timeline — INC-44150\n\n08:02 deploy DovetailDriftConsoleCoordinator 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 DovetailDriftConsoleCoordinator 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":"Fresh release brief for DovetailBeaconStoreCoordinator:\n- primary outcome: separate DovetailBeaconStoreCoordinator's policy from transport without behavior changes\n- companion outcome: capture the contract and rollback note for consumers\n- repository entry point: projects/dovetail/config/staging.toml\n- platform constraint: React 19\n- known complication: a feature flag whose default differs between environments\n\nBoth results are required, but they should remain independently reviewable. Make rollback possible without deleting user data; retain serialization and authorization boundaries; cover cancellation, idempotent retries, and rollback; and avoid drive-by cleanup. Use the code as the source of truth, call out assumptions, and state how an on-call engineer can tell that either part is unsafe to ship.","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
{"prompt":"thread 'tokio-runtime-worker' panicked at projects/dovetail/pkg/cache/lease.rs: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: dovetailbasilrunnerflow::scheduler::LeaseTask::flush\n at ./projects/dovetail/pkg/cache/lease.rs:217:18\n 4: dovetailbasilrunnerflow::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\nFind the source of this DovetailBasilRunnerFlow 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.8,"slice":"mixed","lang":"en"}
{"prompt":"Describe DovetailJuniperCLIService's error envelope","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"The DovetailEchoRegistryService empty state in projects/dovetail/ui/settings/PrivacyPane.tsx needs a quiet illustration, a retry button, and copy that distinguishes no results from an offline response.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Zephyr: projects/dovetail/internal/auth/refresh.go now contains DovetailFlintTimelineStore'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":"DovetailRainfallDBCoordinator: restructure, then document","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
{"prompt":"Release verification found a single stale DovetailOrbitSyncService value; the cause, desired value, and affected assertion are already agreed. Align the one stale configuration entry with production, refresh only its focused snapshot, and leave retries, grace periods, dependencies, and neighboring comments untouched.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Redis Streams operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Flip DovetailNovaPickerStore's staging toggle","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
{"prompt":"Please resist widening this one: DovetailCoralUploadStore works, but staging still carries a setting that production corrected last month. Correct the known literal and the test that intentionally mirrors it; the final diff should stay local enough for an on-call engineer to verify at a glance.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside DovetailCoralUploadStore\n- make rollback possible without deleting user data\n\nThe relevant code crosses game tooling, data pipelines, macOS. Prefer evidence from the repository and make any assumption explicit.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"DovetailRavenSessionCoordinator: maybe tighten this up","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"Lay out a two-milestone strategy for eliminating two validators with subtly different error strings in DovetailCinderAuthStore, with risk checks and a crisp definition of done for each milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Flip DovetailPrismCacheService's staging toggle","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
{"prompt":"DovetailEchoRegistryCoordinator: make this less weird","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"Lay out a two-milestone strategy for eliminating two validators with subtly different error strings in DovetailBirchMigratorService, with risk checks and a crisp definition of done for each milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Add a bounded DovetailBirchMigratorStore 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":"Test Suite 'DovetailSummitProxyCoordinatorTests' started at 2026-07-30 09:22:14.018\nTest Case '-[DovetailSummitProxyCoordinatorTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/dovetail/services/ledger/replay.go:144: error: -[DovetailSummitProxyCoordinatorTests 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 '-[DovetailSummitProxyCoordinatorTests testRestoresSelectionAfterBackgrounding]' failed (4.812 seconds).\n\nSimulator: iPhone 17 Pro, iOS 27.0, en_US, content size XXXL, Reduce Motion enabled. The screenshot looks correct. The mismatch is the internal selected-segment index after the scene becomes active; tapping Apply a second time makes it three again.\n\nBring DovetailSummitProxyCoordinator's sheet to release quality across phone and tablet layouts; preserve its data flow while correcting selection, keyboard, VoiceOver, and animation states.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
{"prompt":"How should DovetailQuartzPlayerService be decomposed?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"boundary","lang":"en"}
{"prompt":"Ticket OPS-44123: retire the legacy replay path for DovetailRainfallDBFlow\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 DovetailRainfallDBFlow 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":"Checkout: A flaky failure around DovetailAmberFilterStore survived three attempted fixes, so I want the evidence and invariants traced before another patch lands. Trace task lifetime, cursor advancement, and durable acknowledgment across reconnects; produce a defensible root cause and the smallest experiment that would falsify it.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside DovetailAmberFilterStore\n- make rollback possible without deleting user data\n\nThe relevant code crosses game tooling, data pipelines, macOS. Prefer evidence from the repository and make any assumption explicit.\n\nA real symptom is present, so follow evidence to a cause rather than stopping at a walkthrough.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
{"prompt":"Exporter: Ticket OPS-44151: retire the legacy replay path for DovetailMapleQueueCoordinator\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nTurn the artifact into a reversible DovetailMapleQueueCoordinator rollout strategy: phases, dual-operation window, validation, ownership, removal criteria, and explicit stop conditions.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
{"prompt":"Design handed over a final pass for DovetailWrenExportStore, and the basic data flow in projects/dovetail/app/src/main/SyncWorker.kt already works. Finish the responsive layout, empty and retry states, keyboard order, VoiceOver labels, dark appearance, and reduced-motion transition while preserving the existing data-loading code.\n\nConstraints:\n- make rollback possible without deleting user data\n- stay compatible with the existing Playwright deployment\n- keep the work scoped to DovetailWrenExportStore and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Queue DovetailOpalRouterStore's expired sessions","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"# projects/dovetail/src/sync/reconcile.ts\n[worker.dovetailirisbatchcoordinator]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailirisbatchcoordinator.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailirisbatchcoordinator.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailIrisBatchCoordinator.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44158\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/dovetail/src/sync/reconcile.ts. 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":"PM needs a concise migration note for DovetailIrisBatchFlow, including the user impact, rollback trigger, and the one configuration key operators must change.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Give DovetailEchoRegistryStore'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":"Scheduler: // projects/dovetail/Sources/App/SessionStore.swift\nfinal class DovetailCoralUploadFlowCoordinator {\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 DovetailCoralUploadFlow'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":"Please resist widening this one: DovetailQuartzPlayerStore works, but staging still carries a setting that production corrected last month. Correct the known literal and the test that intentionally mirrors it; the final diff should stay local enough for an on-call engineer to verify at a glance.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside DovetailQuartzPlayerStore\n- make rollback possible without deleting user data\n\nThe relevant code crosses game tooling, data pipelines, macOS. Prefer evidence from the repository and make any assumption explicit.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Memory attributed to DovetailDriftConsoleFlow 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.6,"slice":"core","lang":"en"}
{"prompt":"En projects/dovetail/app/src/main/SyncWorker.kt, DovetailVelaDrawerService tiene un problema intermitente en el flujo de Playwright. Separa responsabilidades y elimina duplicación, conservando API, wire values, orden y comportamiento observable.\n\nRestricciones:\n- seguir con Playwright\n- conservar compatibilidad y cancelación\n- limitar el cambio a DovetailVelaDrawerService Explicita los supuestos, señala la evidencia del repositorio y mantén compatibilidad con Playwright alrededor de DovetailVelaDrawerService.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"es"}
{"prompt":"Bring DovetailVelaDrawerStore'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":"Three teams extended DovetailMapleQueueService independently, leaving parallel adapters and normalization branches that are supposed to behave identically. Introduce one ownership boundary for storage and scheduling, collapse pass-through wrappers, and characterize ordering and cancellation before moving code.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current React 19 operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
{"prompt":"Extract DovetailFrostPanelService's parsing loop","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"DovetailMoonlitSDKCoordinator: the screen feels unfinished","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
{"prompt":"Dashboard: projects/dovetail/app/src/main/SyncWorker.kt の DovetailLumenChartService で、Playwright の flow に断続的な問題が起きています。 段階、互換性、metrics、rollback、ownership を提案し、コード変更の前で止めてください。\n\n制約:\n- Playwright を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は DovetailLumenChartService のみ","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"ja"}
{"prompt":"DovetailOspreyJobCoordinator needs a paired pass: finish DovetailOspreyJobCoordinator's responsive empty and retry states, plus give the existing implementation a read-only safety pass. Use projects/dovetail/Sources/CLI/Commands/Doctor.swift as the source of truth, preserve the Core Data contract, and avoid unrelated cleanup.","purpose":"frontendImpl","secondary":"review","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
{"prompt":"Two deliverables are holding up DovetailOrbitSyncCoordinator. First, find the unknown cause of cancellation being swallowed at the repository boundary. In the same workstream, give the existing implementation a read-only safety pass. The relevant starting point is projects/dovetail/infra/modules/edge/main.tf, which follows Redis Streams conventions and currently suffers from cancellation being swallowed at the repository boundary. Make rollback possible without deleting user data.\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":"debugging","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
{"prompt":"For DovetailHarborIndexCoordinator, assess ownership and failure handling in projects/dovetail/lib/codec/frame.cc; once that is complete, capture the contract and rollback note for consumers. Work from projects/dovetail/lib/codec/frame.cc, stay with Terraform, and make rollback possible without deleting user data. Keep the two outcomes separately reviewable.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
{"prompt":"Worker: Incident timeline — INC-44144\n\n08:02 deploy DovetailBirchMigratorFlow 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 DovetailBirchMigratorFlow migration with compatibility seams, owners, canary metrics, rollback gates, and a no-code first milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
{"prompt":"Where did DovetailOspreyJobStore's cursor drift?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"For DovetailCloudReconcilerCoordinator, separate DovetailCloudReconcilerCoordinator's policy from transport without behavior changes; once that is complete, correct the known stale timeout beside it. Work from projects/dovetail/cmd/exporter/main.py, stay with Core Data, and make rollback possible without deleting user data. Keep the two outcomes separately reviewable.","purpose":"refactor","secondary":"quickFix","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
{"prompt":"I inherited DovetailFrostPanelStore and need a careful read of projects/dovetail/pkg/cache/lease.rs before I can sign off on the next release. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- make rollback possible without deleting user data\n- stay compatible with the existing React 19 deployment\n- keep the work scoped to DovetailFrostPanelStore and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.\n\nNothing is reported broken, so judge and explain current behavior without inventing a failure.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Read projects/dovetail/db/migrations/20260730_events.sql and tell me whether DovetailWillowCodecService can acknowledge work before its durable write completes; this is a read-only safety pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Ticket OPS-44131: retire the legacy replay path for DovetailNovaPickerFlow\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 DovetailNovaPickerFlow 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":"# projects/dovetail/ml/pipeline/features.py\n[worker.dovetailcloudreconcilerflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailcloudreconcilerflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailcloudreconcilerflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailCloudReconcilerFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44127\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 DovetailCloudReconcilerFlow'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":"Test Suite 'DovetailLedgerGateFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[DovetailLedgerGateFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/dovetail/workers/thumbnail/consumer.ex:144: error: -[DovetailLedgerGateFlowTests 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 '-[DovetailLedgerGateFlowTests testRestoresSelectionAfterBackgrounding]' failed (4.812 seconds).\n\nSimulator: iPhone 17 Pro, iOS 27.0, en_US, content size XXXL, Reduce Motion enabled. The screenshot looks correct. The mismatch is the internal selected-segment index after the scene becomes active; tapping Apply a second time makes it three again.\n\nFind the source of this DovetailLedgerGateFlow symptom by following task lifetime, cursor movement, durable writes, and cleanup. Propose code only after the evidence supports one cause.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
{"prompt":"Simulator: Test Suite 'DovetailAmberFilterCoordinatorTests' started at 2026-07-30 09:22:14.018\nTest Case '-[DovetailAmberFilterCoordinatorTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/dovetail/workers/thumbnail/consumer.ex:144: error: -[DovetailAmberFilterCoordinatorTests 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 '-[DovetailAmberFilterCoordinatorTests 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 DovetailAmberFilterCoordinator state described above: responsive layout, correct selection restoration, keyboard focus, accessible labels, dark mode, and reduced-motion behavior.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"pasted-context","lang":"en"}
{"prompt":"Summarize the DovetailRainfallDBService changes","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Runbook: Test Suite 'DovetailVelaDrawerCoordinatorTests' started at 2026-07-30 09:22:14.018\nTest Case '-[DovetailVelaDrawerCoordinatorTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/dovetail/apps/console/routes/usage.svelte:144: error: -[DovetailVelaDrawerCoordinatorTests 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 '-[DovetailVelaDrawerCoordinatorTests 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\n上のコンテキストを基に依頼された作業を行い、API、互換性、rollback を維持し、根拠と判断を明確にしてください。 Finish the visible DovetailVelaDrawerCoordinator state described above: responsive layout, correct selection restoration, keyboard focus, accessible labels, dark mode, and reduced-motion behavior.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
{"prompt":"Is there a cleaner way to separate DovetailEmberRelayStore's transport, persistence, and retry policy without changing its API or timing behavior? Go ahead and make that structural change.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Style DovetailCopperBridgeService's offline state","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Security flagged DovetailIrisBatchStore for a read-only pass because its Playwright boundary mixes tenant data, retries, and cancellation in subtle ways. Follow one successful request and each early exit through the code, then rank findings by impact and state which apparent hazards are already ruled out by invariants.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Playwright operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.\n\nNothing is reported broken, so judge and explain current behavior without inventing a failure.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Two asks around DovetailCraneWorkspaceCoordinator: (1) produce a consumer guide for DovetailCraneWorkspaceCoordinator; (2) correct the known stale timeout beside it. Make rollback possible without deleting user data, and leave a clear boundary between the resulting artifacts or edits.","purpose":"writing","secondary":"quickFix","mixed":true,"difficulty":0.4,"slice":"mixed","lang":"en"}
{"prompt":"The destination for DovetailKiteSchedulerService is broadly agreed; the missing piece is a reversible route from projects/dovetail/Sources/CLI/Commands/Doctor.swift to that target. Propose the module boundaries and migration choreography, compare two viable approaches, and make the risk, cost, and reversibility tradeoffs explicit.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside DovetailKiteSchedulerService\n- make rollback possible without deleting user data\n\nThe relevant code crosses game tooling, data pipelines, macOS. Prefer evidence from the repository and make any assumption explicit.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
{"prompt":"Support wants the behavior in projects/dovetail/ml/pipeline/features.py recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"What sequence would let DovetailMicaProfileService adopt React 19 with dual reads but no dual writes? Include data validation, canary scope, and the decision that ends compatibility mode.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Production says DovetailAcornWidgetStore is healthy while users see stalled work, and the current telemetry does not reveal which ownership boundary lost progress. Reconstruct the failing timeline from logs and tests, identify which invariant first breaks, and distinguish causal signals from effects or cleanup noise.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Terraform operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.\n\nA real symptom is present, so follow evidence to a cause rather than stopping at a walkthrough.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
{"prompt":"DovetailNimbusFormCoordinator: untangle the messy bit","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
{"prompt":"Trace: projects/dovetail/config/staging.toml の DovetailMapleQueueFlow で、React 19 の flow に断続的な問題が起きています。 現在の flow を読み、ownership、cancel、順序が安全か評価してください。分析だけで十分です。\n\n制約:\n- React 19 を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は DovetailMapleQueueFlow のみ","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"boundary","lang":"ja"}
{"prompt":"Move DovetailMapleQueueStore'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.6,"slice":"core","lang":"en"}
{"prompt":"Compare the old and new DovetailAtlasSearchFlow adapters for ordering, error mapping, and shutdown guarantees; report semantic differences without proposing edits. Nothing is reported broken, so keep this to an explanation of current behavior.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Please resist widening this one: DovetailSummitProxyService works, but staging still carries a setting that production corrected last month. Correct the known literal and the test that intentionally mirrors it; the final diff should stay local enough for an on-call engineer to verify at a glance.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside DovetailSummitProxyService\n- make rollback possible without deleting user data\n\nThe relevant code crosses game tooling, data pipelines, macOS. Prefer evidence from the repository and make any assumption explicit.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Diff: projects/dovetail/services/ledger/replay.go 里的 DovetailDeltaCanvasService 最近在 Redis Streams 流程中出现间歇性问题。 请拆分职责并去掉重复,同时保持 API、wire value、顺序和可观察行为不变。\n\n约束:\n- 继续使用 Redis Streams\n- 保持兼容性和取消语义\n- 改动只限于 DovetailDeltaCanvasService","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"zh"}
{"prompt":"Profiler: projects/dovetail/infra/modules/edge/main.tf has grown through several launches, and DovetailOrbitSyncStore now mixes policy, transport, persistence, and metrics in one place. Separate those responsibilities into focused units, remove the duplicated normalization branches, and keep public types, wire values, log fields, timing, and test-observable behavior exactly the same.\n\nConstraints:\n- make rollback possible without deleting user data\n- stay compatible with the existing Redis Streams deployment\n- keep the work scoped to DovetailOrbitSyncStore and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
{"prompt":"Where did DovetailAsterWebhookService's cursor drift?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Compare DovetailCraneWorkspaceService's two adapters","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"How should DovetailNovaPickerService be decomposed?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"UI ticket DES-44124: finish the compact DovetailHarborIndexFlow filter experience\n\nRoute: /catalog/search\nSource: projects/dovetail/engine/render/atlas.cpp\nFramework: Terraform\n\nCurrent QA notes\n- at 390 px the filter sheet is wider than the viewport by 16 px\n- returning from background selects segment four while the visible chip says three\n- keyboard focus falls behind the sheet after Apply\n- VoiceOver announces the internal value `sync_state_retriable`\n- the loading spinner never resolves into an offline action\n- dark appearance uses the light divider token\n- Reduce Motion still runs the spring transition\n- at accessibility XXXL the footer buttons overlap\n\nBrowser console during the transition:\n[ui] sheet.presented source=toolbar selected=3\n[ui] scene.inactive cachedSelection=3\n[ui] scene.active restoredSelection=4\n[ui] focus.restore target=filter-button result=detached\n[ui] network.status value=offline renderedState=loading\n\nAcceptance criteria from design\nThe phone layout should use an edge-to-edge sheet; tablet keeps the anchored panel. Applying filters returns focus to the opener and announces the result count. Empty, offline, retrying, and loaded states must be visually distinct. Use existing design tokens, support keyboard escape, preserve current data requests, and provide a no-animation path when Reduce Motion is enabled.\n\nUse the UI evidence to complete DovetailHarborIndexFlow'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":"2026-07-30T08:14:11.409Z level=info service=dovetailsprucedaemonflow pod=dovetailsprucedaemonflow-7cf8 request_id=44145 msg=\"lease acquired\" partition=12 epoch=884\n2026-07-30T08:14:11.417Z level=debug service=dovetailsprucedaemonflow request_id=44145 msg=\"batch loaded\" rows=250 cursor=01JZ7M\n2026-07-30T08:14:11.590Z level=warn service=dovetailsprucedaemonflow request_id=44145 msg=\"heartbeat delayed\" elapsed_ms=3012 deadline_ms=3000\n2026-07-30T08:14:11.593Z level=info service=dovetailsprucedaemonflow request_id=44145 msg=\"lease renewed\" partition=12 epoch=885\n2026-07-30T08:14:11.598Z level=error service=dovetailsprucedaemonflow request_id=44145 msg=\"commit rejected\" expected_epoch=884 actual_epoch=885\n2026-07-30T08:14:11.601Z level=info service=dovetailsprucedaemonflow request_id=44145 msg=\"retry scheduled\" attempt=1 delay_ms=0\n2026-07-30T08:14:11.617Z level=warn service=dovetailsprucedaemonflow request_id=44145 msg=\"duplicate key ignored\" event_id=ev_29af\n2026-07-30T08:14:11.620Z level=info service=dovetailsprucedaemonflow request_id=44145 msg=\"batch acknowledged\" rows=250\n\nDeployment is Kubernetes 1.34 with four replicas. The warning begins after a consumer rebalance and stops after the pod is restarted. Queue depth remains flat, CPU is 28%, and the readiness probe never fails.\n\n请根据以上上下文完成对应工作,保持 API、兼容性和 rollback,并明确说明证据和取舍。 Reconstruct the DovetailSpruceDaemonFlow 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":"The data is already available in projects/dovetail/db/migrations/20260730_events.sql; render it as a sortable table with a compact mobile card fallback, visible focus, and honest loading placeholders.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Collapse the DovetailFernSnapshotService wrappers","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Console: The name pendingAck means two different things across DovetailMarbleTokenFlow'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":"Split projects/dovetail/ui/settings/PrivacyPane.tsx by responsibility, not file length: isolate parsing, validation, and persistence while leaving the exported surface and call sequence untouched.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
{"prompt":"Read projects/dovetail/crates/index/src/segment.rs and tell me whether DovetailGarnetModalService 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":"Map DovetailRainfallDBStore's ownership split","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"boundary","lang":"en"}
{"prompt":"projects/dovetail/crates/index/src/segment.rs now contains DovetailBasilRunnerStore'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":"Could DovetailMosaicGridStore show the active React 19 sync phase as an accessible progress row, including reduced-motion behavior?","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"diff --git a/projects/dovetail/services/ledger/replay.go b/projects/dovetail/services/ledger/replay.go\nindex 62d71aa..90f3c1e 100644\n--- a/projects/dovetail/services/ledger/replay.go\n+++ b/projects/dovetail/services/ledger/replay.go\n@@ -41,18 +41,27 @@ export async function reconcile(input: Batch) {\n- const rows = input.items.map(normalize);\n- await store.write(rows);\n- await metrics.count(\"reconciled\", rows.length);\n+ const scope = tracer.startActiveSpan(\"reconcile\");\n+ try {\n+ const rows = input.items.map(normalize);\n+ await Promise.all([\n+ store.write(rows),\n+ metrics.count(\"reconciled\", rows.length),\n+ ]);\n+ return { cursor: input.next, count: rows.length };\n+ } finally {\n+ scope.end();\n+ }\n }\n\n@@ -88,7 +97,11 @@ function normalize(item: WireItem): Row {\n- return { id: item.id, value: item.payload ?? \"\" };\n+ return {\n+ id: item.id.trim(),\n+ value: item.payload?.normalize(\"NFC\") ?? \"\",\n+ receivedAt: clock.now(),\n+ };\n }\n\nPR note: staging p95 drops by 18 ms. Tests assert row counts but not whether metrics happen before the durable write.\n\nConsolidate DovetailQuartzPlayerFlow'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":"Split projects/dovetail/services/ledger/replay.go by responsibility, not file length: isolate parsing, validation, and persistence while leaving the exported surface and call sequence untouched.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"DovetailSableParserCoordinator: handle the lingering thing","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"DovetailCinderAuthCoordinator: deal with the small issue","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
{"prompt":"Incident timeline — INC-44130\n\n08:02 deploy DovetailOpalRouterFlow 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 DovetailOpalRouterFlow, 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":"Could DovetailAsterWebhookStore migrate incrementally?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"vague-eval","lang":"en"}
{"prompt":"Polish the DovetailCopperBridgeStore toolbar","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
{"prompt":"DovetailLumenChartCoordinator: the docs need something","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"vague-eval","lang":"en"}
{"prompt":"On compact widths, DovetailSableParserStore'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":"Workspace: Split DovetailCedarPolicyService without behavior changes","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"thread 'tokio-runtime-worker' panicked at projects/dovetail/workers/thumbnail/consumer.ex: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: dovetailravensessionflow::scheduler::LeaseTask::flush\n at ./projects/dovetail/workers/thumbnail/consumer.ex:217:18\n 4: dovetailravensessionflow::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 DovetailRavenSessionFlow 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":"Extract DovetailHarborIndexService's parsing loop","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Repository: // projects/dovetail/config/staging.toml\nfinal class DovetailPineMetricsFlowCoordinator {\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\nBearbeite auf Basis dieses Kontexts die beschriebene Aufgabe; API, Kompatibilität und Rollback müssen erhalten bleiben. Wire DovetailPineMetricsFlow's schema, storage, handler, and worker path so continuation is signed, duplicate delivery is stable, and shutdown cannot acknowledge uncommitted work.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
{"prompt":"Release verification found a single stale DovetailAtlasSearchService value; the cause, desired value, and affected assertion are already agreed. Align the one stale configuration entry with production, refresh only its focused snapshot, and leave retries, grace periods, dependencies, and neighboring comments untouched.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- make rollback possible without deleting user data\n- retain the current Core Data operational envelope\n\nSeveral teams work in this game tooling, data pipelines, macOS monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Unifie les validateurs de DovetailCloudReconcilerStore","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"fr"}
{"prompt":"DovetailAsterWebhookCoordinator needs a paired pass: produce a consumer guide for DovetailAsterWebhookCoordinator, plus give the existing implementation a read-only safety pass. Use projects/dovetail/crates/index/src/segment.rs as the source of truth, preserve the React 19 contract, and avoid unrelated cleanup.","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
{"prompt":"DovetailQuartzPlayerCoordinator is blocking the next release because a flaky snapshot caused by locale-dependent sorting. I need two concrete outcomes from a single pass: finish DovetailQuartzPlayerCoordinator's responsive empty and retry states, and capture the contract and rollback note for consumers. Use the existing Redis Streams conventions in projects/dovetail/web/components/FilterDrawer.vue; make rollback possible without deleting user data. 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":"DovetailDeltaCanvasCoordinator: could this be clearer","purpose":"review","secondary":null,"mixed":false,"difficulty":0.2,"slice":"vague-eval","lang":"en"}
{"prompt":"Incident timeline — INC-44134\n\n08:02 deploy DovetailSableParserFlow 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 DovetailSableParserFlow decision as an ADR with context, chosen behavior, rejected alternatives, compatibility window, and measurable rollback trigger.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
{"prompt":"Does DovetailSlateEditorService preserve ordering?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"# projects/dovetail/lib/codec/frame.cc\n[worker.dovetailacornwidgetflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailacornwidgetflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailacornwidgetflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailAcornWidgetFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44114\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/dovetail/lib/codec/frame.cc and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
{"prompt":"DovetailBasilRunnerCoordinator: check the suspicious part","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
{"prompt":"DovetailBirchMigratorCoordinator: rethink this area","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
{"prompt":"Before we approve DovetailGarnetModalStore, assess whether lost focus when the drawer animation finishes is an actual correctness risk or merely confusing structure. Nothing is reported broken, so keep this to an explanation of current behavior.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"Our support and SDK teams keep answering the same questions about DovetailMosaicGridService, but the current prose in projects/dovetail/pkg/cache/lease.rs only describes the happy path. 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- make rollback possible without deleting user data\n- stay compatible with the existing React 19 deployment\n- keep the work scoped to DovetailMosaicGridService and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"DovetailLedgerGateCoordinator: polish, then correct","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
{"prompt":"Is there a cleaner way to separate DovetailMicaProfileStore's transport, persistence, and retry policy without changing its API or timing behavior? Go ahead and make that structural change.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Pipeline: diff --git a/projects/dovetail/cmd/exporter/main.py b/projects/dovetail/cmd/exporter/main.py\nindex 62d71aa..90f3c1e 100644\n--- a/projects/dovetail/cmd/exporter/main.py\n+++ b/projects/dovetail/cmd/exporter/main.py\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. Add the bounded DovetailMoonlitSDKFlow 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":"This should remain a deliberately small patch: DovetailDriftConsoleService has one known configuration mistake in projects/dovetail/infra/modules/edge/main.tf, not an open-ended failure investigation. 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- make rollback possible without deleting user data\n- stay compatible with the existing Redis Streams deployment\n- keep the work scoped to DovetailDriftConsoleService and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
{"prompt":"For DovetailOpalRouterCoordinator, change DovetailOpalRouterCoordinator's known staging timeout from 15 to 30 seconds; once that is complete, capture the contract and rollback note for consumers. Work from projects/dovetail/infra/modules/edge/main.tf, stay with Redis Streams, and make rollback possible without deleting user data. Keep the two outcomes separately reviewable.","purpose":"quickFix","secondary":"writing","mixed":true,"difficulty":0.4,"slice":"mixed","lang":"en"}
{"prompt":"Gateway: projects/dovetail/lib/codec/frame.cc now contains DovetailMarbleTokenStore's normalization branch three times. Consolidate it behind one private helper, keep call ordering identical, and avoid touching generated code. Please preserve behavior.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"DovetailGarnetModalCoordinator: take care of the warning","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
{"prompt":"Renderer: # projects/dovetail/Sources/CLI/Commands/Doctor.swift\n[worker.dovetailcinderauthflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetailcinderauthflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetailcinderauthflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailCinderAuthFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44142\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 DovetailCinderAuthFlow'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":"Indexer: Split DovetailOpalRouterService without behavior changes","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Documente le contrat DovetailLedgerGateService","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"fr"}
{"prompt":"diff --git a/projects/dovetail/Sources/App/SessionStore.swift b/projects/dovetail/Sources/App/SessionStore.swift\nindex 62d71aa..90f3c1e 100644\n--- a/projects/dovetail/Sources/App/SessionStore.swift\n+++ b/projects/dovetail/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 DovetailOspreyJobFlow'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":"Apparently: Incident timeline — INC-44157\n\n08:02 deploy DovetailAtlasSearchCoordinator 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 DovetailAtlasSearchCoordinator 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":"Lately: # projects/dovetail/services/ledger/replay.go\n[worker.dovetaildeltacanvasflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.dovetaildeltacanvasflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.dovetaildeltacanvasflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.DovetailDeltaCanvasFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-44135\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/dovetail/services/ledger/replay.go and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
{"prompt":"The data is already available in projects/dovetail/Sources/App/SessionStore.swift; render it as a sortable table with a compact mobile card fallback, visible focus, and honest loading placeholders.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
{"prompt":"Walk through DovetailCraneWorkspaceStore's reconcile.ts","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
{"prompt":"Trace DovetailAcornWidgetService's memory growth","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
{"prompt":"Oddly: Incident timeline — INC-44110\n\n08:02 deploy DovetailOrbitSyncFlow 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 DovetailOrbitSyncFlow 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":"Currently: // projects/dovetail/Sources/App/SessionStore.swift\nfinal class DovetailKiteSchedulerCoordinatorCoordinator {\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 DovetailKiteSchedulerCoordinator 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":"Sketch the DovetailPineMetricsService migration","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"vague-eval","lang":"en"}
{"prompt":"Drop DovetailPineMetricsStore's unused import","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
{"prompt":"Today: Incident timeline — INC-44120\n\n08:02 deploy DovetailJuniperCLIFlow 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 DovetailJuniperCLIFlow 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":"Translate the DovetailPrismCacheStore setup notes","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
{"prompt":"Context: Incident timeline — INC-44122\n\n08:02 deploy DovetailCedarPolicyFlow 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 DovetailCedarPolicyFlow decision as an ADR with context, chosen behavior, rejected alternatives, compatibility window, and measurable rollback trigger.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
{"prompt":"Two engineers disagree about whether DovetailAtlasSearchStore's cache is authoritative. Walk the reads and writes in projects/dovetail/cmd/exporter/main.py and settle that question from the code.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
{"prompt":"We expect DovetailAmberFilterService to outgrow its current Terraform arrangement next quarter, but changing everything at once would be risky. Give me a staged design with ownership boundaries, compatibility seams, migration order, telemetry, failure drills, rollback criteria, and explicit decisions we can defer; stop before implementation.\n\nConstraints:\n- make rollback possible without deleting user data\n- stay compatible with the existing Terraform deployment\n- keep the work scoped to DovetailAmberFilterService and its direct tests\n\nThis repository spans game tooling, data pipelines, macOS; use its existing conventions rather than importing a new abstraction.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
{"prompt":"DovetailEmberRelayCoordinator: make the api less awkward","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
{"prompt":"Ist DovetailLedgerGateStore sicher?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"de"}