{"prompt": "extension hangs the whole editor on large repos and this is the profile:\n\nExtension host CPU profile (10s):\n 92.1% (program)\n 88.4% onDidChangeTextDocument\n 86.9% IndexManager.reindexAll\n 84.2% glob('**/*.{ts,tsx,js,jsx}')\n 1.8% ts.createSourceFile\n 3.1% provideCompletionItems\n\nExtension 'lumen.navigator' caused the extension host to become unresponsive.\n[Warning] UNRESPONSIVE extension host: 'lumen.navigator' took 8412ms\n[Info] Extension host terminated unexpectedly 3 times within the last 5 minutes.\n\nreindexAll runs on every keystroke in a workspace with 40,000 files", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "pasted-context", "lang": "en"}
{"prompt": "seat maps render wrong for one aircraft type and support sent me the payload:\n\n{\n \"equipment\": \"77W\",\n \"cabins\": [\n {\"class\": \"J\", \"rows\": [{\"number\": 1, \"seats\": [\"A\",\"C\",\"D\",\"G\",\"H\",\"K\"]}]},\n {\"class\": \"W\", \"rows\": [{\"number\": 20, \"seats\": [\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"J\",\"K\"]}]},\n {\"class\": \"Y\", \"rows\": [{\"number\": 30, \"seats\": [\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"J\",\"K\"]}]}\n ],\n \"exit_rows\": [20, 44],\n \"blocked\": [\"30A\", \"30K\"]\n}\n\nour renderer assumes 3-4-3 for wide bodies and lays out the J cabin as if it were economy, so business class shows ten seats across", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
{"prompt": "supplier abstraction, three implementations behind it, and a fourth to be added next month:\n\nclass Supplier(Protocol):\n def search(self, query: SearchQuery) -> list[Offer]: ...\n def hold(self, offer_id: str, passengers: list[Passenger]) -> Hold: ...\n def confirm(self, hold_id: str, payment_ref: str) -> Booking: ...\n def cancel(self, record_locator: str) -> None: ...\n def refund(self, record_locator: str, amount: Decimal) -> str: ...\n\namadeus: hold expires in 20 minutes, cancel is free before ticketing\nsabre: no hold concept at all, we fake it with a 5 minute local reservation\ndirect_airline: hold is 60 minutes, cancel after ticketing costs a fee we can't know in advance\n\nis this interface honest about what these suppliers actually do?", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.75, "slice": "pasted-context", "lang": "en"}
{"prompt": "the extension keeps its index as one 40MB JSON blob rewritten in full on every change", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.65, "slice": "core", "lang": "en"}
{"prompt": "our react app has three date formatting helpers and the checkout uses a fourth one inline", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
{"prompt": "extension's activation events, which i suspect are why it shows up in every startup complaint:\n\n\"activationEvents\": [\"*\"],\n\"main\": \"./dist/extension.js\",\n\"contributes\": {\n \"commands\": [{ \"command\": \"lumen.goToSymbol\", \"title\": \"Lumen: Go to Symbol\" }],\n \"configuration\": {\n \"properties\": {\n \"lumen.indexOnSave\": { \"type\": \"boolean\", \"default\": true },\n \"lumen.excludeGlobs\": { \"type\": \"array\", \"default\": [] }\n }\n }\n}\n\nactivate() builds the whole index synchronously before returning, and the index is 40MB of JSON on a big repo", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "pasted-context", "lang": "en"}
{"prompt": "a colleague's PR for the search results page, and i can't decide whether the memoisation is helping:\n\n@@ -22,10 +22,26 @@ export function ResultsList({ results, filters }: Props) {\n- const visible = results.filter(r => matches(r, filters)).sort(byPrice)\n+ const visible = useMemo(\n+ () => results.filter(r => matches(r, filters)).sort(byPrice),\n+ [results, filters]\n+ )\n+ const rowRenderer = useCallback(\n+ (r: Result) =>