updating purpose-classifier data:
This commit is contained in:
+200
-200
@@ -1,200 +1,200 @@
|
||||
{"prompt": "the agent one", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "claims stopped auto-assigning overnight and there's nothing obviously wrong:\n\nActiveJob::DeserializationError: Error while trying to deserialize arguments: Couldn't find Claim with 'id'=88412\n from /app/vendor/bundle/ruby/3.3.0/gems/activejob-7.2.1/lib/active_job/arguments.rb:88:in `deserialize_global_id'\n from /app/app/jobs/auto_assign_job.rb:12:in `perform'\n\nSidekiq::Job dead: AutoAssignJob args=[gid://claims/Claim/88412] retries=25\nDead set size: 4,118\n\nclaims created in the last hour: 1,204\nclaims assigned: 0\nclaims table max id: 88,401\n\nsomething is enqueuing jobs for claims that don't exist yet", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "claim documents upload fine and then can't be downloaded, about 1 in 200:\n\nAws::S3::Errors::NoSuchKey (The specified key does not exist.):\n app/services/documents/fetch.rb:41:in `download'\n app/controllers/documents_controller.rb:22:in `show'\n\nupload log for the same document:\n 11:02:14 direct upload started key=claims/88412/scan-001.pdf size=4.1MB\n 11:02:19 direct upload completed etag=\"9c1d0044410bb7b77e91030cc219e1f0\"\n 11:02:19 Document record created id=41882 key=claims/88412/scan-001.pdf\n 11:02:20 antivirus scan queued\n 11:02:44 antivirus scan passed\n 11:02:44 document moved to claims/88412/clean/scan-001.pdf\n\nthe Document row still points at the pre-scan key", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "pipeline caches restore into the wrong workspace occasionally and builds fail bizarrely:\n\ncache key: deps-{{ checksum \"go.sum\" }}-linux-amd64\nrestored from: deps-9c1d0044410bb7b77e91030cc219e1f0a-linux-amd64\nrestore path: /workspace/.cache/go-build\n\nbuild output:\n # github.com/lumen/claims/internal/rating\n internal/rating/table.go:41:2: cannot find package \"github.com/lumen/claims/internal/tariff\"\n note: module github.com/lumen/claims requires go >= 1.24, running go1.22\n\nagent reports:\n workspace /workspace reused from previous job (pipeline 8f2b1c, repo lumen/billing)\n cleanup: skipped (fast-path enabled)", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "our claims dashboard times out for the largest broker and the correlated subqueries are the obvious suspect, but i'd like the actual profile before rewriting. work out where the time goes, then restructure the query so the page loads for a broker with four hundred thousand claims", "purpose": "debugging", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "the pipeline parser validates inconsistently, ignores some problems silently, and duplicates the API's own validation. consolidate it, and while you're there confirm whether any currently-accepted pipeline would start failing — i'd rather know than find out from a customer customers write these files by hand, so a newly-rejected pipeline is a support ticket.", "purpose": "refactor", "secondary": "review", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "plugin host segfaults during automation recording, roughly once an hour:\n\nProgram received signal SIGSEGV, Segmentation fault.\n0x00007ffff7a2c118 in juce::AudioProcessorValueTreeState::Parameter::setValueNotifyingHost(float) ()\n(gdb) bt\n#0 juce::AudioProcessorValueTreeState::Parameter::setValueNotifyingHost(float)\n#1 0x0000555555601a44 in AutomationRecorder::processBlock(juce::AudioBuffer<float>&) at src/AutomationRecorder.cpp:141\n#2 0x00005555556220c8 in PluginProcessor::processBlock(juce::AudioBuffer<float>&) at src/PluginProcessor.cpp:88\n#3 0x00007ffff7b0a112 in juce::AudioProcessorGraph::processBlock()\n(gdb) info threads\n Id Target Id Frame\n* 1 Thread (audio) setValueNotifyingHost\n 2 Thread (message) juce::MessageManager::runDispatchLoop\n\nsetValueNotifyingHost is being called from the audio thread, which the docs say not to do", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "claim rating engine's caching, which i inherited last week:\n\nclass Rating::Engine\n CACHE = {}\n\n def self.rate(claim)\n CACHE[claim.id] ||= begin\n policy = claim.policy.version_at(claim.incident_at)\n factors = policy.factors.map { |f| f.evaluate(claim) }\n Money.new(factors.sum { |f| f.amount_cents }, policy.currency)\n end\n end\nend\n\npuma with four workers and five threads each, claims are rated on every page view of the claim detail screen, and policy versions change when an underwriter edits them", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "pipeline definition format, which customers write by hand. is it as unambiguous as we think?\n\nsteps:\n - name: test\n image: golang:1.24\n commands: [\"go test ./...\"]\n cache:\n key: deps-{{ checksum \"go.sum\" }}\n paths: [\"/go/pkg/mod\", \".cache/go-build\"]\n - name: build\n image: golang:1.24\n depends_on: [test]\n commands: [\"go build -o bin/app\"]\n artifacts: [\"bin/app\"]\n - name: deploy\n when: { branch: main, event: push }\n image: alpine\n commands: [\"./deploy.sh\"]\n secrets: [DEPLOY_TOKEN]\n\nthe cache key doesn't include the image or the architecture; `when` on one step doesn't skip its dependents; and secrets are available to any command in the step, including ones that print the environment", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "claims API, integrated by four brokers, documented in a spreadsheet. this is the create endpoint:\n\nPOST /api/v2/claims\n auth: broker API key, scoped to the broker's policies\n body: { policy_number, incident_at, description, claimant: {...}, documents: [{ name, url }] }\n policy_number must exist and be active at incident_at, else 422 policy_not_in_force\n incident_at more than 90 days ago is accepted but flagged for manual review\n documents are fetched asynchronously from the given URLs; a fetch failure does not fail the claim\n the response is 202 with a claim reference, not 201, because assignment happens asynchronously\n duplicate submissions within 24h with the same policy and incident_at return the original reference\n\nwrite the API reference, and make the 202 and the deduplication behaviour impossible to miss", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "our API changelog needs an entry for the claim deduplication window, brokers keep asking", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "three ways of describing a step's status in our codebase, and the API leaks all three:\n\n// internal/agent\ntype StepState int // 0 pending, 1 running, 2 done, 3 failed, 4 killed\n\n// internal/api\ntype StepStatus string // \"queued\" | \"in_progress\" | \"success\" | \"failure\" | \"cancelled\"\n\n// database\nstatus smallint -- 0..4, but 5 and 6 exist in production rows from an old version\n\nthe mapping lives in three switch statements, one of which is missing a case and silently produces \"queued\" for anything unknown", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "what does the blocklist actually block?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a regulator has asked six questions about rating reproducibility, post-closure edits, document retention, broker isolation, policy corrections and data replication. answer each from the code rather than from what we'd like to be true, and write it as a controls document with anything unsubstantiated clearly marked as such our compliance lead will read it before the regulator does and prefers plain statements.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "plugin SDK has no documentation beyond one example file, and the behaviours third-party developers keep tripping over are exactly the ones we've never written down: the version check that fails silently, the parameter cap that drops the extras, the blocklist after two crashes, and the thirty-second scan timeout counting as a crash. write the integration guide that covers all of it three developers are waiting on this and two of them have already shipped against guesses.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "audio drops out for a few hundred milliseconds when a plugin scan finishes, users are furious:\n\n[audio] callback 512 frames @ 48000 (10.67ms budget)\n[audio] xrun: callback took 24.11ms\n[audio] xrun: callback took 31.88ms\n[scan] plugin scan finished, 412 plugins, 88 new\n[scan] posting to message thread: refreshPluginList()\n[audio] xrun: callback took 41.02ms\n[audio] xrun: callback took 18.44ms\n[audio] 4 dropouts in 200ms\n[ui] plugin list rebuilt, 412 items\n\nrefreshPluginList swaps the shared array the audio thread reads from, under a std::mutex that the audio callback also takes", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "design doc for our session format, written before the plugin work. does it still hold?\n\n## Session file\nA session is a single JSON document containing tracks, clips, automation and a plugin manifest. Plugins are referenced by their UID and version. On load, missing plugins are replaced by a placeholder that preserves the parameter state so the session can round-trip.\n\n## Assumptions\n- Sessions are small (< 5MB) and can be parsed on the message thread at load.\n- Plugin UIDs are stable across versions.\n- Automation is sparse enough to store as a list of (time, value) pairs.\n\n## Not covered\nCollaborative editing. Partial loading. Sessions referencing external audio files that have moved.\n\nsessions from our heaviest users are now 40-80MB, and the placeholder path is what's crashing on iOS", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "prod and staging agent config, and staging has never wedged:\n\n# staging/agent.yaml\nagent:\n slots: 2\n fast_path: false\n hard_timeout: 20m\n soft_timeout: 10m\n reaper_interval: 1m\n runtime: docker\n workspace_root: /var/lib/agent/ws\n cleanup_on_release: true\n\n# prod/agent.yaml\nagent:\n slots: 8\n fast_path: true\n hard_timeout: 20m\n soft_timeout: 10m\n reaper_interval: 5m\n runtime: runc\n workspace_root: /mnt/nvme/ws\n cleanup_on_release: false\n\n# prod agent metrics over the last day\n agent_slots_reserved 4 (steady, no running steps)\n agent_steps_started_total rate 0/s for 3h\n agent_reaper_runs_total 12\n agent_reaper_errors_total 12 (\"container not found\")\n\nprod agents have 8 cores; fast_path went on last year to cut build times and nobody has revisited it since", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "one smoothing helper for all processors", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "is the ring buffer safe with std::function?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "i'd like an honest read on whether our rating cache can serve one claim's rating for another under puma's threading, and if it can, the fix — with a test that fails on the current code", "purpose": "review", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "we have two audio buffer pool implementations, one in the engine and one in the plugin host", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "three third-party developers are blocked on a plugin SDK document that doesn't exist, and writing it will force us to decide which of our current behaviours are the contract and which are accidents — the silent parameter cap, the blocklist, the scan timeout. i want the plan for what we commit to publicly before anyone writes prose", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "what does the antivirus step do with a document it can't scan at all", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a walkthrough of the plugin scan process would help before i touch the blocklist", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "webhook receiver drops events under load and the numbers don't add up:\n\nnginx access log (1 minute sample):\n POST /webhooks/insurer 200 count=8,412\n POST /webhooks/insurer 499 count=1,204\n POST /webhooks/insurer 502 count=118\n\napp side:\n WebhookEvent.where(created_at: 1.minute.ago..).count => 8,180\n Sidekiq queue :webhooks depth => 41,882\n Sidekiq latency :webhooks => 812 seconds\n\npuma: 4 workers × 5 threads, and the receiver writes the event row synchronously before enqueueing\n\nthe insurer retries anything that isn't a 200 within 30 seconds, which is where the 499s come from", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "before this lands, is the lock-free queue actually lock-free the way it's used?\n\ntemplate <typename T, size_t Capacity>\nclass RingBuffer {\n std::array<T, Capacity> data_;\n std::atomic<size_t> head_{0}, tail_{0};\npublic:\n bool push(const T& v) { // called from the message thread\n auto t = tail_.load(std::memory_order_relaxed);\n auto next = (t + 1) % Capacity;\n if (next == head_.load(std::memory_order_acquire)) return false;\n data_[t] = v; // T is std::function<void()>\n tail_.store(next, std::memory_order_release);\n return true;\n }\n bool pop(T& out) { /* mirror, called from the audio thread */ }\n};\n\nthe queue carries std::function objects that capture by value, and the audio thread invokes them", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "agent's step execution, and i want to know whether the cleanup can be skipped safely:\n\nfunc (a *Agent) runStep(ctx context.Context, s Step) error {\n\tws, err := a.workspaces.Acquire(s.PipelineID)\n\tif err != nil { return err }\n\tif !a.fastPath {\n\t\tdefer a.workspaces.Clean(ws)\n\t}\n\tdefer a.workspaces.Release(ws)\n\tid, err := a.runtime.Create(ctx, s.Image, ws.Path)\n\tif err != nil { return err }\n\tdefer a.runtime.Remove(context.Background(), id)\n\tctx, cancel := context.WithTimeout(ctx, s.HardTimeout)\n\tdefer cancel()\n\treturn a.runtime.Wait(ctx, id)\n}\n\nfastPath is on in production, workspaces are reused across pipelines, and Release is also called by a reaper goroutine on timeout", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "la política de reintentos del receptor de webhooks, ¿tiene sentido?\n\nclass WebhooksController < ApplicationController\n skip_before_action :verify_authenticity_token\n\n def insurer\n event = WebhookEvent.create!(payload: params.to_unsafe_h, source: \"insurer\")\n ProcessWebhookJob.perform_later(event.id)\n head :ok\n rescue ActiveRecord::RecordNotUnique\n head :ok\n rescue => e\n Sentry.capture_exception(e)\n head :internal_server_error\n end\nend\n\n# ProcessWebhookJob\nclass ProcessWebhookJob < ApplicationJob\n queue_as :webhooks\n retry_on StandardError, wait: :polynomially_longer, attempts: 25\n\n def perform(id)\n event = WebhookEvent.find(id)\n Insurer::Apply.new(event).call\n event.update!(processed_at: Time.current)\n end\nend\n\nla aseguradora reintenta cualquier respuesta que no sea 200 durante 24 horas y sin espera entre intentos, el payload puede tener 2 MB con adjuntos en base64, y por la mañana nos llegan 40.000 eventos en veinte minutos", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "es"}
|
||||
{"prompt": "support notes about the plugin scan, they need to become a proper help article:\n\n- first launch scans every plugin on the machine, which for a big library is 10-40 minutes\n- the scan runs in a separate process so a crashing plugin doesn't take the app down\n- a plugin that crashes twice is blocklisted and hidden from the browser, with no visible message\n- users find their plugin \"missing\" and reinstall it, which doesn't help because the blocklist survives\n- the blocklist is in a plist that we've never documented, and clearing it requires the terminal\n- rescanning individual plugins is possible from a preference pane most users never open\n- audio dropouts during the scan are a known issue we're working on\n\nwrite the article, including how to clear the blocklist without making it sound like a defect", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "regulator's question list arrived and answering it properly is the documentation we never wrote:\n\n1. How is a claim's assessed value calculated, and is the calculation reproducible for a claim closed two years ago?\n2. Which roles can alter a claim after it has been closed, and how is that recorded?\n3. How long are claim documents retained, and how is deletion evidenced?\n4. Describe the controls preventing a broker from seeing another broker's claims.\n5. What happens to a claim if the policy version it was rated against is later corrected?\n6. Where is claimant personal data replicated, including backups and analytics?\n\nwork each answer out from the code and write it as a controls document, marking anything you can't substantiate", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "stem export filenames drop the track number", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "queue alert needs a 30 minute window", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "document thumbnails need type badges", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "scan progress strip at the top", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "step status is colour-only in the graph", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "why do sessions take eight seconds to open?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "agents wedge at full capacity", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "session format design doc assumed sessions under five megabytes and stable plugin UIDs, and both assumptions have quietly failed — our heaviest users have eighty megabyte sessions and the placeholder path crashes on iOS. read the doc against the current loader and tell me which of its assumptions still hold i'd like the answer in terms of what breaks next rather than what's already broken.", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "audio team's list, which i need to turn into a plan with the september release in mind:\n\n- move all plugin scanning off any lock the audio thread touches\n- lazy session loading, because 80MB sessions block the message thread for seconds\n- fix the MIDI timing drift, which is a rounding bug in the scheduler and probably a day's work\n- replace the three copies of plugin state with one owner\n- automation recording currently calls host APIs from the audio thread, which is why it segfaults\n- surface the plugin blocklist in the UI instead of hiding it in a plist\n\nthe release is in six weeks, and QA needs two of those", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "design spec for the plugin browser, which is currently a flat list of 400 items:\n\nPlugin browser\n- Left rail: categories (Instruments, Effects, Utility) with counts, plus Favourites and Recently Used.\n- Grid of cards, 160x120, showing the plugin name, vendor, format badge (VST3/AU/AAX) and a favourite star.\n- Virtualised; scrolling 2,000 plugins must stay at 60fps on a 2019 MacBook.\n- Search filters as you type with a 120ms debounce, matching name and vendor, highlighting the match.\n- Blocklisted plugins appear greyed with a warning glyph, a tooltip explaining why, and a Rescan action.\n- While a scan is running, a progress strip at the top shows the current plugin name and a Cancel button.\n- Drag a card onto a track to instantiate; the drag image is the card at 60% opacity.\n- Keyboard: type-ahead selection, enter instantiates on the selected track, space previews.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "one owner for the plugin list", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "i'd like to understand how a claim's assessed value is recalculated when the policy version changes", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "is our session loader doing anything on the audio thread, or is that just where it crashes", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "prod agents run eight slots on eight cores, which is why steps time out rather than queue", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "we need a plan for supporting AAX, which means a different SDK, signing, and a certification process", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "build agents wedge on a subset of pipelines and the only trace is this:\n\ntime=2026-07-29T11:02:14Z level=info msg=\"step started\" pipeline=8f2b1c step=test image=golang:1.24\ntime=2026-07-29T11:02:15Z level=info msg=\"container created\" id=a11c3f2 runtime=runc\ntime=2026-07-29T11:12:15Z level=warn msg=\"step exceeded soft timeout\" elapsed=10m0s\ntime=2026-07-29T11:22:15Z level=warn msg=\"step exceeded hard timeout, sending SIGTERM\" elapsed=20m0s\ntime=2026-07-29T11:22:45Z level=error msg=\"container did not exit, sending SIGKILL\"\ntime=2026-07-29T11:22:45Z level=error msg=\"kill failed\" err=\"container not found: a11c3f2\"\ntime=2026-07-29T11:22:45Z level=info msg=\"agent marked step failed, releasing slot\"\ntime=2026-07-29T11:22:46Z level=error msg=\"slot release failed: slot already released\"\n\nafter this the agent reports capacity 4/4 forever and takes no new work", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "iOS build of our sampler crashes on launch for some users only:\n\nException Type: EXC_BAD_ACCESS (SIGSEGV)\nException Subtype: KERN_INVALID_ADDRESS at 0x0000000000000018\nTermination Reason: SIGNAL 11 Segmentation fault: 11\n\nThread 0 Crashed:\n0 Sampler 0x104a2c118 juce::AudioProcessorGraph::rebuild() + 216\n1 Sampler 0x104b19a44 SamplerEngine::loadSession(juce::File const&) + 388\n2 Sampler 0x1051220c8 SessionRestore::restoreLast() + 296\n3 Sampler 0x104f0a112 -[AppDelegate application:didFinishLaunchingWithOptions:] + 148\n\nonly users whose last session referenced a plugin that has since been deleted from the device", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "das MIDI-Timing driftet bei langen Sessions, hier die Messwerte:\n\nEvent-Nr Soll (ms) Ist (ms) Abweichung\n1 0.00 0.02 +0.02\n1000 125000.00 125041.10 +41.10\n5000 625000.00 625208.44 +208.44\n10000 1250000.00 1250417.02 +417.02\n20000 2500000.00 2500834.88 +834.88\n\nSample-Rate 48000, Buffer 512, Host-Tempo 120 BPM konstant\ndie Abweichung wächst linear, etwa 0,33 ms pro 1000 Events\nwir rechnen die Event-Zeit in Samples um und runden dabei auf ganze Samples ab", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "de"}
|
||||
{"prompt": "rails app leaks memory in production and restarts every six hours on the memory limit:\n\nrss over 6 hours: 420MB → 2.8GB, linear\nobjects allocated (GC.stat[:total_allocated_objects]) at restart: 4.1e9\nheap_live_slots: 41,882,104\n\nderailed exec perf:mem_over_time top allocations:\n app/services/rating/engine.rb:88 1.2GB Hash allocations\n app/models/claim.rb:212 0.8GB String allocations\n activerecord (7.2.1) query cache 0.4GB\n\nrating/engine.rb:88 is inside a loop over policy versions, memoising into a class-level hash keyed by claim id", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "the claim detail screen needs the document virus-scan states visible, and support needs the help article explaining what a rejected document means. do both, and keep the read-only broker view free of edit affordances", "purpose": "frontendImpl", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "claims stopped auto-assigning overnight", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "claim reference is lowercase in emails", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pipeline parser has grown organically and validation is scattered through it:\n\nfunc Parse(b []byte) (*Pipeline, error) {\n\tvar p Pipeline\n\tif err := yaml.Unmarshal(b, &p); err != nil { return nil, err }\n\tfor i, s := range p.Steps {\n\t\tif s.Name == \"\" { return nil, fmt.Errorf(\"step %d: name required\", i) }\n\t\tif !nameRe.MatchString(s.Name) { return nil, fmt.Errorf(\"step %s: bad name\", s.Name) }\n\t\tif s.Image == \"\" && s.Plugin == \"\" { return nil, fmt.Errorf(\"step %s: image required\", s.Name) }\n\t\tfor _, d := range s.DependsOn {\n\t\t\tif !p.has(d) { return nil, fmt.Errorf(\"step %s: unknown dependency %s\", s.Name, d) }\n\t\t}\n\t\tif s.Cache.Key != \"\" && len(s.Cache.Paths) == 0 { /* silently ignored */ }\n\t\tp.Steps[i] = applyDefaults(s)\n\t}\n\treturn &p, detectCycles(&p)\n}\n\nerror messages are inconsistent, some problems are silently ignored, and the same validation is duplicated in the API's own request validator", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "our health check reports the agent healthy while it has zero free slots and no running steps", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "the claims UI uses eleven hardcoded colours and three custom focus styles, one of which removes the ring. move it onto the tokens, and tell me which status colours will visibly change for adjusters who have used this for years", "purpose": "frontendImpl", "secondary": "review", "mixed": true, "difficulty": 0.55, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "plugin browser is a flat list of four hundred items that scrolls badly on older machines, and it's the first thing every reviewer complains about. build the browser to the new spec — categories, virtualised card grid, search with highlighting, blocklist state visible — and keep drag-to-instantiate working exactly as it does today our oldest supported machine is a 2019 MacBook Pro, which is what the 60fps target refers to.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "claim documents are occasionally unreachable after upload, and the pattern seems to be that the antivirus step moves the object while the database row keeps the original key. i'd like that confirmed properly rather than assumed, including what happens when the scan fails and whether any documents are currently orphaned roughly one in two hundred, and support has three examples with timestamps if that helps.", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pipeline YAML format has grown features that interact badly — `when` not skipping dependents, cache keys that ignore the image, secrets visible to every command in a step — and customers write these by hand. before we add anything else i'd like a view on whether this is a versioned format change or a set of fixes we can make compatibly", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "claims thing", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "our on-premise CI customers upgrade by replacing a binary and have no migration story for config", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "three query objects each define what \"this broker's claims\" means, two of them interpolate the search term straight into SQL, and they disagree about whether closed claims are included. consolidate them into one scope with one definition, keep the exported CSV byte-identical for a sample of brokers, and get rid of the interpolation while you're in there the export is what brokers reconcile against, so a changed row count would be noticed immediately.", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "what guarantees does the agent make about artifact upload when a step is killed mid-write", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "a short note explaining why sessions are moving to lazy loading, for the decision log", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "plugin SDK document has to exist before we can onboard the three developers waiting on it, and writing it will surface behaviours we should probably change rather than document. write the guide, and give me the separate list of things you'd rather fix than commit to the silent version check is the one i'd most like to stop defending in writing.", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "SQL behind our claims dashboard, which times out for the largest broker:\n\nSELECT c.id, c.reference, c.status, c.incident_at,\n p.number AS policy_number, b.name AS broker,\n (SELECT SUM(amount_cents) FROM payments pm WHERE pm.claim_id = c.id) AS paid,\n (SELECT COUNT(*) FROM documents d WHERE d.claim_id = c.id) AS docs,\n (SELECT MAX(created_at) FROM claim_notes n WHERE n.claim_id = c.id) AS last_note\nFROM claims c\nJOIN policies p ON p.id = c.policy_id\nJOIN brokers b ON b.id = p.broker_id\nWHERE b.id = $1 AND c.status <> 'closed'\nORDER BY c.incident_at DESC\nLIMIT 50;\n\nclaims 2.1M rows, payments 8.4M, documents 12M, and the broker in question has 400k claims", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "concurrency model in our scheduler, which decides which agent gets which step:\n\nfunc (s *Scheduler) assign() {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tfor _, step := range s.pending {\n\t\tfor _, agent := range s.agents {\n\t\t\tif agent.Free() >= step.Slots && agent.Matches(step.Tags) {\n\t\t\t\tagent.Reserve(step.Slots)\n\t\t\t\tgo s.dispatch(agent, step)\n\t\t\t\ts.remove(step)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n}\n\nassign runs every second and on every agent heartbeat; dispatch can take up to 30 seconds; Reserve is in-memory only and the agent may already be running steps it accepted from a previous scheduler instance", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "public pipeline YAML reference is a single example with no prose. this is what the parser accepts:\n\nsteps[].name required, unique within the file, [a-z0-9-]{1,40}\nsteps[].image required unless `plugin` is set\nsteps[].commands list of strings, run with `set -e` in a shell\nsteps[].depends_on list of step names; a cycle is a parse error\nsteps[].when map of branch/event/path filters, all must match\nsteps[].cache.key template string, `{{ checksum \"file\" }}` and `{{ env \"VAR\" }}` supported\nsteps[].cache.paths list, relative paths are relative to the workspace root\nsteps[].artifacts list of globs, uploaded on success only\nsteps[].secrets list of secret names, injected as environment variables\nsteps[].matrix map of name to list; expands the step, `matrix.<name>` available in templates\n\nwrite the reference documentation, including that `when` doesn't skip dependents and that cache keys don't include the image", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "o resumo do incidente de ontem, para os corretores. estes são os factos:\n\n09:12 as participações deixam de ser atribuídas automaticamente\n09:31 detetamos que a fila de jobs está a rejeitar tudo com erro de desserialização\n10:02 causa identificada: o job é enfileirado dentro da transação, antes do commit\n10:20 correção aplicada em produção\n10:40 reprocessamento das 1.204 participações em atraso\n11:15 tudo normalizado; nenhuma participação perdida, o atraso máximo foi de duas horas\n\nos corretores viram participações \"por atribuir\" durante duas horas e alguns telefonaram para o apoio; não houve perda de dados nem prazos regulamentares ultrapassados", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "pt"}
|
||||
{"prompt": "changelog for the desktop app, from the release branch:\n\n41c9e0b fix(audio): plugin scan no longer takes the audio lock\n88f21c0 feat(session): sessions load lazily, large sessions open in under a second\nc0aa774 fix(ios): sessions referencing deleted plugins no longer crash on launch\n2e91b45 feat(midi): sample-accurate event scheduling, fixes long-session drift\naa30f19 fix(browser): blocklisted plugins now show with an explanation and a rescan button\n9c1d004 perf(ui): plugin list virtualised\n4410bb7 chore: minimum macOS is now 13\nb77e910 feat(export): stem export with per-track naming templates\n\nour users are musicians, not engineers; two of these are things they've been complaining about for a year and one is a breaking change", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "runbook for a wedged agent is \"restart it\", which loses running builds. what the team actually does:\n\n- symptom is an agent reporting full capacity with no running steps, usually after a container disappears\n- `agentctl slots <agent>` shows the reserved slots and which pipeline reserved them\n- `agentctl release <agent> <slot>` frees one, and the scheduler picks up within a second\n- restarting the agent kills any genuinely running builds, which is why we avoid it\n- if the reaper is the thing that's stuck, its goroutine dump shows it blocked on the runtime socket\n- the underlying bug is that slot release is not idempotent, and we've known that for months\n\nturn this into a runbook page, and be clear about which steps are safe during working hours", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "我们的插件开发文档只有一页示例代码,需要正式的接入说明。目前 SDK 的实际行为如下:\n\n- 插件必须导出 `lumen_plugin_entry`,返回描述结构体;结构体里的 `abi_version` 必须与 SDK 主版本号一致,否则宿主会静默跳过,不打印任何日志\n- 参数上限为 512 个,超出的部分在注册阶段被丢弃,既不报错也不警告\n- `processBlock` 在音频线程调用,禁止分配内存、加锁、访问文件系统或调用任何宿主 API\n- `getStateInformation` 返回的数据会原样写入会话文件;没有硬性大小限制,但超过 1MB 会明显拖慢会话加载\n- `setStateInformation` 可能在音频线程停止之前被调用,插件必须自行处理并发\n- 插件连续崩溃两次后进入黑名单,黑名单保存在用户目录的 plist 文件里,我们从未对外说明过,用户只会发现插件“消失了”\n- 扫描在独立进程中进行,单个插件超时时间是 30 秒,超时同样计入崩溃次数\n- 参数自动化的写入频率上限是每个采样块一次,超过的调用会被静默合并\n\n请写成面向第三方开发者的接入文档,把黑名单、超时和参数上限这三件事写清楚,其余按常规接口说明组织\n\n目前的示例代码就是这一段,文档里也只有这些:\n\nextern \"C\" LumenPluginDescription* lumen_plugin_entry(void) {\n static LumenPluginDescription d = {\n .abi_version = LUMEN_ABI_VERSION,\n .uid = \"com.example.reverb\",\n .name = \"Example Reverb\",\n .vendor = \"Example Audio\",\n .num_parameters = 4,\n .create = &create_instance,\n .destroy = &destroy_instance,\n };\n return &d;\n}\n\nstatic void process_block(LumenPlugin* self, float** io, int channels, int frames) {\n // 这里不能分配内存、不能加锁、不能调用宿主 API\n}", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "zh"}
|
||||
{"prompt": "rubocop and brakeman before the gate goes on:\n\napp/controllers/webhooks_controller.rb:12:5: W: Rails/SkipsModelValidations: Avoid using `update_all`\napp/services/rating/engine.rb:8:3: C: Style/ClassVars: Class variable @@cache is used\napp/models/claim.rb:141:9: C: Metrics/AbcSize: Assignment Branch Condition size for assign is too high. [<12, 28, 9> 32.08/17]\n\nBrakeman:\n Confidence: High\n Category: Mass Assignment\n Check: MassAssignment\n Message: Parameters should be whitelisted for mass assignment\n File: app/controllers/webhooks_controller.rb\n Line: 6\n\n Confidence: Medium\n Category: SQL Injection\n Check: SQL\n Message: Possible SQL injection\n File: app/queries/claims_search.rb\n Line: 88", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "clang-tidy on the audio engine, and two of these are the ones that bite:\n\nsrc/AutomationRecorder.cpp:141:9: warning: function 'processBlock' calls 'setValueNotifyingHost' which may allocate [audio-thread-safety]\nsrc/SamplerEngine.cpp:88:22: warning: 'std::function' invoked on the audio thread may allocate on copy [performance-no-automatic-move]\nsrc/SessionRestore.cpp:41:5: warning: 'get' on possibly null pointer [bugprone-unchecked-optional-access]\nsrc/PluginScanner.cpp:212:13: warning: lock acquired in a real-time context [audio-thread-safety]\nsrc/UI/PluginList.cpp:19:1: warning: function exceeds recommended size [readability-function-size]\n\n5 warnings; the two audio-thread-safety ones correspond exactly to our two worst crash clusters", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "CI for the audio engine takes 50 minutes and most of it is this:\n\njobs:\n build:\n strategy:\n matrix:\n os: [macos-14, macos-15, ubuntu-24.04, windows-2022]\n config: [Debug, Release]\n steps:\n - uses: actions/checkout@v4\n with: { submodules: recursive }\n - run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.config }}\n - run: cmake --build build --parallel\n - run: ctest --test-dir build --output-on-failure\n\nno ccache, no build cache action, JUCE is a submodule that gets fully rebuilt every time, and Debug builds are only ever looked at when something fails", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "bundler audit on the rails app, which of these go in today:\n\nName: rack\nVersion: 3.0.9\nAdvisory: CVE-2026-10884\nCriticality: Medium\nSolution: upgrade to >= 3.0.11\n\nName: nokogiri\nVersion: 1.16.2\nAdvisory: CVE-2026-11221\nCriticality: High\nSolution: upgrade to >= 1.17.1\n\nName: sidekiq\nVersion: 7.2.0\nAdvisory: GHSA-4c8f (web UI XSS in the busy page)\nCriticality: Medium\nSolution: upgrade to >= 7.3.2\n\nour sidekiq web UI is behind SSO and only reachable from the office network", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "terraform for our build agents, someone spotted this during an unrelated review:\n\nresource \"aws_instance\" \"agent\" {\n count = var.agent_count\n instance_type = \"c7i.4xlarge\"\n vpc_security_group_ids = [aws_security_group.agent.id]\n user_data = templatefile(\"agent.sh.tpl\", { token = var.agent_token })\n metadata_options {\n http_tokens = \"optional\"\n }\n}\n\nresource \"aws_security_group_rule\" \"agent_ssh\" {\n type challenge = \"ingress\"\n from_port = 22\n to_port = 22\n cidr_blocks = [\"0.0.0.0/0\"]\n}\n\nthe agent token is a long-lived credential that can register new agents", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "agent's configuration, documented by its flag help and nothing else:\n\n --workspace-root string where job workspaces are created (default \"/var/lib/agent/ws\")\n --fast-path reuse workspaces between jobs without cleaning (default false)\n --slots int concurrent steps this agent will accept (default 4)\n --tags strings labels used for step matching\n --hard-timeout duration kill a step after this (default 20m)\n --soft-timeout duration warn after this (default 10m)\n --reaper-interval duration how often to look for orphaned containers (default 1m)\n --runtime string runc | docker | podman (default \"runc\")\n\nwhat operators actually need to know: fast-path is why one customer's builds see another repo's files; slots above the core count causes step timeouts rather than queueing; the reaper is the only thing that recovers a leaked slot, and it doesn't handle the case where the container is already gone\n\nwrite the operator's configuration guide", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "les seuils d'alerte de la file d'attente, on nous réveille pour rien :\n\n- alert: WebhookQueueDepth\n expr: sidekiq_queue_size{queue=\"webhooks\"} > 1000\n for: 1m\n labels: { severity: page }\n\n- alert: WebhookQueueLatency\n expr: sidekiq_queue_latency{queue=\"webhooks\"} > 60\n for: 1m\n labels: { severity: page }\n\ncomportement normal : chaque matin à 6h l'assureur envoie un lot de 40 000 événements, la file monte à 40 000 et se vide en vingt minutes\nincident réel du mois dernier : la file est restée à 200 000 pendant six heures sans que personne ne le remarque, parce que tout le monde avait coupé les alertes", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "pasted-context", "lang": "fr"}
|
||||
{"prompt": "same parameter-smoothing code exists in four processors with different time constants:\n\n// Gain.cpp\nsmoothed = smoothed * 0.99f + target * 0.01f;\n\n// Filter.cpp\nconst float coeff = std::exp(-1.0f / (0.05f * sampleRate));\nsmoothed = target + (smoothed - target) * coeff;\n\n// Delay.cpp\nsmoothed += (target - smoothed) * (1.0f / 64.0f);\n\n// Reverb.cpp\njuce::SmoothedValue<float> smoothed; // ramp length 0.02s, set once in prepareToPlay\n\nthree of them are sample-rate dependent in ways their authors probably didn't intend, and only the reverb one is reset on prepareToPlay", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "this service object has grown to 400 lines and the tests take a database. same behaviour, testable pieces:\n\nclass Claims::Assign\n def initialize(claim, actor: nil, force: false)\n @claim, @actor, @force = claim, actor, force\n end\n\n def call\n return if @claim.assigned? && !@force\n candidates = Adjuster.active.where(region: @claim.region)\n candidates = candidates.where(specialism: @claim.peril) if @claim.complex?\n candidates = candidates.reject { |a| a.workload > a.capacity }\n chosen = candidates.min_by { |a| [a.workload, a.last_assigned_at] }\n raise NoAdjusterAvailable if chosen.nil?\n @claim.update!(adjuster: chosen, assigned_at: Time.current)\n AuditLog.create!(subject: @claim, actor: @actor || \"system\", action: \"assign\")\n AdjusterMailer.assigned(chosen, @claim).deliver_later\n Slack.notify(chosen.slack_id, \"New claim #{@claim.reference}\") if chosen.slack_id\n Metrics.increment(\"claims.assigned\", tags: [\"region:#{@claim.region}\"])\n end\nend", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "unsere Zustandsverwaltung im Plugin-Browser ist dreifach vorhanden:\n\n// PluginList.cpp — hält eine eigene sortierte Kopie\nstd::vector<PluginDescription> items;\n\n// PluginScanner.cpp — hält die Rohliste plus Blockliste\nstd::vector<PluginDescription> scanned;\nstd::set<juce::String> blocked;\n\n// SessionRestore.cpp — hält eine Map von UID auf Beschreibung\nstd::map<juce::String, PluginDescription> byUid;\n\ndrei Kopien derselben Daten, die über Callbacks synchron gehalten werden, und der Audio-Thread liest zwei davon", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "de"}
|
||||
{"prompt": "query objects each build their own filtering and they've drifted:\n\n# claims_search.rb\nscope = Claim.where(broker_id: broker.id)\nscope = scope.where(\"reference ILIKE ?\", \"%#{params[:q]}%\") if params[:q]\n\n# claims_export.rb\nscope = Claim.joins(:policy).where(policies: { broker_id: broker.id })\nscope = scope.where(\"claims.reference ILIKE :q OR claimants.surname ILIKE :q\", q: \"%#{params[:q]}%\")\n\n# api/v2/claims_controller.rb\nscope = current_broker.claims\nscope = scope.search(params[:q]) if params[:q].present?\n\nthree different definitions of \"this broker's claims\" and two of them interpolate the search term directly", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "half-year planning input, i need it turned into something sequenced:\n\n- the audio dropout problem is our worst review driver and the fix touches the plugin scanner, the session loader and the UI\n- a regulator audit of the claims platform is booked for february and we have no controls documentation\n- the CI platform's biggest customer wants isolated agents, which fast-path workspace reuse makes impossible\n- ios sessions crash on launch for a small but vocal group of users\n- one engineer is shared across the audio engine and the CI agent and is the only person who understands either\n- we owe a plugin SDK document to three third-party developers who are blocked without it\n- there's a macOS release in september that we cannot move", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "architecture ticket for the CI platform, needs thinking before code:\n\nCI-330 — Workspace isolation\nAgents currently reuse workspaces between jobs with cleanup disabled for speed, which is why one customer occasionally sees another repo's files. The proposal is a workspace per job on an overlay filesystem, with the lower layer being a warm cache of dependencies. Concerns: build times went up 40% in a naive experiment; the overlay approach ties us to specific kernels which our on-premise customers may not have; artifacts and caches currently assume a stable path; and we have no way to prove isolation to a customer once we've claimed it.", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "regulator's expectations, as our compliance lead summarised them:\n\n\"Rating decisions must be reproducible for the lifetime of the claim plus seven years. Where a policy version is corrected, claims rated against the earlier version must be identifiable and re-rateable, with both results retained. Personal data of claimants must be deletable on request without destroying the audit trail of the claim itself. Access to claim data by staff must be logged with a business reason, and the log must not be alterable by those staff.\"\n\nwe memoise ratings in a process-local hash, we hard-delete claimant records on request, and our audit log is a table any admin can update. i want the plan, in order of regulatory risk", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "spec for the claim detail screen, the one adjusters live in all day:\n\nClaim detail\n- Header: reference, status pill, policy number, incident date, assessed value. Status drives the pill colour and a left border.\n- Three-column layout above 1440px, two below, single column under 900px. The columns are Summary, Documents, Activity.\n- Documents: thumbnail grid with type badges, drag to upload, virus-scan state per document (scanning / clean / rejected), and a rejected document must explain why.\n- Activity: reverse chronological, mixing notes, status changes, payments and emails, with filters per type that persist per user.\n- Notes: inline composer at the top of Activity, markdown, @mention autocomplete of adjusters, optimistic insert with a failure state.\n- Assessed value is editable inline by adjusters only, with the previous value shown on hover and every change recorded.\n- The whole screen must be usable read-only for brokers, with edit affordances absent rather than disabled.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "accessibility findings for our pipeline view, from an enterprise customer's review:\n\n1. The pipeline graph is an SVG with no text alternative; screen reader users cannot tell what ran or what failed.\n2. Step status is conveyed by colour only — green, red, grey circles with no label or shape difference.\n3. Live log output is announced continuously by screen readers, making the page unusable during a build.\n4. The log viewer traps focus; escape does nothing and tab cycles within it forever.\n5. Timestamps are rendered as relative text (\"2m ago\") that never updates and has no absolute value available.\n6. The retry button on a failed step is a div with a click handler.\n7. Contrast on the dimmed log text is 2.9:1.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "insurer's integration spec, we implement the receiving side:\n\nPOST to our endpoint, one event per request, at up to 2,000 requests per second during their morning batch\n headers: X-Insurer-Signature (HMAC-SHA256, hex), X-Insurer-Event-Id (UUID), X-Insurer-Sent-At\n body: up to 2MB of JSON, including base64 document attachments in some event types\n we must respond within 5 seconds; anything else is retried for 24 hours with no backoff\n duplicate event ids are expected (their retries) and must be idempotent\n events must be applied in `sent_at` order per policy, but arrive in any order\n a rejected event (signature failure) should be a 401, which they alert on\n they will disable our endpoint if our error rate exceeds 5% over an hour", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "schema we agreed for reproducible ratings, now it needs building:\n\nCREATE TABLE rating_runs (\n id uuid PRIMARY KEY,\n claim_id bigint NOT NULL REFERENCES claims(id),\n policy_version bigint NOT NULL REFERENCES policy_versions(id),\n engine_version text NOT NULL,\n inputs jsonb NOT NULL,\n result_cents bigint NOT NULL,\n currency char(3) NOT NULL,\n created_at timestamptz NOT NULL DEFAULT now(),\n superseded_by uuid REFERENCES rating_runs(id)\n);\n\nevery rating must be recorded, never mutated; re-rating creates a new row and links the old one; the claim detail screen shows the current rating and its history; and a rating must be reproducible from `inputs` plus `engine_version` seven years later, which means the engine's behaviour has to be versioned rather than just its code", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "design tokens versus what the claims UI actually uses:\n\ntokens:\n color.surface #FFFFFF / #14171A\n color.border #E1E4E8 / #2A2F35\n color.text.default #1B1F23 / #E6EDF3\n color.status.open #0969DA\n color.status.closed #6E7781\n color.status.urgent #CF222E\n space 4/8/12/16/24/32, radius 4/8/12, focus ring 2px offset 2px\n\nthe claims UI: eleven hardcoded colours, four of them near-misses; three custom focus styles, one of which removes the ring entirely; paddings of 6, 10, 14 and 18; and a status colour set that predates the tokens and doesn't match any of them\n\nbring it onto the tokens, keeping the status colours recognisable to adjusters who have used this for years", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "pasted-context", "lang": "en"}
|
||||
{"prompt": "reaper interval back to 1m in prod", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||||
{"prompt": "nokogiri advisory bump", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "core", "lang": "en"}
|
||||
{"prompt": "ccache in the CMake CI job", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
|
||||
{"prompt": "el estado «cerrado» sale en inglés", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.15, "slice": "core", "lang": "es"}
|
||||
{"prompt": "ssh open to the world on agents", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "turn fast-path off on prod agents", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "IMDSv2 required on the agent instances", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "Debug-Builds nur noch bei Fehlern bauen", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "de"}
|
||||
{"prompt": "class variable in the rating engine", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the claims models have twelve callbacks between them and the order they fire in is load-bearing", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "claims platform has one engineer who understands the rating engine and a regulator audit in february, which is a risk in itself. what would you do about the knowledge concentration, given that the honest options are documentation, pairing, or restructuring the engine so it's less clever — and we can probably afford one of them", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "claim assignment does candidate selection, persistence, audit, email, slack and metrics in one method, and the selection logic is the only part anyone wants to test. split it, then document the assignment rules for the operations team who currently guess at them operations currently guess at the rules, and their guesses are wrong in at least two ways.", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "pipeline view fails an enterprise customer's accessibility review on seven counts, including a graph with no text alternative and live log output that screen readers read continuously. work through the findings, and where a fix changes the visual design, tell me before you commit to it they've asked for a remediation date, so a rough ordering by effort would help too.", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "our audit log is a table any admin can update, which the regulator will notice in february", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the claim reference in the PDF is generated with a different padding than the one in the UI", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "core", "lang": "en"}
|
||||
{"prompt": "virtualise the plugin grid", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "core", "lang": "en"}
|
||||
{"prompt": "format badges on the plugin cards", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||||
{"prompt": "activity feed filters should persist", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "ログビューアからフォーカスが抜けません", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "ja"}
|
||||
{"prompt": "relative timestamps never update", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "retry button is a div", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "dimmed log text fails contrast", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "pull the notifications out of Claims::Assign", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "one step-status type end to end", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "une seule définition de « sinistres du courtier »", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "fr"}
|
||||
{"prompt": "`incident_at` naming across the app", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "move parser validation into one place", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "inline the one-line `has()` helper", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "split the 400-line assign service", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "doc comments on the plugin SDK entry point", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "release notes for the september build", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "en"}
|
||||
{"prompt": "nota para corretores sobre o incidente", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "core", "lang": "pt"}
|
||||
{"prompt": "document the 202 on claim creation", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "summarise the isolation proposal for the team", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "PR description for the scan fix", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.25, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "¿la caché de tarifas es segura entre hilos?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "es"}
|
||||
{"prompt": "can a slot leak twice?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "walk me through claim assignment", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "dropouts whenever a scan finishes", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "warum wächst der Speicher linear?", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "de"}
|
||||
{"prompt": "endpoint for a claim's rating history", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "keep going on that one", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "quieter", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "browser again please", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "your call on the order", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "sort out the mess", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "as before", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "audit stuff", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "encore une passe rapide", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "fr"}
|
||||
{"prompt": "anything for the release", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "look at it again", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "次の作業、任せます", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "ja"}
|
||||
{"prompt": "more of the same", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "biggest CI customer wants isolated agents and our fast-path workspace reuse makes that impossible, but turning it off in a naive experiment made builds forty percent slower. i'd like the options for real isolation worked through — overlay filesystems, per-job volumes, or something else — with attention to our on-premise customers whose kernels we don't control, and to the awkward fact that we'd then be making an isolation claim we have to be able to prove", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "regulator expects rating decisions to be reproducible for the life of the claim plus seven years, and today we memoise ratings in a process-local hash and version nothing. work out what reproducibility actually requires of us — inputs, engine versioning, storage, re-rating after a policy correction — and give me the plan ordered by regulatory risk rather than by engineering convenience", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||||
{"prompt": "september release is fixed and the audio team has six weeks minus two for QA, with six candidate items ranging from a day's rounding fix to restructuring who owns plugin state. sequence them for me with the dropout problem as the priority, and be explicit about which items i should cut rather than half-finish", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
|
||||
{"prompt": "operators configure the build agent from flag help alone, which is why one customer ran with fast-path on for a year without knowing what it meant. write the configuration guide, covering what each option does, which combinations are dangerous, and the fact that the reaper is the only thing that recovers a leaked slot some of them run us on hardware we've never seen, so avoid assuming our own topology.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "support explains the plugin blocklist several times a week and users reinstall plugins that were never the problem. write the help article that explains what the scan does, why a plugin disappears, and how to bring it back — pitched at a musician rather than an engineer, and without making our crash handling sound like a defect the article should stand alone without requiring a terminal, if that's at all possible.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "nobody can tell me whether our ring buffer is genuinely safe given that it carries std::function objects the audio thread invokes, and the copy on push may allocate. read it carefully and tell me exactly which operations can allocate or block, and whether the memory ordering is right for the single-producer single-consumer use we actually have", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "core", "lang": "en"}
|
||||
{"prompt": "scheduler reserves slots in memory and dispatches in a goroutine that can take thirty seconds, while agents may already be running work accepted from a previous scheduler instance. work through what happens across a scheduler restart and tell me whether double-assignment is possible, and if so how often it would show up as the wedging we see", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.85, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "claims API is integrated by four brokers off a spreadsheet, and the two things they get wrong every time are the 202 response and the 24-hour deduplication window. write the reference documentation properly, structured so those two are impossible to miss, with a worked example of a submission and its follow-up polling assume the reader is integrating for the first time and has our sandbox credentials.", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "parameter smoothing is implemented four times across our processors, three of them sample-rate dependent in ways the authors probably didn't intend, and only one resets properly on prepareToPlay. consolidate onto one implementation with an explicit time constant, and keep each processor's audible behaviour at 48kHz indistinguishable from today's the reverb is the reference implementation as far as anyone remembers.", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||||
{"prompt": "step status exists as an int in the agent, a string in the API and a smallint in the database, with three switch statements mapping between them and one missing case that silently reports \"queued\". unify on one representation, handle the two legacy values that exist in production rows, and keep the public API strings exactly as they are there are two production rows with values five and six that predate the current enum.", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "before the audio work starts i want the threading model written down properly — what the audio thread may touch, how state gets to it, what the message thread owns — and then the plugin scanner moved off the shared lock as the first piece of evidence that the model works the scanner is the piece we can ship first, and the release is in six weeks.", "purpose": "planning", "secondary": "refactor", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "workspace isolation needs a decision and also needs progress. lay out the options with their build-time cost, then implement per-job workspaces behind a flag so we can measure the real impact rather than argue about the naive experiment the naive experiment's forty percent slowdown is the number everyone will quote at us.", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "rating reproducibility is a february problem that needs starting now. give me the design — what we record, how the engine is versioned, what re-rating means — and then the rating_runs table and write path so new ratings start being recorded while the rest is designed the regulator's wording is about the life of the claim plus seven years, not about our schema.", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.9, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "die Session-Datei ist inzwischen 80 MB groß und blockiert beim Laden den Message-Thread. Ich hätte gern zuerst ein Konzept für inkrementelles Laden und danach die Umsetzung des Track-Lazy-Loadings, damit die Startzeit vor dem Release besser wird", "purpose": "planning", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "de"}
|
||||
{"prompt": "webhook receiver needs to stop dropping events during the insurer's morning batch, and the fix probably changes our whole ingestion shape. think through the design — accept fast, persist cheaply, order per policy — then implement the accept path so tomorrow's batch survives their batch starts at six and they retry anything that isn't a 200 for a full day.", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "agent configuration guide needs writing, and while going through the flags i expect you'll find at least one whose documented default doesn't match the binary. produce the guide, and list every discrepancy you find between help text and behaviour operators run this on hardware we've never seen, so defaults matter more than usual.", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "escribe la documentación de la API de siniestros para los corredores y comprueba en el código si la deduplicación de 24 horas funciona como decimos, porque uno de ellos dice que recibe referencias distintas", "purpose": "writing", "secondary": "review", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "es"}
|
||||
{"prompt": "wedged-agent runbook should be a page rather than folklore, and the underlying non-idempotent slot release should stop being a footnote. write the runbook, then make release idempotent so the runbook's main entry becomes unnecessary the non-idempotent release has been a known footnote for months and it keeps costing us nights.", "purpose": "writing", "secondary": "backendImpl", "mixed": true, "difficulty": 0.65, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "plugin state lives in three places kept in sync by callbacks, two of which the audio thread reads. give it one owner, and write the short note explaining the new ownership so the next person doesn't add a fourth copy two of the three copies are read on the audio thread, which is the part that frightens me.", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "automation recorder calls host APIs from the audio thread, which explains the segfaults, but i want that confirmed before we restructure it. diagnose it properly, then move the parameter updates onto the message thread without changing the recorded result", "purpose": "debugging", "secondary": "refactor", "mixed": true, "difficulty": 0.85, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "MIDI events drift by about a third of a millisecond per thousand events, which smells like accumulated rounding in the sample conversion. confirm the mechanism, then fix the scheduling so long sessions stay accurate, and tell me whether existing sessions need anything", "purpose": "debugging", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "queue alerts page for the normal morning batch and stayed silent through a six-hour genuine backlog. work out what the rules should be from the actual traffic pattern, then change them", "purpose": "quickFix", "secondary": "planning", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "agents should register with short-lived credentials rather than the long-lived token baked into user data. design the enrolment flow, then implement the token exchange", "purpose": "backendImpl", "secondary": "planning", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "audio engine's parameter classes each reimplement denormal protection, three of them slightly wrong", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "go services each parse their own config with a different precedence between flags, env and file", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "rename `StepState` to `StepPhase` in the agent, it's confused with the API's status everywhere", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "could you explain what happens to a running build when the scheduler restarts", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
|
||||
{"prompt": "why does our cache key not include the container image, and has that ever bitten us", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "someone should check whether a broker can reach another broker's documents by guessing an id", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "is it expected that a step's secrets are visible to every command in that step", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "docs/rating.md describes a synchronous rating call that we made asynchronous last year", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||||
{"prompt": "SDK header comments claim processBlock may allocate \"if necessary\", which is precisely wrong", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "write the migration note for operators about the minimum macOS version change", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "precisamos de uma página que explique aos corretores como funciona a atribuição automática", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "pt"}
|
||||
{"prompt": "scan timeout counts as a crash toward the blocklist, which nobody intended", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.35, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "how should we version the pipeline YAML format now that we need to change three of its behaviours", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "core", "lang": "en"}
|
||||
{"prompt": "what's the right approach to testing audio code where the failure mode is an audible glitch", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||||
{"prompt": "three brokers want webhooks from us and we've only ever consumed them, what should our outbound story be", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "what should happen to in-flight builds when a customer's plan is downgraded mid-pipeline", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "an endpoint that returns a step's log with byte-range support, for the viewer's infinite scroll", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "claim documents should be served through signed URLs that expire, rather than proxied through rails", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "per-broker rate limits on the claims API, since one broker's batch job saturates our workers", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "session file should record the host sample rate so we can warn on mismatch at load", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "log viewer needs to follow output without pinning the scroll when the user has scrolled up", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||||
{"prompt": "pipeline graph should collapse matrix expansions into one node with a count", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.55, "slice": "core", "lang": "en"}
|
||||
{"prompt": "documents grid needs a drag-to-upload target that works on the whole panel", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.45, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "stem export needs a naming template field with a live preview of the resulting filenames", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "whichever is least risky today", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "pick up the scanner work", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "vague-eval", "lang": "en"}
|
||||
{"prompt": "our go services each parse configuration with a different precedence between flags, environment variables and the config file, and two of them silently ignore the file when a flag is present. settle on one precedence, apply it across all four services, and tell me which deployed configurations would resolve differently afterwards so we can warn the operators who run them", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||||
{"prompt": "a broker's support ticket claims they can see a document that isn't theirs, which if true is the worst bug we could have. before anyone panics, trace how document authorisation actually works — the controller, the signed URL, and whether the scan-moved key is checked against the claim's broker at all", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "we need per-broker rate limiting on the claims API, because one broker's nightly batch job saturates the worker pool and everyone else's submissions queue behind it. limits per broker with a burst allowance, a clear 429 with a retry-after, and the limits themselves configurable without a deploy since account managers negotiate them individually", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "boundary", "lang": "en"}
|
||||
{"prompt": "the claims models carry twelve callbacks whose firing order is load-bearing, which is why nobody dares add a thirteenth. untangle them into explicit service calls, keep the observable behaviour identical including the side effects on save, and document the order the old callbacks ran in so we can prove nothing was lost", "purpose": "refactor", "secondary": "writing", "mixed": true, "difficulty": 0.75, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "denormal protection is reimplemented in each parameter class and three of the four are subtly wrong, which we only noticed because one processor gets slower with quiet input. consolidate it, and confirm from measurements rather than reasoning that the CPU behaviour is unchanged on the processors that were already correct", "purpose": "refactor", "secondary": "review", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "i'd like an honest read of whether our audit log can be altered by the admins it's meant to hold accountable, and if it can, the smallest change that fixes it before february rather than the ideal one", "purpose": "review", "secondary": "planning", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||||
{"prompt": "prod agents run eight slots on eight cores, which is why steps time out instead of queueing, and the fix is a number in a config file. change it, and tell me what else in the agent's defaults assumes a machine larger than the one it runs on", "purpose": "quickFix", "secondary": "review", "mixed": true, "difficulty": 0.45, "slice": "mixed", "lang": "en"}
|
||||
{"prompt":"HinterlandMicaProfileCoordinator needs a paired pass: assess ownership and failure handling in projects/hinterland/workers/thumbnail/consumer.ex, plus capture the contract and rollback note for consumers. Use projects/hinterland/workers/thumbnail/consumer.ex as the source of truth, preserve the Playwright contract, and avoid unrelated cleanup.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Ticket OPS-48127: retire the legacy replay path for HinterlandDeltaCanvasFlow\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 HinterlandDeltaCanvasFlow 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":"core","lang":"en"}
|
||||
{"prompt":"thread 'tokio-runtime-worker' panicked at projects/hinterland/src/sync/reconcile.ts: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: hinterlanddriftconsoleflow::scheduler::LeaseTask::flush\n at ./projects/hinterland/src/sync/reconcile.ts:217:18\n 4: hinterlanddriftconsoleflow::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 HinterlandDriftConsoleFlow 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":"Clarify HinterlandPrismCacheService's retry docs","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Dashboard: # projects/hinterland/crates/index/src/segment.rs\n[worker.hinterlandwillowcodecflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandwillowcodecflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandwillowcodecflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandWillowCodecFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48140\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/hinterland/crates/index/src/segment.rs and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Corrige le timeout de HinterlandDeltaCanvasStore","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"fr"}
|
||||
{"prompt":"En projects/hinterland/workers/thumbnail/consumer.ex, HinterlandBeaconStoreService tiene un problema intermitente en el flujo de Playwright. Redacta una guía para consumidores con contrato, errores, retry y un ejemplo copiable; no cambies el handler.\n\nRestricciones:\n- seguir con Playwright\n- conservar compatibilidad y cancelación\n- limitar el cambio a HinterlandBeaconStoreService","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"es"}
|
||||
{"prompt":"Worker: # projects/hinterland/workers/thumbnail/consumer.ex\n[worker.hinterlandnovapickerflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandnovapickerflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandnovapickerflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandNovaPickerFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48123\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 HinterlandNovaPickerFlow'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":"Simulator: # projects/hinterland/ui/settings/PrivacyPane.tsx\n[worker.hinterlandmicaprofileflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandmicaprofileflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandmicaprofileflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandMicaProfileFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48133\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/hinterland/ui/settings/PrivacyPane.tsx. 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":"Runbook: projects/hinterland/packages/api/openapi.yaml 里的 HinterlandLumenChartService 最近在 Redis Streams 流程中出现间歇性问题。 请给出阶段、兼容层、指标、rollback 和 ownership,先不要修改代码。\n\n约束:\n- 继续使用 Redis Streams\n- 保持兼容性和取消语义\n- 改动只限于 HinterlandLumenChartService","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"zh"}
|
||||
{"prompt":"The minimum supported React 19 version in projects/hinterland/Sources/CLI/Commands/Doctor.swift is one patch behind the lockfile. Align that single value and regenerate only the affected metadata.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Wire a HinterlandQuartzPlayerFlow background task in projects/hinterland/app/src/main/SyncWorker.kt that expires abandoned sessions, records an OpenTelemetry span, and yields cleanly when shutdown begins.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around HinterlandSableParserCoordinator: (1) assess ownership and failure handling in projects/hinterland/Sources/App/SessionStore.swift; (2) capture the contract and rollback note for consumers. Avoid a schema migration in this release, and leave a clear boundary between the resulting artifacts or edits.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"HinterlandEchoRegistryCoordinator: make this less weird","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"HinterlandWillowCodecCoordinator: smooth out this interaction","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"HinterlandCinderAuthCoordinator: deal with the small issue","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Could HinterlandFlintTimelineService migrate incrementally?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Sketch the HinterlandCopperBridgeService migration","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Design handed over a final pass for HinterlandWrenExportService, and the basic data flow in projects/hinterland/config/staging.toml already works. Bring the drawer and detail pane to production polish with fluid sizing, honest skeletons, focus restoration, accessible announcements, and touch targets that survive large text.\n\nConstraints:\n- avoid a schema migration in this release\n- stay compatible with the existing Redis Streams deployment\n- keep the work scoped to HinterlandWrenExportService and its direct tests\n\nSeveral teams work in this search, Terraform, Flutter monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Test Suite 'HinterlandSlateEditorCoordinatorTests' started at 2026-07-30 09:22:14.018\nTest Case '-[HinterlandSlateEditorCoordinatorTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/hinterland/services/ledger/replay.go:144: error: -[HinterlandSlateEditorCoordinatorTests 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 '-[HinterlandSlateEditorCoordinatorTests testRestoresSelectionAfterBackgrounding]' failed (4.812 seconds).\n\nSimulator: iPhone 17 Pro, iOS 27.0, en_US, content size XXXL, Reduce Motion enabled. The screenshot looks correct. The mismatch is the internal selected-segment index after the scene becomes active; tapping Apply a second time makes it three again.\n\nUse the UI evidence to complete HinterlandSlateEditorCoordinator's compact and accessibility behavior, including focus restoration, large text, offline recovery, and honest loading feedback.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Support wants the behavior in projects/hinterland/apps/console/routes/usage.svelte recast as a troubleshooting page: symptoms first, then checks, recovery, and an escalation boundary. The deliverable is prose for consumers; do not alter the handler.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Is HinterlandRavenSessionStore safe under cancellation?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandLedgerGateCoordinator is blocking the next release because lease renewal code copied across three workers. I need two concrete outcomes from a single pass: produce a consumer guide for HinterlandLedgerGateCoordinator, and give the existing implementation a read-only safety pass. Use the existing React 19 conventions in projects/hinterland/cmd/exporter/main.py; avoid a schema migration in this release. 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":"writing","secondary":"review","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Trace: # projects/hinterland/db/migrations/20260730_events.sql\n[worker.hinterlandflinttimelineflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandflinttimelineflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandflinttimelineflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandFlintTimelineFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48132\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 HinterlandFlintTimelineFlow'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":"Responsive layout for HinterlandNimbusFormStore","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"For HinterlandPrismCacheCoordinator, lay out a staged migration for HinterlandPrismCacheCoordinator; once that is complete, then implement the bounded durable-cursor handler. Work from projects/hinterland/packages/api/openapi.yaml, stay with Redis Streams, and avoid a schema migration in this release. Keep the two outcomes separately reviewable.","purpose":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.9,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Extract HinterlandAsterWebhookStore's parsing loop","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Outline a safer HinterlandGarnetModalService cutover","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandSlateEditorService is functionally complete on desktop, but compact widths and assistive technologies still expose unfinished states. Implement the remaining visual states from the design tokens, including compact navigation, offline recovery, destructive confirmation, and animation fallbacks.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current Terraform operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Does HinterlandIrisBatchStore 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.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"EXPLAIN (ANALYZE, BUFFERS)\nSELECT e.tenant_id, e.stream_id, max(e.sequence)\nFROM event_log e\nJOIN active_streams s\n ON s.tenant_id = e.tenant_id AND s.id = e.stream_id\nWHERE e.tenant_id = 't_48135'\n AND e.created_at >= now() - interval '24 hours'\nGROUP BY e.tenant_id, e.stream_id;\n\nHashAggregate (cost=184922.10..185011.81 rows=8971 width=40) (actual time=8421.294..8422.551 rows=123 loops=1)\n Group Key: e.tenant_id, e.stream_id\n Batches: 1 Memory Usage: 945kB\n -> Hash Join (cost=2118.42..181004.17 rows=522391 width=32) (actual time=42.118..8279.405 rows=918412 loops=1)\n Hash Cond: ((e.tenant_id = s.tenant_id) AND (e.stream_id = s.id))\n -> Bitmap Heap Scan on event_log e (actual time=18.602..7922.884 rows=1261044 loops=1)\n Recheck Cond: (tenant_id = 't_48135'::text)\n Filter: (created_at >= (now() - '24:00:00'::interval))\n Rows Removed by Filter: 8045512\nPlanning Time: 2.814 ms\nExecution Time: 8423.104 ms\n\nPostgreSQL 17.2, default_statistics_target=100. The same query was under 300 ms last week, no migration landed, and an ANALYZE temporarily returns it to normal.\n\nWire HinterlandLumenChartFlow's schema, storage, handler, and worker path so continuation is signed, duplicate delivery is stable, and shutdown cannot acknowledge uncommitted work.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Lay out a two-milestone strategy for eliminating two validators with subtly different error strings in HinterlandBirchMigratorService, 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":"Give HinterlandFlintTimelineStore a loading skeleton","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Style HinterlandMoonlitSDKService's offline state","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"diff --git a/projects/hinterland/ui/settings/PrivacyPane.tsx b/projects/hinterland/ui/settings/PrivacyPane.tsx\nindex 62d71aa..90f3c1e 100644\n--- a/projects/hinterland/ui/settings/PrivacyPane.tsx\n+++ b/projects/hinterland/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\nCon este contexto, resuelve la petición indicada manteniendo API, compatibilidad y rollback; deja claras las decisiones y la evidencia. Read the artifact above as a skeptical reviewer. Is HinterlandPineMetricsFlow's current ordering, ownership, and cancellation behavior safe? Return findings with evidence, without editing files.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Two engineers disagree about whether HinterlandWrenExportStore's cache is authoritative. Walk the reads and writes in projects/hinterland/packages/api/openapi.yaml and settle that question from the code.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"We need to move HinterlandWillowCodecService from the legacy store to Redis Streams. Propose phases, compatibility seams, metrics, rollback points, and the order in which clients should migrate; no code yet.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Why is HinterlandMicaProfileService stalling?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandNovaPickerCoordinator: polish, then document","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.4,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"// projects/hinterland/services/ledger/replay.go\nfinal class HinterlandEmberRelayFlowCoordinator {\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 HinterlandEmberRelayFlow; 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":"projects/hinterland/Sources/CLI/Commands/Doctor.swift now contains HinterlandMarbleTokenService's normalization branch three times. Consolidate it behind one private helper, keep call ordering identical, and avoid touching generated code. Please preserve behavior.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"The destination for HinterlandFernSnapshotService is broadly agreed; the missing piece is a reversible route from projects/hinterland/pkg/cache/lease.rs to that target. 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- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandFernSnapshotService\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ticket OPS-48125: retire the legacy replay path for HinterlandPrismCacheFlow\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 HinterlandPrismCacheFlow 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":"HinterlandSableParserService's Doctor.swift needs better comments","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Diff: The public surface of HinterlandPineMetricsService is frozen, but its internal ownership in projects/hinterland/ui/settings/PrivacyPane.tsx is difficult to test and even harder to change safely. Separate those responsibilities into focused units, remove the duplicated normalization branches, and keep public types, wire values, log fields, timing, and test-observable behavior exactly the same.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandPineMetricsService\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandBirchMigratorCoordinator: rethink this area","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Ownership of HinterlandIrisBatchService is moving between teams while old clients remain active, so we need an executable migration sequence before touching files. Propose the module boundaries and migration choreography, compare two viable approaches, and make the risk, cost, and reversibility tradeoffs explicit.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current Redis Streams operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.9,"slice":"core","lang":"en"}
|
||||
{"prompt":"Profiler: // projects/hinterland/Sources/App/SessionStore.swift\nfinal class HinterlandBirchMigratorFlowCoordinator {\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 HinterlandBirchMigratorFlow by responsibility and make cancellation ownership explicit. Characterize the current sequence before moving code and keep callers unchanged.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Could the reasoning behind HinterlandDriftConsoleService's Core Data choices be captured as an ADR for engineers joining the project next quarter?","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Console: Ticket OPS-48119: retire the legacy replay path for HinterlandCloudReconcilerFlow\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 HinterlandCloudReconcilerFlow 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":"Workspace: diff --git a/projects/hinterland/ui/settings/PrivacyPane.tsx b/projects/hinterland/ui/settings/PrivacyPane.tsx\nindex 62d71aa..90f3c1e 100644\n--- a/projects/hinterland/ui/settings/PrivacyPane.tsx\n+++ b/projects/hinterland/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上のコンテキストを基に依頼された作業を行い、API、互換性、rollback を維持し、根拠と判断を明確にしてください。 Wire HinterlandBeaconStoreCoordinator'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":"HinterlandHarborIndexStore is functionally complete on desktop, but compact widths and assistive technologies still expose unfinished states. Implement the remaining visual states from the design tokens, including compact navigation, offline recovery, destructive confirmation, and animation fallbacks.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current React 19 operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Repository: Could the reasoning behind HinterlandWillowCodecStore's Redis Streams choices be captured as an ADR for engineers joining the project next quarter? The deliverable is prose for consumers; do not alter the handler.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Assess the HinterlandCedarPolicyService diff","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"We need to move HinterlandAcornWidgetFlow from the legacy store to React 19. Propose phases, compatibility seams, metrics, rollback points, and the order in which clients should migrate; no code yet.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Move HinterlandEchoRegistryStore'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":"Pipeline: // projects/hinterland/Sources/App/SessionStore.swift\nfinal class HinterlandHarborIndexFlowCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nRestructure HinterlandHarborIndexFlow so duplicated normalization and shutdown ownership have one home. Preserve public behavior, wire values, logging fields, and ordering; extend characterization coverage first.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"HinterlandMapleQueueCoordinator: something is off here","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"PM is preparing the HinterlandCedarPolicyStore rollout and needs prose that works for both application developers and the operators who will carry the pager. Produce a reader-first guide that states the contract, calls out retries and cancellation, gives one copyable example, and separates operator advice from application-developer advice.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandCedarPolicyStore\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.\n\nThe server contract is the subject, but the requested output is documentation rather than handler code.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Find HinterlandCraneWorkspaceService's duplicate retry source","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Gateway: diff --git a/projects/hinterland/ml/pipeline/features.py b/projects/hinterland/ml/pipeline/features.py\nindex 62d71aa..90f3c1e 100644\n--- a/projects/hinterland/ml/pipeline/features.py\n+++ b/projects/hinterland/ml/pipeline/features.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\nRead the artifact above as a skeptical reviewer. Is HinterlandRavenSessionFlow'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":"HinterlandVelaDrawerCoordinator: give it a nicer flow","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"I inherited HinterlandRainfallDBStore and need a careful read of projects/hinterland/config/staging.toml before I can sign off on the next release. 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- avoid a schema migration in this release\n- stay compatible with the existing Redis Streams deployment\n- keep the work scoped to HinterlandRainfallDBStore and its direct tests\n\nSeveral teams work in this search, Terraform, Flutter monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandAtlasSearchService'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.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Split HinterlandAsterWebhookService without behavior changes","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Renderer: // projects/hinterland/db/migrations/20260730_events.sql\nfinal class HinterlandJuniperCLIFlowCoordinator {\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 HinterlandJuniperCLIFlow 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":"Since the last release, HinterlandOrbitSyncService has shown duplicate retries after a network handoff; nobody on the team can reproduce it reliably on a laptop. Reconstruct the failing timeline from logs and tests, identify which invariant first breaks, and distinguish causal signals from effects or cleanup noise.\n\nConstraints:\n- avoid a schema migration in this release\n- stay compatible with the existing Core Data deployment\n- keep the work scoped to HinterlandOrbitSyncService and its direct tests\n\nSeveral teams work in this search, Terraform, Flutter monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-48138\n\n08:02 deploy HinterlandBasilRunnerFlow 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 HinterlandBasilRunnerFlow, 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":"Indexer: diff --git a/projects/hinterland/apps/console/routes/usage.svelte b/projects/hinterland/apps/console/routes/usage.svelte\nindex 62d71aa..90f3c1e 100644\n--- a/projects/hinterland/apps/console/routes/usage.svelte\n+++ b/projects/hinterland/apps/console/routes/usage.svelte\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 HinterlandCopperBridgeFlow'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":"HinterlandBasilRunnerCoordinator: check the suspicious part","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"HinterlandOspreyJobCoordinator needs a paired pass: separate HinterlandOspreyJobCoordinator's policy from transport without behavior changes, plus give the existing implementation a read-only safety pass. Use projects/hinterland/internal/auth/refresh.go as the source of truth, preserve the Terraform contract, and avoid unrelated cleanup.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Release engineering needs a HinterlandDriftConsoleStore changelog entry that distinguishes operator action from invisible internal cleanup and names the rollback condition. The deliverable is prose for consumers; do not alter the handler.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"EXPLAIN (ANALYZE, BUFFERS)\nSELECT e.tenant_id, e.stream_id, max(e.sequence)\nFROM event_log e\nJOIN active_streams s\n ON s.tenant_id = e.tenant_id AND s.id = e.stream_id\nWHERE e.tenant_id = 't_48151'\n AND e.created_at >= now() - interval '24 hours'\nGROUP BY e.tenant_id, e.stream_id;\n\nHashAggregate (cost=184922.10..185011.81 rows=8971 width=40) (actual time=8421.294..8422.551 rows=123 loops=1)\n Group Key: e.tenant_id, e.stream_id\n Batches: 1 Memory Usage: 945kB\n -> Hash Join (cost=2118.42..181004.17 rows=522391 width=32) (actual time=42.118..8279.405 rows=918412 loops=1)\n Hash Cond: ((e.tenant_id = s.tenant_id) AND (e.stream_id = s.id))\n -> Bitmap Heap Scan on event_log e (actual time=18.602..7922.884 rows=1261044 loops=1)\n Recheck Cond: (tenant_id = 't_48151'::text)\n Filter: (created_at >= (now() - '24:00:00'::interval))\n Rows Removed by Filter: 8045512\nPlanning Time: 2.814 ms\nExecution Time: 8423.104 ms\n\nPostgreSQL 17.2, default_statistics_target=100. The same query was under 300 ms last week, no migration landed, and an ANALYZE temporarily returns it to normal.\n\nFind the source of this HinterlandAmberFilterCoordinator 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":"Sequence HinterlandOspreyJobStore's rollout","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Investigate the HinterlandOspreyJobService hang","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Apparently: projects/hinterland/workers/thumbnail/consumer.ex の HinterlandMapleQueueService で、Playwright の flow に断続的な問題が起きています。 現在の flow を読み、ownership、cancel、順序が安全か評価してください。分析だけで十分です。\n\n制約:\n- Playwright を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は HinterlandMapleQueueService のみ","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"ja"}
|
||||
{"prompt":"HinterlandAsterWebhookCoordinator: assess, then document","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.4,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"HinterlandMarbleTokenCoordinator: handle the lingering thing","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-48118\n\n08:02 deploy HinterlandAsterWebhookFlow 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 HinterlandAsterWebhookFlow 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":"Lately: Incident timeline — INC-48154\n\n08:02 deploy HinterlandCoralUploadCoordinator 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 HinterlandCoralUploadCoordinator 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":"HinterlandLumenChartCoordinator: the docs need something","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"How does HinterlandEmberRelayStore propagate cancellation through the Terraform boundary, and are there code paths where ownership becomes ambiguous?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Oddly: Incident timeline — INC-48146\n\n08:02 deploy HinterlandMarbleTokenFlow 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\nDetermine why HinterlandMarbleTokenFlow produces this result. Trace ordering, cancellation, shared state, and scheduler behavior; identify the root cause before suggesting a patch.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Translate the HinterlandMoonlitSDKStore setup notes","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"For HinterlandRavenSessionCoordinator, separate HinterlandRavenSessionCoordinator's policy from transport without behavior changes; once that is complete, capture the contract and rollback note for consumers. Work from projects/hinterland/cmd/exporter/main.py, stay with React 19, and avoid a schema migration in this release. Keep the two outcomes separately reviewable.","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"HinterlandKiteSchedulerCoordinator: clean up that old path","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Currently: projects/hinterland/ui/settings/PrivacyPane.tsx 里的 HinterlandMapleQueueStore 最近在 Playwright 流程中出现间歇性问题。 请追踪 queue、scheduler 和取消路径,对比假设,先定位原因再提修改。\n\n约束:\n- 继续使用 Playwright\n- 保持兼容性和取消语义\n- 改动只限于 HinterlandMapleQueueStore","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"zh"}
|
||||
{"prompt":"Today: // projects/hinterland/apps/console/routes/usage.svelte\nfinal class HinterlandQuartzPlayerCoordinatorCoordinator {\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 HinterlandQuartzPlayerCoordinator; 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":"Context: # projects/hinterland/Sources/CLI/Commands/Doctor.swift\n[worker.hinterlandsableparserflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandsableparserflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandsableparserflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandSableParserFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48126\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 HinterlandSableParserFlow'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":"projects/hinterland/crates/index/src/segment.rs now contains HinterlandIrisBatchFlow'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":"Nobody is asking for code changes yet; we first need to understand whether the current HinterlandAmberFilterService design actually guarantees what its callers assume. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandAmberFilterService\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"The data is already available in projects/hinterland/lib/codec/frame.cc; 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":"Background: Incident timeline — INC-48122\n\n08:02 deploy HinterlandOpalRouterFlow 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 HinterlandOpalRouterFlow 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":"How does HinterlandVelaDrawerStore propagate cancellation through the Redis Streams boundary, and are there code paths where ownership becomes ambiguous?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"I inherited HinterlandFrostPanelService and need a careful read of projects/hinterland/engine/render/atlas.cpp before I can sign off on the next release. 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- avoid a schema migration in this release\n- stay compatible with the existing Playwright deployment\n- keep the work scoped to HinterlandFrostPanelService and its direct tests\n\nSeveral teams work in this search, Terraform, Flutter monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Move HinterlandSpruceDaemonService's clock and ID generation behind the existing environment type so tests no longer reach global state; outputs and scheduling order must stay identical.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Could HinterlandCoralUploadStore show the active Terraform sync phase as an accessible progress row, including reduced-motion behavior?","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandSpruceDaemonCoordinator: ship a sensible version","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.6,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Nobody is asking for code changes yet; we first need to understand whether the current HinterlandCopperBridgeStore design actually guarantees what its callers assume. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandCopperBridgeStore\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"# projects/hinterland/ml/pipeline/features.py\n[worker.hinterlandledgergateflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandledgergateflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandledgergateflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandLedgerGateFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48111\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 HinterlandLedgerGateFlow'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":"Read projects/hinterland/engine/render/atlas.cpp and tell me whether HinterlandBasilRunnerStore 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":"UI ticket DES-48124: finish the compact HinterlandOspreyJobFlow filter experience\n\nRoute: /catalog/search\nSource: projects/hinterland/infra/modules/edge/main.tf\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\nBring HinterlandOspreyJobFlow'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":"HinterlandMosaicGridCoordinator: take care of the warning","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Compare the old and new HinterlandSpruceDaemonStore adapters for ordering, error mapping, and shutdown guarantees; report semantic differences without proposing edits.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Center the HinterlandNovaPickerStore modal","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"For HinterlandGarnetModalCoordinator, separate HinterlandGarnetModalCoordinator's policy from transport without behavior changes; once that is complete, capture the contract and rollback note for consumers. Work from projects/hinterland/lib/codec/frame.cc, stay with Playwright, and avoid a schema migration in this release. Keep the two outcomes separately reviewable.","purpose":"refactor","secondary":"writing","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"HinterlandCopperBridgeCoordinator: sequence, then restructure","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Two deliverables are holding up HinterlandJuniperCLICoordinator. First, finish HinterlandJuniperCLICoordinator's responsive empty and retry states. In the same workstream, correct the known stale timeout beside it. The relevant starting point is projects/hinterland/src/sync/reconcile.ts, which follows Core Data conventions and currently suffers from duplicate retries after a network handoff. Avoid a schema migration in this release.\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":"frontendImpl","secondary":"quickFix","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"# CI job 48121: integration-linux\nrunner: ubuntu-24.04 / amd64 / 8 cores\ntoolchain: React 19\n\n[setup] restoring cache key deps-a2f91c ... hit\n[setup] starting postgres:17 ... healthy after 4.2s\n[setup] starting redis:8 ... healthy after 0.8s\n[test] shard 3/8 selected 412 tests\n[test] HinterlandTideWorkerFlowIntegration.replays_after_timeout ... ok\n[test] HinterlandTideWorkerFlowIntegration.cancels_orphaned_batch ... FAILED\n\nExpected:\n pending_jobs{queue=\"replay\"} 0\nActual:\n pending_jobs{queue=\"replay\"} 1\n\nCaptured spans:\n batch.receive 2.1ms status=ok\n storage.transaction 44.8ms status=cancelled\n batch.nack <missing>\n\nteardown warning: resource still in use: redis connection pool (1 borrower)\nretry 1/2 with identical seed ... passed\nretry 2/2 with identical seed ... passed\n\nThe failure began after the test suite was sharded, but it sometimes appears on an unsharded nightly run. There are no wall-clock sleeps in this test; it advances the fake scheduler until idle.\n\nBearbeite auf Basis dieses Kontexts die beschriebene Aufgabe; API, Kompatibilität und Rollback müssen erhalten bleiben. Add the bounded HinterlandTideWorkerFlow 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":"EXPLAIN (ANALYZE, BUFFERS)\nSELECT e.tenant_id, e.stream_id, max(e.sequence)\nFROM event_log e\nJOIN active_streams s\n ON s.tenant_id = e.tenant_id AND s.id = e.stream_id\nWHERE e.tenant_id = 't_48137'\n AND e.created_at >= now() - interval '24 hours'\nGROUP BY e.tenant_id, e.stream_id;\n\nHashAggregate (cost=184922.10..185011.81 rows=8971 width=40) (actual time=8421.294..8422.551 rows=123 loops=1)\n Group Key: e.tenant_id, e.stream_id\n Batches: 1 Memory Usage: 945kB\n -> Hash Join (cost=2118.42..181004.17 rows=522391 width=32) (actual time=42.118..8279.405 rows=918412 loops=1)\n Hash Cond: ((e.tenant_id = s.tenant_id) AND (e.stream_id = s.id))\n -> Bitmap Heap Scan on event_log e (actual time=18.602..7922.884 rows=1261044 loops=1)\n Recheck Cond: (tenant_id = 't_48137'::text)\n Filter: (created_at >= (now() - '24:00:00'::interval))\n Rows Removed by Filter: 8045512\nPlanning Time: 2.814 ms\nExecution Time: 8423.104 ms\n\nPostgreSQL 17.2, default_statistics_target=100. The same query was under 300 ms last week, no migration landed, and an ANALYZE temporarily returns it to normal.\n\nCom este contexto, trate a solicitação indicada preservando API, compatibilidade e rollback, com decisões e evidências claras. Determine why HinterlandSpruceDaemonFlow produces this result. Trace ordering, cancellation, shared state, and scheduler behavior; identify the root cause before suggesting a patch.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Collapse the HinterlandOpalRouterService wrappers","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Describe HinterlandOpalRouterStore's error envelope","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Fresh release brief for HinterlandFernSnapshotCoordinator:\n- primary outcome: finish HinterlandFernSnapshotCoordinator's responsive empty and retry states\n- companion outcome: give the existing implementation a read-only safety pass\n- repository entry point: projects/hinterland/crates/index/src/segment.rs\n- platform constraint: Redis Streams\n- known complication: an accessibility label that reads the internal enum\n\nBoth results are required, but they should remain independently reviewable. Avoid a schema migration in this release; 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":"frontendImpl","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"A copied hex color in HinterlandWrenExportFlow 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":"HinterlandAcornWidgetService needs a production server path for replaying tenant events; the public envelope is agreed but persistence and retry handling are not wired. Add signed cursor parsing, bounded pagination, key rotation, tenant checks, and a resumable background path with metrics for lag, retries, and terminal failures.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current React 19 operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"Ticket OPS-48144: retire the legacy replay path for HinterlandKiteSchedulerFlow\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 HinterlandKiteSchedulerFlow 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":"Does HinterlandBasilRunnerService enforce tenant scope before decoding its cursor, and could any early-return path reveal whether a foreign record exists?","purpose":"review","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"The minimum supported Terraform version in projects/hinterland/infra/modules/edge/main.tf is one patch behind the lockfile. Align that single value and regenerate only the affected metadata.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Flip HinterlandTideWorkerService's staging toggle","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"A copied hex color in HinterlandEmberRelayService 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":"Cadre la migration de HinterlandCloudReconcilerService","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"vague-eval","lang":"fr"}
|
||||
{"prompt":"Ticket OPS-48129: retire the legacy replay path for HinterlandMoonlitSDKFlow\n\nBackground\nThe mobile clients now send monotonic cursors, but the worker still supports the pre-2024 offset token. That compatibility branch performs an extra database lookup on every page and owns a separate retry counter. Support confirmed that the oldest active client is version 8.14, which uses cursors.\n\nAcceptance notes\n- existing cursor tokens must remain valid during a two-release overlap\n- operators need one metric showing legacy traffic by client version\n- a rollback must not require restoring deleted columns\n- tenant isolation remains enforced in the storage query\n- SDK examples should show how to persist the continuation token\n- the public route and current 429 envelope cannot change\n\nOpen questions\nDo we delete the offset decoder immediately or quarantine it behind a flag? Who owns the mobile version gate? Can the database index be removed in the same deploy? Security wants evidence that forged cursors cannot select another tenant.\n\nSlack excerpt\nMina 09:42: “I can provide client adoption numbers, but not a guarantee about sideloaded builds.”\nRavi 09:47: “Please make the rollback trigger explicit; queue lag alone is too noisy.”\n\nÀ partir de ce contexte, traite la demande indiquée en préservant API, compatibilité et rollback, avec des décisions explicites. From this evidence, draft consumer-facing migration guidance for HinterlandMoonlitSDKFlow, 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":"HinterlandAtlasSearchCoordinator: the screen feels unfinished","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Test Suite 'HinterlandWrenExportCoordinatorTests' started at 2026-07-30 09:22:14.018\nTest Case '-[HinterlandWrenExportCoordinatorTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/hinterland/packages/api/openapi.yaml:144: error: -[HinterlandWrenExportCoordinatorTests 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 '-[HinterlandWrenExportCoordinatorTests 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 HinterlandWrenExportCoordinator state described above: responsive layout, correct selection restoration, keyboard focus, accessible labels, dark mode, and reduced-motion behavior.","purpose":"frontendImpl","secondary":"debugging","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Question: The next client release depends on a new HinterlandSlateEditorStore capability in projects/hinterland/services/ledger/replay.go, with Terraform already chosen by the platform group. Wire the schema, repository, handler, and worker so duplicate deliveries return the original result and shutdown never acknowledges uncommitted work.\n\nConstraints:\n- avoid a schema migration in this release\n- stay compatible with the existing Terraform deployment\n- keep the work scoped to HinterlandSlateEditorStore and its direct tests\n\nSeveral teams work in this search, Terraform, Flutter monorepo, so keep ownership and handoff points understandable in a small review.\n\nThe contract notes are context; the requested outcome is the working server path.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandEmberRelayCoordinator: make the api less awkward","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"This should remain a deliberately small patch: HinterlandJuniperCLIStore has one known configuration mistake in projects/hinterland/src/sync/reconcile.ts, not an open-ended failure investigation. 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- avoid a schema migration in this release\n- stay compatible with the existing Core Data deployment\n- keep the work scoped to HinterlandJuniperCLIStore and its direct tests\n\nSeveral teams work in this search, Terraform, Flutter monorepo, so keep ownership and handoff points understandable in a small review.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"core","lang":"en"}
|
||||
{"prompt":"Collapse the HinterlandNimbusFormService wrappers","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Release engineering needs a HinterlandAcornWidgetStore changelog entry that distinguishes operator action from invisible internal cleanup and names the rollback condition.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"Move HinterlandBeaconStoreFlow's clock and ID generation behind the existing environment type so tests no longer reach global state; outputs and scheduling order must stay identical.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Observation: Move HinterlandTideWorkerStore behind one protocol","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Two asks around HinterlandFlintTimelineCoordinator: (1) assess ownership and failure handling in projects/hinterland/src/sync/reconcile.ts; (2) capture the contract and rollback note for consumers. Avoid a schema migration in this release, and leave a clear boundary between the resulting artifacts or edits.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Constraint: // projects/hinterland/db/migrations/20260730_events.sql\nfinal class HinterlandOrbitSyncCoordinatorCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nDeliver the HinterlandOrbitSyncCoordinator server-side capability implied above: durable cursors, tenant authorization, idempotent retries, bounded work, telemetry, and focused integration coverage.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.9,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"HinterlandCloudReconcilerCoordinator: sequence, then ship","purpose":"planning","secondary":"backendImpl","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"HinterlandOpalRouterCoordinator: ship, then correct","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Remove HinterlandGarnetModalStore's stray comma","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Request: # projects/hinterland/Sources/App/SessionStore.swift\n[worker.hinterlandacornwidgetcoordinator]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandacornwidgetcoordinator.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandacornwidgetcoordinator.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandAcornWidgetCoordinator.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48156\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 HinterlandAcornWidgetCoordinator'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":"Split projects/hinterland/apps/console/routes/usage.svelte 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":"Vereinheitliche die HinterlandCloudReconcilerStore-Validatoren","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"de"}
|
||||
{"prompt":"# projects/hinterland/engine/render/atlas.cpp\n[worker.hinterlandgarnetmodalflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandgarnetmodalflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandgarnetmodalflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandGarnetModalFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48128\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/hinterland/engine/render/atlas.cpp and its adjacent assertion. Avoid broader cleanup.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.2,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"HinterlandNimbusFormCoordinator needs a paired pass: separate HinterlandNimbusFormCoordinator's policy from transport without behavior changes, plus give the existing implementation a read-only safety pass. Use projects/hinterland/crates/index/src/segment.rs as the source of truth, preserve the Redis Streams contract, and avoid unrelated cleanup.","purpose":"refactor","secondary":"review","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"$ pnpm test --filter HinterlandSummitProxyFlow\n RUN v3.2.4 /workspace/apps/console\n × HinterlandSummitProxyFlow > restores a suspended upload after reconnect 1543ms\n → expected cursor \"seg-0184\" to equal \"seg-0183\"\n\nAssertionError: expected 'seg-0184' to deeply equal 'seg-0183'\n at packages/sync/test/reconnect.spec.ts:188:31\n at async withFakeClock (packages/testkit/clock.ts:72:9)\n at async Promise.all (index 1)\n\nstdout:\n session=48147 phase=resume storedCursor=seg-0183\n session=48147 phase=fetch requestCursor=seg-0183 pageSize=200\n session=48147 phase=commit receivedCursor=seg-0184 itemCount=0\n session=48147 phase=ack durable=false\n\nThe assertion passes when this file runs alone and fails about one time in twelve in the full shard. Fake time is reset in afterEach, Redis is flushed, and no production incident has been tied to it. CI uses Node 24 on Linux; local repro attempts were on macOS.\n\nReconstruct the HinterlandSummitProxyFlow 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":"Find HinterlandSableParserStore's duplicate retry source","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandSummitProxyCoordinator: could this be clearer","purpose":"review","secondary":null,"mixed":false,"difficulty":0.2,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Fresh release brief for HinterlandPineMetricsCoordinator:\n- primary outcome: produce a consumer guide for HinterlandPineMetricsCoordinator\n- companion outcome: give the existing implementation a read-only safety pass\n- repository entry point: projects/hinterland/workers/thumbnail/consumer.ex\n- platform constraint: Playwright\n- known complication: a query plan that changes after statistics refresh\n\nBoth results are required, but they should remain independently reviewable. Avoid a schema migration in this release; 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":"writing","secondary":"review","mixed":true,"difficulty":0.8,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Please turn HinterlandAmberFilterStore's existing tests into a short contract reference, covering pagination, malformed input, authorization, and retry semantics without copying test code.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"The data is already available in projects/hinterland/infra/modules/edge/main.tf; 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.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Polish the HinterlandNovaPickerService toolbar","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Lay out a two-milestone strategy for eliminating a misleading timeout name used in five packages in HinterlandOrbitSyncFlow, with risk checks and a crisp definition of done for each milestone.","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.6,"slice":"core","lang":"en"}
|
||||
{"prompt":"Goal: Ticket OPS-48149: retire the legacy replay path for HinterlandAtlasSearchFlow\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 HinterlandAtlasSearchFlow 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":"HinterlandHarborIndexCoordinator: document, then assess","purpose":"writing","secondary":"review","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Symptom: The name pendingAck means two different things across HinterlandFrostPanelFlow'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":"Where did HinterlandCraneWorkspaceStore's cursor drift?","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Nobody is asking for code changes yet; we first need to understand whether the current HinterlandQuartzPlayerService design actually guarantees what its callers assume. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandQuartzPlayerService\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Persist HinterlandAtlasSearchStore delivery attempts in projects/hinterland/services/ledger/replay.go, claim them safely across workers, and make duplicate webhook receipts return the original accepted result.","purpose":"backendImpl","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"// projects/hinterland/crates/index/src/segment.rs\nfinal class HinterlandCraneWorkspaceFlowCoordinator {\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 HinterlandCraneWorkspaceFlow'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":"Polish the HinterlandRavenSessionService toolbar","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Headsup: A flaky failure around HinterlandCoralUploadService survived three attempted fixes, so I want the evidence and invariants traced before another patch lands. Correlate the queue, scheduler, storage, and shutdown paths; form competing hypotheses, identify evidence for each, and narrow the root cause before proposing a code change.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandCoralUploadService\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"FYI: // projects/hinterland/internal/auth/refresh.go\nfinal class HinterlandCinderAuthFlowCoordinator {\n private let store: EventStore\n private let clock: Clock\n private var pending: [Event.ID: Task<Void, Never>] = [:]\n\n func accept(_ event: Event) {\n pending[event.id]?.cancel()\n pending[event.id] = Task {\n let normalized = normalize(event)\n try? await store.persist(normalized)\n await MainActor.run {\n NotificationCenter.default.post(\n name: .eventDidPersist,\n object: event.id\n )\n }\n }\n }\n\n func stop() {\n pending.values.forEach { $0.cancel() }\n pending.removeAll()\n }\n}\n\n// A second copy lives in PreviewCoordinator.swift. It uses the same normalization\n// rules but calls store.persist before assigning the Task into `pending`.\n\nTests currently cover successful persistence and explicit stop. They do not cover replacement of an in-flight event with the same ID, cancellation thrown by the store, or whether the notification may arrive after stop returns. Public callers rely on accept being synchronous.\n\nRestructure HinterlandCinderAuthFlow so duplicated normalization and shutdown ownership have one home. Preserve public behavior, wire values, logging fields, and ordering; extend characterization coverage first.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Meanwhile: A copied hex color in HinterlandVelaDrawerService 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":"HinterlandRainfallDBService flakes under UTC","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.5,"slice":"core","lang":"en"}
|
||||
{"prompt":"Describe HinterlandHarborIndexService's error envelope","purpose":"review","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandCinderAuthService's staging timeout is already known to be wrong: change the single projects/hinterland/internal/auth/refresh.go value from 15 to 30 seconds and leave production alone.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Move HinterlandSlateEditorFlow'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":"2026-07-30T08:14:11.409Z level=info service=hinterlandmosaicgridflow pod=hinterlandmosaicgridflow-7cf8 request_id=48148 msg=\"lease acquired\" partition=12 epoch=884\n2026-07-30T08:14:11.417Z level=debug service=hinterlandmosaicgridflow request_id=48148 msg=\"batch loaded\" rows=250 cursor=01JZ7M\n2026-07-30T08:14:11.590Z level=warn service=hinterlandmosaicgridflow request_id=48148 msg=\"heartbeat delayed\" elapsed_ms=3012 deadline_ms=3000\n2026-07-30T08:14:11.593Z level=info service=hinterlandmosaicgridflow request_id=48148 msg=\"lease renewed\" partition=12 epoch=885\n2026-07-30T08:14:11.598Z level=error service=hinterlandmosaicgridflow request_id=48148 msg=\"commit rejected\" expected_epoch=884 actual_epoch=885\n2026-07-30T08:14:11.601Z level=info service=hinterlandmosaicgridflow request_id=48148 msg=\"retry scheduled\" attempt=1 delay_ms=0\n2026-07-30T08:14:11.617Z level=warn service=hinterlandmosaicgridflow request_id=48148 msg=\"duplicate key ignored\" event_id=ev_29af\n2026-07-30T08:14:11.620Z level=info service=hinterlandmosaicgridflow request_id=48148 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\nFind the source of this HinterlandMosaicGridFlow 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":"How should HinterlandPrismCacheStore be decomposed?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.7,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"HinterlandCraneWorkspaceCoordinator: sequence, then restructure","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.5,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Locally: # projects/hinterland/internal/auth/refresh.go\n[worker.hinterlandcedarpolicyflow]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandcedarpolicyflow.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandcedarpolicyflow.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandCedarPolicyFlow.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48114\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 HinterlandCedarPolicyFlow'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":"Read projects/hinterland/internal/auth/refresh.go and tell me whether HinterlandKiteSchedulerStore 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":"HinterlandTideWorkerCoordinator: sequence, then polish","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.4,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-48110\n\n08:02 deploy HinterlandFernSnapshotFlow 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 HinterlandFernSnapshotFlow 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":"Test Suite 'HinterlandMapleQueueFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[HinterlandMapleQueueFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/hinterland/workers/thumbnail/consumer.ex:144: error: -[HinterlandMapleQueueFlowTests 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 '-[HinterlandMapleQueueFlowTests 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 HinterlandMapleQueueFlow 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":"One contained cleanup in projects/hinterland/cmd/exporter/main.py: remove the obsolete HinterlandEchoRegistryService import and let the existing formatter settle the blank line.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"What is the safest way to split projects/hinterland/app/src/main/SyncWorker.kt into independently owned modules while HinterlandSummitProxyService's public behavior remains frozen for the next release?","purpose":"planning","secondary":null,"mixed":false,"difficulty":0.8,"slice":"boundary","lang":"en"}
|
||||
{"prompt":"Test Suite 'HinterlandEchoRegistryFlowTests' started at 2026-07-30 09:22:14.018\nTest Case '-[HinterlandEchoRegistryFlowTests testRestoresSelectionAfterBackgrounding]' started.\nprojects/hinterland/cmd/exporter/main.py:144: error: -[HinterlandEchoRegistryFlowTests 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 '-[HinterlandEchoRegistryFlowTests testRestoresSelectionAfterBackgrounding]' failed (4.812 seconds).\n\nSimulator: iPhone 17 Pro, iOS 27.0, en_US, content size XXXL, Reduce Motion enabled. The screenshot looks correct. The mismatch is the internal selected-segment index after the scene becomes active; tapping Apply a second time makes it three again.\n\nUse the UI evidence to complete HinterlandEchoRegistryFlow'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":"The HinterlandCinderAuthStore feature flag default should be false in test, exactly like production; correct that config entry and nothing else.","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Could HinterlandMosaicGridService show the active Playwright sync phase as an accessible progress row, including reduced-motion behavior?","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.4,"slice":"core","lang":"en"}
|
||||
{"prompt":"Is there a cleaner way to separate HinterlandBeaconStoreStore'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":"En projects/hinterland/cmd/exporter/main.py, HinterlandLedgerGateStore tiene un problema intermitente en el flujo de React 19. Separa responsabilidades y elimina duplicación, conservando API, wire values, orden y comportamiento observable.\n\nRestricciones:\n- seguir con React 19\n- conservar compatibilidad y cancelación\n- limitar el cambio a HinterlandLedgerGateStore Explicita los supuestos, señala la evidencia del repositorio y mantén compatibilidad con React 19 alrededor de HinterlandLedgerGateStore.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"es"}
|
||||
{"prompt":"Three teams extended HinterlandPineMetricsStore independently, leaving parallel adapters and normalization branches that are supposed to behave identically. Rename the overloaded state, extract the pure conversion work, and make dependencies explicit while preserving ABI, serialization, metrics, and failure messages.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current Playwright operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"refactor","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"HinterlandCedarPolicyCoordinator is blocking the next release because two validators with subtly different error strings. I need two concrete outcomes from a single pass: lay out a staged migration for HinterlandCedarPolicyCoordinator, and consolidate the duplicated normalization paths without changing behavior. Use the existing Terraform conventions in projects/hinterland/infra/modules/edge/main.tf; avoid a schema migration in this release. Keep the outcomes distinct so reviewers can see which evidence supports the assessment and which files or prose satisfy the requested change.\n\nConstraints:\n- preserve public wire values and tenant boundaries\n- cover cancellation and retry behavior\n- avoid generated code and unrelated cleanup\n- include a rollback trigger that an on-call engineer can measure\n\nThis is a fresh workstream for the release, so derive everything from the repository and the context here.","purpose":"planning","secondary":"refactor","mixed":true,"difficulty":0.9,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Two deliverables are holding up HinterlandRainfallDBCoordinator. First, produce a consumer guide for HinterlandRainfallDBCoordinator. In the same workstream, correct the known stale timeout beside it. The relevant starting point is projects/hinterland/config/staging.toml, which follows Redis Streams conventions and currently suffers from memory growth during hour-long imports. Avoid a schema migration in this release.\n\nPlease make the boundary between analysis and changes obvious, preserve tenant and wire compatibility, exercise cancellation plus retries, and leave unrelated generators alone. The handoff should include one measurable rollback signal and enough repository evidence for separate reviewers to verify each outcome.","purpose":"writing","secondary":"quickFix","mixed":true,"difficulty":0.7,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Em projects/hinterland/config/staging.toml, o HinterlandLumenChartStore tem um problema intermitente no fluxo de Redis Streams. Siga queue, scheduler e cancelamento, compare hipóteses e encontre a causa antes de mudar código.\n\nRestrições:\n- continuar com Redis Streams\n- preservar compatibilidade e cancelamento\n- limitar a mudança ao HinterlandLumenChartStore","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"pt"}
|
||||
{"prompt":"Two asks around HinterlandMoonlitSDKCoordinator: (1) assess ownership and failure handling in projects/hinterland/services/ledger/replay.go; (2) capture the contract and rollback note for consumers. Avoid a schema migration in this release, and leave a clear boundary between the resulting artifacts or edits.","purpose":"review","secondary":"writing","mixed":true,"difficulty":0.5,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"Drop HinterlandMicaProfileStore's unused import","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.1,"slice":"core","lang":"en"}
|
||||
{"prompt":"Incident timeline — INC-48130\n\n08:02 deploy HinterlandNimbusFormFlow 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 HinterlandNimbusFormFlow 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":"HinterlandDriftConsoleCoordinator: sort out the rough edge","purpose":"quickFix","secondary":null,"mixed":false,"difficulty":0.3,"slice":"vague-eval","lang":"en"}
|
||||
{"prompt":"Production: // projects/hinterland/packages/api/openapi.yaml\nfinal class HinterlandRainfallDBFlowCoordinator {\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 HinterlandRainfallDBFlow; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"Staging: # projects/hinterland/lib/codec/frame.cc\n[worker.hinterlandfrostpanelcoordinator]\nenabled = true\nrequest_timeout_seconds = 15\nshutdown_grace_seconds = 10\nmax_in_flight = 32\nretry_attempts = 4\nretry_base_milliseconds = 250\n\n[worker.hinterlandfrostpanelcoordinator.staging]\nrequest_timeout_seconds = 15\nemit_debug_spans = true\n\n[worker.hinterlandfrostpanelcoordinator.production]\nrequest_timeout_seconds = 30\nemit_debug_spans = false\n\nFailing assertion:\n ConfigTests.HinterlandFrostPanelCoordinator.staging_timeout_matches_supported_gateway\n expected: Duration.seconds(30)\n actual: Duration.seconds(15)\n\nTicket note CFG-48158\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/hinterland/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":"HinterlandFernSnapshotStore is functionally complete on desktop, but compact widths and assistive technologies still expose unfinished states. Implement the remaining visual states from the design tokens, including compact navigation, offline recovery, destructive confirmation, and animation fallbacks.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current Redis Streams operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"frontendImpl","secondary":null,"mixed":false,"difficulty":0.8,"slice":"core","lang":"en"}
|
||||
{"prompt":"// projects/hinterland/config/staging.toml\nfinal class HinterlandVelaDrawerFlowCoordinator {\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\n请根据以上上下文完成对应工作,保持 API、兼容性和 rollback,并明确说明证据和取舍。 Walk through what the artifact proves about HinterlandVelaDrawerFlow; flag semantic changes and missing coverage with exact evidence, keeping this a read-only pass.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.6,"slice":"pasted-context","lang":"en"}
|
||||
{"prompt":"HinterlandDeltaCanvasCoordinator needs a paired pass: change HinterlandDeltaCanvasCoordinator's known staging timeout from 15 to 30 seconds, plus give the existing implementation a read-only safety pass. Use projects/hinterland/apps/console/routes/usage.svelte as the source of truth, preserve the Core Data contract, and avoid unrelated cleanup.","purpose":"quickFix","secondary":"review","mixed":true,"difficulty":0.6,"slice":"mixed","lang":"en"}
|
||||
{"prompt":"CI: The behavior of HinterlandJuniperCLIService is stable, yet consumers are reconstructing its contract from tests, Slack threads, and scattered comments in projects/hinterland/db/migrations/20260730_events.sql. Draft an ADR plus migration note that records the decision, rejected alternatives, compatibility window, observability signals, and the exact action required from consumers.\n\nConstraints:\n- touch generated artifacts only through their checked-in generator\n- avoid a schema migration in this release\n- retain the current Core Data operational envelope\n\nThe relevant code crosses search, Terraform, Flutter. Prefer evidence from the repository and make any assumption explicit.","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"PM needs a concise migration note for HinterlandOrbitSyncStore, 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":"Nobody is asking for code changes yet; we first need to understand whether the current HinterlandFrostPanelStore design actually guarantees what its callers assume. Trace ownership, ordering, error propagation, and cancellation; call out concrete risks with file references, but do not edit the implementation or turn the answer into a replacement design.\n\nConstraints:\n- cover cancellation, retries, and rollback in the result\n- avoid unrelated changes outside HinterlandFrostPanelStore\n- avoid a schema migration in this release\n\nThis repository spans search, Terraform, Flutter; use its existing conventions rather than importing a new abstraction.","purpose":"review","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"en"}
|
||||
{"prompt":"Documente o contrato de HinterlandDeltaCanvasService","purpose":"writing","secondary":null,"mixed":false,"difficulty":0.3,"slice":"core","lang":"pt"}
|
||||
{"prompt":"The name pendingAck means two different things across HinterlandMarbleTokenStore'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":"Atlas: projects/hinterland/cmd/exporter/main.py の HinterlandAmberFilterFlow で、React 19 の flow に断続的な問題が起きています。 queue、scheduler、cancel 経路を追い、仮説を比較して、変更前に原因を特定してください。\n\n制約:\n- React 19 を継続利用\n- 互換性と cancel の意味を維持\n- 変更範囲は HinterlandAmberFilterFlow のみ","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"ja"}
|
||||
{"prompt":"In projects/hinterland/ml/pipeline/features.py hat HinterlandLedgerGateService ein sporadisches Problem im React 19-Ablauf. Verfolge Queue, Scheduler und Abbruch, vergleiche Hypothesen und finde die Ursache vor jeder Änderung.\n\nRandbedingungen:\n- React 19 weiterverwenden\n- Kompatibilität und Abbruchsemantik erhalten\n- Änderung auf HinterlandLedgerGateService begrenzen Mache Annahmen explizit, nenne Repository-Belege und bleibe rund um HinterlandLedgerGateService mit React 19 kompatibel.","purpose":"debugging","secondary":null,"mixed":false,"difficulty":0.7,"slice":"core","lang":"de"}
|
||||
{"prompt":"Beacon: Incident timeline — INC-48150\n\n08:02 deploy HinterlandIrisBatchCoordinator 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 HinterlandIrisBatchCoordinator 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"}
|
||||
|
||||
Reference in New Issue
Block a user