diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/README.md b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/README.md new file mode 100644 index 0000000..5c0f37b --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/README.md @@ -0,0 +1,40 @@ +# pando SWE-PolyBench Verified Submission + +This folder is prepared for the `AmazonScience/SWE-PolyBench_Verified` split. + +Split notes: +- This package targets the verified dataset, not the full `PB` or sampled `PB500` datasets. +- The live `AmazonScience/SWE-PolyBench_Verified` dataset page shows `382` rows in the `test` split. +- The language counts shown on that page are JavaScript `100`, TypeScript `100`, Python `113`, and Java `69`, which also sum to `382`. +- The dataset card text also mentions `394` verified instances, but that conflicts with both the displayed split size and the per-language counts. This submission therefore uses `382` as the operative verified-set size. + +Model: +- `gpt-5.2-codex` + +Contents: +- `all_preds.jsonl`: 382 verified-set entries +- `logs/`: 100 TypeScript evaluation result files for the verified TS subset +- `trajs/`: 100 reasoning traces for the verified TS subset +- `metadata.yaml`: leaderboard metadata + +Submission composition: +- Non-empty predictions are included only for the 100 verified TypeScript tasks. +- All non-TypeScript verified tasks are present in `all_preds.jsonl` with empty patches. +- The TypeScript prediction source of truth is `vscode_ts_series_run/predictions_pbv_ts.jsonl`. +- Those 100 predictions exactly match the verified TypeScript task IDs. +- For the 7 rerun instances in `ts_pbv_retry_run/`, the retry trajectories are preferred in `trajs/`. + +Layout note: +- The public SWE-PolyBench submission README documents `evaluation/PB` and `evaluation/PB500`, but does not currently document a verified-specific submission path. +- This folder uses `evaluation/PBVerified/...` to keep the verified submission separate from the full-benchmark `PB` package. + +Pass rates: +- Overall verified submission rate with empty non-TypeScript patches: `12.30% (47/382)` +- TypeScript-only verified rate: `47.00% (47/100)` +- `metadata.yaml` uses the evaluated TypeScript subset rate, following the convention used by partial verified submissions already present on the `submission` branch. + +Source artifacts used: +- `vscode_ts_series_run/predictions_pbv_ts.jsonl` +- `vscode_ts_series_run/eval/*_result.json` +- `vscode_ts_series_run/worker-*/logs/*.events.jsonl` +- `ts_pbv_retry_run/logs/*.events.jsonl` diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/all_preds.jsonl b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/all_preds.jsonl new file mode 100644 index 0000000..28d6ab3 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/all_preds.jsonl @@ -0,0 +1,382 @@ +{"instance_id": "google__gson-2337", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2498", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7563", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2376", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-3317", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apolloconfig__apollo-4568", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apolloconfig__apollo-4207", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2410", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2134", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2475", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-3855", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-1904", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2071", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2435", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-1703", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2345", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2060", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2479", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-3093", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__guava-3971", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-3622", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2167", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2701", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apolloconfig__apollo-1894", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7532", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2158", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__guava-5696", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-8623", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2549", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-1989", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apolloconfig__apollo-4464", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7655", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "google__gson-2420", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-5783", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-4515", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7346", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-5356", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-8126", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-5841", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7964", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7426", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-8414", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7823", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-5633", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-6498", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-5062", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7420", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7745", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-516", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-4122", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-7712", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-4567", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-1636", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-5008", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-4678", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-5708", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__rocketmq-5037", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "apache__dubbo-4026", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-2707", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-4393", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-3208", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-2081", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-3603", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-3859", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-1512", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-2768", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-3392", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-2575", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "trinodb__trino-3599", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mrdoob__three.js-14836", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mrdoob__three.js-18648", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mrdoob__three.js-20991", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mrdoob__three.js-24461", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-464", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-477", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-510", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-630", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-728", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-738", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-906", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-907", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1049", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1095", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1116", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1137", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1190", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1227", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1231", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1310", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1376", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1923", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-1932", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-2185", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3151", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3305", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3314", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3394", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3403", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3435", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3451", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3702", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3749", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-3949", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-4146", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-4288", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-4332", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-4454", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-4558", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-5452", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-5616", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-5850", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-5875", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-6414", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-6458", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-6525", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-6564", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-6759", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-6941", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "sveltejs__svelte-7422", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-14400", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-12930", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-11637", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-11000", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-9850", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-8777", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-8046", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-6604", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-5025", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-4667", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-3723", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-3515", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-3436", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-666", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-661", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-459", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "prettier__prettier-361", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-8159", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-7617", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-7587", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-7374", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-7277", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-7102", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6987", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6869", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6842", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6827", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6534", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6447", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6366", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-6261", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-5860", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-5842", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-5775", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-5640", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-5571", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-4192", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-3804", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-3799", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-3534", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-3457", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-3187", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-3095", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-2952", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-2945", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-2842", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-2576", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-2434", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-2014", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "serverless__serverless-1910", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-106767", "model_patch": "diff --git a/src/vs/editor/contrib/suggest/completionModel.ts b/src/vs/editor/contrib/suggest/completionModel.ts\nindex 8926c628e4..2f749d8708 100644\n--- a/src/vs/editor/contrib/suggest/completionModel.ts\n+++ b/src/vs/editor/contrib/suggest/completionModel.ts\n@@ -104,6 +104,14 @@ export class CompletionModel {\n \t\treturn this._isIncomplete!;\n \t}\n \n+\tget providers(): Set {\n+\t\tconst result = new Set();\n+\t\tfor (const item of this._items) {\n+\t\t\tresult.add(item.provider);\n+\t\t}\n+\t\treturn result;\n+\t}\n+\n \tadopt(except: Set): CompletionItem[] {\n \t\tlet res: CompletionItem[] = [];\n \t\tfor (let i = 0; i < this._items.length;) {\ndiff --git a/src/vs/editor/contrib/suggest/suggestModel.ts b/src/vs/editor/contrib/suggest/suggestModel.ts\nindex bb4f269ece..2ef649c5b5 100644\n--- a/src/vs/editor/contrib/suggest/suggestModel.ts\n+++ b/src/vs/editor/contrib/suggest/suggestModel.ts\n@@ -556,13 +556,28 @@ export class SuggestModel implements IDisposable {\n \t\t\treturn;\n \t\t}\n \n+\t\tconst model = this._editor.getModel();\n+\t\tif (!model) {\n+\t\t\treturn;\n+\t\t}\n+\n \t\tif (ctx.leadingWord.word.length !== 0 && ctx.leadingWord.startColumn > this._context.leadingWord.startColumn) {\n \t\t\t// started a new word while IntelliSense shows -> retrigger\n-\t\t\tthis.trigger({ auto: this._context.auto, shy: false }, true);\n-\t\t\treturn;\n+\t\t\tconst providersWithResults = this._completionModel.providers;\n+\t\t\tconst providersToRequest = new Set();\n+\t\t\tfor (const provider of CompletionProviderRegistry.all(model)) {\n+\t\t\t\tif (!providersWithResults.has(provider)) {\n+\t\t\t\t\tprovidersToRequest.add(provider);\n+\t\t\t\t}\n+\t\t\t}\n+\t\t\tif (providersToRequest.size > 0) {\n+\t\t\t\tconst adopted = this._completionModel.adopt(providersToRequest);\n+\t\t\t\tthis.trigger({ auto: this._context.auto, shy: false }, true, providersToRequest, adopted);\n+\t\t\t\treturn;\n+\t\t\t}\n \t\t}\n \n-\t\tif (ctx.column > this._context.column && this._completionModel.incomplete.size > 0 && ctx.leadingWord.word.length !== 0) {\n+\t\tif (ctx.column > this._context.column && this._completionModel.incomplete.size > 0 && ctx.leadingWord.word.length !== 0 && ctx.leadingWord.startColumn === this._context.leadingWord.startColumn) {\n \t\t\t// typed -> moved cursor RIGHT & incomple model & still on a word -> retrigger\n \t\t\tconst { incomplete } = this._completionModel;\n \t\t\tconst adopted = this._completionModel.adopt(incomplete);\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-108964", "model_patch": "diff --git a/src/vs/editor/contrib/snippet/snippetSession.ts b/src/vs/editor/contrib/snippet/snippetSession.ts\nindex 7f91f83..1f3e726 100644\n--- a/src/vs/editor/contrib/snippet/snippetSession.ts\n+++ b/src/vs/editor/contrib/snippet/snippetSession.ts\n@@ -114,7 +114,7 @@ export class OneSnippet {\n \t\t\t\t\tconst range = this._editor.getModel().getDecorationRange(id)!;\n \t\t\t\t\tconst currentValue = this._editor.getModel().getValueInRange(range);\n \n-\t\t\t\t\toperations.push(EditOperation.replaceMove(range, placeholder.transform.resolve(currentValue)));\n+\t\t\t\t\toperations.push(EditOperation.replace(range, placeholder.transform.resolve(currentValue)));\n \t\t\t\t}\n \t\t\t}\n \t\t\tif (operations.length > 0) {\n@@ -178,6 +178,7 @@ export class OneSnippet {\n \t\t});\n \n \t\treturn !couldSkipThisPlaceholder ? newSelections ?? [] : this.move(fwd);\n+\t\n \t}\n \n \tprivate _hasPlaceholderBeenCollapsed(placeholder: Placeholder): boolean {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-109750", "model_patch": "diff --git a/src/vs/platform/configuration/common/configurationRegistry.ts b/src/vs/platform/configuration/common/configurationRegistry.ts\nindex fceaa0a..54d3bb8 100644\n--- a/src/vs/platform/configuration/common/configurationRegistry.ts\n+++ b/src/vs/platform/configuration/common/configurationRegistry.ts\n@@ -8,6 +8,7 @@ import { Event, Emitter } from 'vs/base/common/event';\n import { IJSONSchema } from 'vs/base/common/jsonSchema';\n import { Registry } from 'vs/platform/registry/common/platform';\n import * as types from 'vs/base/common/types';\n+import { deepClone, mixin } from 'vs/base/common/objects';\n import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry';\n import { IStringDictionary } from 'vs/base/common/collections';\n \n@@ -227,9 +228,16 @@ class ConfigurationRegistry implements IConfigurationRegistry {\n \t\tfor (const defaultConfiguration of defaultConfigurations) {\n \t\t\tfor (const key in defaultConfiguration) {\n \t\t\t\tproperties.push(key);\n-\t\t\t\tthis.defaultValues[key] = defaultConfiguration[key];\n \n+\t\t\t\tconst value = defaultConfiguration[key];\n \t\t\t\tif (OVERRIDE_PROPERTY_PATTERN.test(key)) {\n+\t\t\t\t\tconst existing = this.defaultValues[key];\n+\t\t\t\t\tif (types.isObject(existing) && types.isObject(value)) {\n+\t\t\t\t\t\tthis.defaultValues[key] = mixin(deepClone(existing), value, true);\n+\t\t\t\t\t} else {\n+\t\t\t\t\t\tthis.defaultValues[key] = value;\n+\t\t\t\t\t}\n+\n \t\t\t\t\tconst property: IConfigurationPropertySchema = {\n \t\t\t\t\t\ttype: 'object',\n \t\t\t\t\t\tdefault: this.defaultValues[key],\n@@ -240,6 +248,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {\n \t\t\t\t\tthis.configurationProperties[key] = property;\n \t\t\t\t\tthis.defaultLanguageConfigurationOverridesNode.properties![key] = property;\n \t\t\t\t} else {\n+\t\t\t\t\tthis.defaultValues[key] = value;\n \t\t\t\t\tconst property = this.configurationProperties[key];\n \t\t\t\t\tif (property) {\n \t\t\t\t\t\tthis.updatePropertyDefaultValue(key, property);\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-110094", "model_patch": "diff --git a/src/vs/editor/common/controller/cursorTypeOperations.ts b/src/vs/editor/common/controller/cursorTypeOperations.ts\nindex cf538a8..fa2609c 100644\n--- a/src/vs/editor/common/controller/cursorTypeOperations.ts\n+++ b/src/vs/editor/common/controller/cursorTypeOperations.ts\n@@ -503,6 +503,19 @@ export class TypeOperations {\n \t\treturn (open.indexOf(close) >= 0 || close.indexOf(open) >= 0);\n \t}\n \n+\tprivate static _getAutoClosingPairCloseOverlap(close: string, textAfter: string): number {\n+\t\tif (!close || !textAfter) {\n+\t\t\treturn 0;\n+\t\t}\n+\t\tconst maxOverlap = Math.min(close.length, textAfter.length);\n+\t\tfor (let i = maxOverlap; i > 0; i--) {\n+\t\t\tif (strings.startsWith(textAfter, close.slice(close.length - i))) {\n+\t\t\t\treturn i;\n+\t\t\t}\n+\t\t}\n+\t\treturn 0;\n+\t}\n+\n \tprivate static _isBeforeClosingBrace(config: CursorConfiguration, autoClosingPair: StandardAutoClosingPairConditional, characterAfter: string) {\n \t\tconst otherAutoClosingPairs = config.autoClosingPairsClose2.get(characterAfter);\n \t\tif (!otherAutoClosingPairs) {\n@@ -548,7 +561,7 @@ export class TypeOperations {\n \t\treturn autoClosingPair;\n \t}\n \n-\tprivate static _isAutoClosingOpenCharType(config: CursorConfiguration, model: ITextModel, selections: Selection[], ch: string, insertOpenCharacter: boolean): StandardAutoClosingPairConditional | null {\n+\tprivate static _isAutoClosingOpenCharType(config: CursorConfiguration, model: ITextModel, selections: Selection[], ch: string, insertOpenCharacter: boolean): { autoClosingPair: StandardAutoClosingPairConditional; closeCharacter: string } | null {\n \t\tconst chIsQuote = isQuote(ch);\n \t\tconst autoCloseConfig = chIsQuote ? config.autoClosingQuotes : config.autoClosingBrackets;\n \t\tif (autoCloseConfig === 'never') {\n@@ -562,6 +575,8 @@ export class TypeOperations {\n \n \t\tconst shouldAutoCloseBefore = chIsQuote ? config.shouldAutoCloseBefore.quote : config.shouldAutoCloseBefore.bracket;\n \n+\t\tlet closeCharacterToInsert: string | null = null;\n+\n \t\tfor (let i = 0, len = selections.length; i < len; i++) {\n \t\t\tconst selection = selections[i];\n \t\t\tif (!selection.isEmpty()) {\n@@ -610,16 +625,29 @@ export class TypeOperations {\n \t\t\tif (!shouldAutoClosePair) {\n \t\t\t\treturn null;\n \t\t\t}\n+\n+\t\t\tconst textAfter = lineText.substring(position.column - 1);\n+\t\t\tconst overlap = TypeOperations._getAutoClosingPairCloseOverlap(autoClosingPair.close, textAfter);\n+\t\t\tconst closeCharacter = autoClosingPair.close.substring(0, autoClosingPair.close.length - overlap);\n+\t\t\tif (closeCharacterToInsert === null) {\n+\t\t\t\tcloseCharacterToInsert = closeCharacter;\n+\t\t\t} else if (closeCharacterToInsert !== closeCharacter) {\n+\t\t\t\treturn null;\n+\t\t\t}\n \t\t}\n \n-\t\treturn autoClosingPair;\n+\t\tif (!closeCharacterToInsert || closeCharacterToInsert.length === 0) {\n+\t\t\treturn null;\n+\t\t}\n+\n+\t\treturn { autoClosingPair, closeCharacter: closeCharacterToInsert };\n \t}\n \n-\tprivate static _runAutoClosingOpenCharType(prevEditOperationType: EditOperationType, config: CursorConfiguration, model: ITextModel, selections: Selection[], ch: string, insertOpenCharacter: boolean, autoClosingPair: StandardAutoClosingPairConditional): EditOperationResult {\n+\tprivate static _runAutoClosingOpenCharType(prevEditOperationType: EditOperationType, config: CursorConfiguration, model: ITextModel, selections: Selection[], ch: string, insertOpenCharacter: boolean, autoClosingPair: StandardAutoClosingPairConditional, closeCharacter: string): EditOperationResult {\n \t\tlet commands: ICommand[] = [];\n \t\tfor (let i = 0, len = selections.length; i < len; i++) {\n \t\t\tconst selection = selections[i];\n-\t\t\tcommands[i] = new TypeWithAutoClosingCommand(selection, ch, insertOpenCharacter, autoClosingPair.close);\n+\t\t\tcommands[i] = new TypeWithAutoClosingCommand(selection, ch, insertOpenCharacter, closeCharacter);\n \t\t}\n \t\treturn new EditOperationResult(EditOperationType.Typing, commands, {\n \t\t\tshouldPushStackElementBefore: true,\n@@ -796,7 +824,7 @@ export class TypeOperations {\n \n \t\tconst autoClosingPairOpenCharType = this._isAutoClosingOpenCharType(config, model, selections, ch, false);\n \t\tif (autoClosingPairOpenCharType) {\n-\t\t\treturn this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, false, autoClosingPairOpenCharType);\n+\t\t\treturn this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, false, autoClosingPairOpenCharType.autoClosingPair, autoClosingPairOpenCharType.closeCharacter);\n \t\t}\n \n \t\treturn null;\n@@ -840,7 +868,7 @@ export class TypeOperations {\n \t\tif (!isDoingComposition) {\n \t\t\tconst autoClosingPairOpenCharType = this._isAutoClosingOpenCharType(config, model, selections, ch, true);\n \t\t\tif (autoClosingPairOpenCharType) {\n-\t\t\t\treturn this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, true, autoClosingPairOpenCharType);\n+\t\t\t\treturn this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, true, autoClosingPairOpenCharType.autoClosingPair, autoClosingPairOpenCharType.closeCharacter);\n \t\t\t}\n \t\t}\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-113837", "model_patch": "diff --git a/src/vs/base/common/filters.ts b/src/vs/base/common/filters.ts\nindex adff0517..c3c7ed78 100644\n--- a/src/vs/base/common/filters.ts\n+++ b/src/vs/base/common/filters.ts\n@@ -461,13 +461,11 @@ function printTables(pattern: string, patternStart: number, word: string, wordSt\n \tconsole.log(printTable(_table, pattern, pattern.length, word, word.length));\n \tconsole.log(printTable(_arrows, pattern, pattern.length, word, word.length));\n \tconsole.log(printTable(_scores, pattern, pattern.length, word, word.length));\n-}\n-\n-function isSeparatorAtPos(value: string, index: number): boolean {\n+} function isSeparatorAtPos(value: string, index: number): boolean {\n \tif (index < 0 || index >= value.length) {\n \t\treturn false;\n \t}\n-\tconst code = value.charCodeAt(index);\n+\tlet code = value.charCodeAt(index);\n \tswitch (code) {\n \t\tcase CharCode.Underline:\n \t\tcase CharCode.Dash:\n@@ -481,8 +479,17 @@ function isSeparatorAtPos(value: string, index: number): boolean {\n \t\tcase CharCode.DollarSign:\n \t\t\treturn true;\n \t\tdefault:\n-\t\t\treturn false;\n+\t\t\tbreak;\n+\t}\n+\tif (code < 0x80) {\n+\t\treturn false;\n+\t}\n+\tif (strings.isLowSurrogate(code) && index > 0 && strings.isHighSurrogate(value.charCodeAt(index - 1))) {\n+\t\tindex -= 1;\n+\t\tcode = value.charCodeAt(index);\n \t}\n+\tconst end = index + strings.nextCharLength(value, index);\n+\treturn strings.containsEmoji(value.slice(index, end));\n }\n \n function isWhitespaceAtPos(value: string, index: number): boolean {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-122991", "model_patch": "diff --git a/src/vs/editor/common/controller/cursorDeleteOperations.ts b/src/vs/editor/common/controller/cursorDeleteOperations.ts\nindex 6854a4e6386..4c175acad86 100644\n--- a/src/vs/editor/common/controller/cursorDeleteOperations.ts\n+++ b/src/vs/editor/common/controller/cursorDeleteOperations.ts\n@@ -194,9 +194,47 @@ export class DeleteOperations {\n \t\t\t}\n \t\t}\n \n+\t\tconst emojiDeleteRange = DeleteOperations.getEmojiDeleteRange(position, model);\n+\t\tif (emojiDeleteRange) {\n+\t\t\treturn emojiDeleteRange;\n+\t\t}\n+\n \t\treturn Range.fromPositions(DeleteOperations.decreasePositionInModelBy1Column(position, model) || position, position);\n \t}\n \n+\tprivate static getEmojiDeleteRange(position: Position, model: ICursorSimpleModel): Range | undefined {\n+\t\tif (position.column <= 1) {\n+\t\t\treturn undefined;\n+\t\t}\n+\n+\t\tconst lineContent = model.getLineContent(position.lineNumber);\n+\t\tconst offset = position.column - 1;\n+\t\tconst charOffset = offset - 1;\n+\t\tconst [startOffset, endOffset] = strings.getCharContainingOffset(lineContent, charOffset);\n+\n+\t\tif (endOffset !== offset) {\n+\t\t\treturn undefined;\n+\t\t}\n+\n+\t\tif (!DeleteOperations.isEmojiGrapheme(lineContent, startOffset, endOffset)) {\n+\t\t\treturn undefined;\n+\t\t}\n+\n+\t\treturn new Range(position.lineNumber, startOffset + 1, position.lineNumber, position.column);\n+\t}\n+\n+\tprivate static isEmojiGrapheme(lineContent: string, startOffset: number, endOffset: number): boolean {\n+\t\tlet i = startOffset;\n+\t\twhile (i < endOffset) {\n+\t\t\tconst codePoint = strings.getNextCodePoint(lineContent, endOffset, i);\n+\t\t\tif (strings.isEmojiImprecise(codePoint) || codePoint === 0xFE0F || codePoint === 0x20E3) {\n+\t\t\t\treturn true;\n+\t\t\t}\n+\t\t\ti += (codePoint >= 0x10000 ? 2 : 1);\n+\t\t}\n+\t\treturn false;\n+\t}\n+\n \tprivate static decreasePositionInModelBy1Column(position: Position, model: ICursorSimpleModel): Position | undefined {\n \t\tif (position.column > 1) {\n \t\t\treturn position.delta(0, -1);\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-123294", "model_patch": "diff --git a/src/vs/editor/common/modes/linkComputer.ts b/src/vs/editor/common/modes/linkComputer.ts\nindex c0ca979f..4826ffc0 100644\n--- a/src/vs/editor/common/modes/linkComputer.ts\n+++ b/src/vs/editor/common/modes/linkComputer.ts\n@@ -154,7 +154,7 @@ function getClassifier(): CharacterClassifier {\n \tif (_classifier === null) {\n \t\t_classifier = new CharacterClassifier(CharacterClass.None);\n \n-\t\tconst FORCE_TERMINATION_CHARACTERS = ' \\t<>\\'\\\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u3011\u300f\u300d\u300b\u3009\u201d\u2019\uff40\uff5e\u2026';\n+\t\tconst FORCE_TERMINATION_CHARACTERS = ' \\t<>\\'\\\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u201c\u3008\u300a\u300c\u300e\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u300f\u300d\u300b\u3009\u201d\u2019\uff40\uff5e\u2026';\n \t\tfor (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {\n \t\t\t_classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), CharacterClass.ForceTermination);\n \t\t}\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-127071", "model_patch": "diff --git a/src/vs/base/browser/ui/tree/asyncDataTree.ts b/src/vs/base/browser/ui/tree/asyncDataTree.ts\nindex 4740d2c7..6fab859a 100644\n--- a/src/vs/base/browser/ui/tree/asyncDataTree.ts\n+++ b/src/vs/base/browser/ui/tree/asyncDataTree.ts\n@@ -874,7 +874,9 @@ export class AsyncDataTree implements IDisposable\n \t\t\t\tthis.nodes.set(element, asyncDataTreeNode);\n \n \t\t\t\tasyncDataTreeNode.element = element;\n+\t\t\t\tconst hadChildren = asyncDataTreeNode.hasChildren;\n \t\t\t\tasyncDataTreeNode.hasChildren = hasChildren;\n+\t\t\t\tconst shouldExpand = !hadChildren && hasChildren && this.collapseByDefault && !this.collapseByDefault(element);\n \n \t\t\t\tif (recursive) {\n \t\t\t\t\tif (result.collapsed) {\n@@ -884,6 +886,12 @@ export class AsyncDataTree implements IDisposable\n \t\t\t\t\t} else {\n \t\t\t\t\t\tchildrenToRefresh.push(asyncDataTreeNode);\n \t\t\t\t\t}\n+\t\t\t\t\tif (shouldExpand) {\n+\t\t\t\t\t\tasyncDataTreeNode.collapsedByDefault = false;\n+\t\t\t\t\t\tif (!childrenToRefresh.includes(asyncDataTreeNode)) {\n+\t\t\t\t\t\t\tchildrenToRefresh.push(asyncDataTreeNode);\n+\t\t\t\t\t\t}\n+\t\t\t\t\t}\n \t\t\t\t} else if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {\n \t\t\t\t\tasyncDataTreeNode.collapsedByDefault = false;\n \t\t\t\t\tchildrenToRefresh.push(asyncDataTreeNode);\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-132628", "model_patch": "diff --git a/src/vs/editor/contrib/inlineCompletions/ghostTextModel.ts b/src/vs/editor/contrib/inlineCompletions/ghostTextModel.ts\nindex b7dfab02..228b1384 100644\n--- a/src/vs/editor/contrib/inlineCompletions/ghostTextModel.ts\n+++ b/src/vs/editor/contrib/inlineCompletions/ghostTextModel.ts\n@@ -144,13 +144,15 @@ export class SharedInlineCompletionCache extends Disposable {\n \n \tpublic setValue(editor: IActiveCodeEditor,\n \t\tcompletionsSource: LiveInlineCompletions,\n-\t\ttriggerKind: InlineCompletionTriggerKind\n+\t\ttriggerKind: InlineCompletionTriggerKind,\n+\t\tposition: Position\n \t) {\n \t\tthis.cache.value = new SynchronizedInlineCompletionsCache(\n \t\t\teditor,\n \t\t\tcompletionsSource,\n \t\t\t() => this.onDidChangeEmitter.fire(),\n-\t\t\ttriggerKind\n+\t\t\ttriggerKind,\n+\t\t\tposition.lineNumber\n \t\t);\n \t}\n \ndiff --git a/src/vs/editor/contrib/inlineCompletions/inlineCompletionsModel.ts b/src/vs/editor/contrib/inlineCompletions/inlineCompletionsModel.ts\nindex cdccdbda..97bee5e7 100644\n--- a/src/vs/editor/contrib/inlineCompletions/inlineCompletionsModel.ts\n+++ b/src/vs/editor/contrib/inlineCompletions/inlineCompletionsModel.ts\n@@ -245,7 +245,7 @@ export class InlineCompletionsSession extends BaseGhostTextWidgetModel {\n \t}\n \n \tprivate get currentCachedCompletion(): CachedInlineCompletion | undefined {\n-\t\tif (!this.cache.value) {\n+\t\tif (!this.cache.value || this.cache.value.lineNumber !== this.triggerPosition.lineNumber) {\n \t\t\treturn undefined;\n \t\t}\n \t\treturn this.cache.value.completions[this.fixAndGetIndexOfCurrentSelection()];\n@@ -350,7 +350,8 @@ export class InlineCompletionsSession extends BaseGhostTextWidgetModel {\n \t\t\tthis.cache.setValue(\n \t\t\t\tthis.editor,\n \t\t\t\tresult,\n-\t\t\t\ttriggerKind\n+\t\t\t\ttriggerKind,\n+\t\t\t\tposition\n \t\t\t);\n \t\t\tthis.onDidChangeEmitter.fire();\n \t\t});\n@@ -425,6 +426,7 @@ export class SynchronizedInlineCompletionsCache extends Disposable {\n \t\tcompletionsSource: LiveInlineCompletions,\n \t\tonChange: () => void,\n \t\tpublic readonly triggerKind: InlineCompletionTriggerKind,\n+\t\tpublic readonly lineNumber: number,\n \t) {\n \t\tsuper();\n \ndiff --git a/src/vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel.ts b/src/vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel.ts\nindex c28fe133..79f5952c 100644\n--- a/src/vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel.ts\n+++ b/src/vs/editor/contrib/inlineCompletions/suggestWidgetPreviewModel.ts\n@@ -106,7 +106,8 @@ export class SuggestWidgetPreviewModel extends BaseGhostTextWidgetModel {\n \t\t\tthis.cache.setValue(\n \t\t\t\tthis.editor,\n \t\t\t\tresult,\n-\t\t\t\tInlineCompletionTriggerKind.Automatic\n+\t\t\t\tInlineCompletionTriggerKind.Automatic,\n+\t\t\t\tposition\n \t\t\t);\n \t\t\tthis.onDidChangeEmitter.fire();\n \t\t});\n@@ -122,7 +123,11 @@ export class SuggestWidgetPreviewModel extends BaseGhostTextWidgetModel {\n \t\tconst suggestWidgetState = this.suggestionInlineCompletionSource.state;\n \n \t\tconst originalInlineCompletion = minimizeInlineCompletion(this.editor.getModel()!, suggestWidgetState?.selectedItemAsInlineCompletion);\n-\t\tconst augmentedCompletion = minimizeInlineCompletion(this.editor.getModel()!, this.cache.value?.completions[0]?.toLiveInlineCompletion());\n+\t\tconst cacheValue = this.cache.value;\n+\t\tconst augmentedCompletion = minimizeInlineCompletion(\n+\t\t\tthis.editor.getModel()!,\n+\t\t\tcacheValue && cacheValue.lineNumber === this.editor.getPosition().lineNumber ? cacheValue.completions[0]?.toLiveInlineCompletion() : undefined\n+\t\t);\n \n \t\tconst finalCompletion =\n \t\t\taugmentedCompletion\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-135197", "model_patch": "diff --git a/src/vs/editor/common/controller/cursorTypeOperations.ts b/src/vs/editor/common/controller/cursorTypeOperations.ts\nindex 3f2e81ed..cdd65564 100644\n--- a/src/vs/editor/common/controller/cursorTypeOperations.ts\n+++ b/src/vs/editor/common/controller/cursorTypeOperations.ts\n@@ -598,7 +598,8 @@ export class TypeOperations {\n \t\t\t}\n \n \t\t\t// Do not auto-close ' or \" after a word character\n-\t\t\tif (autoClosingPair.open.length === 1 && chIsQuote && autoCloseConfig !== 'always') {\n+\t\t\t// Backticks can start template literals after identifiers (e.g. tagged templates).\n+\t\t\tif (autoClosingPair.open.length === 1 && chIsQuote && autoCloseConfig !== 'always' && ch !== '`') {\n \t\t\t\tconst wordSeparators = getMapForWordSeparators(config.wordSeparators);\n \t\t\t\tif (insertOpenCharacter && position.column > 1 && wordSeparators.get(lineText.charCodeAt(position.column - 2)) === WordCharacterClass.Regular) {\n \t\t\t\t\treturn null;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-135805", "model_patch": "diff --git a/src/vs/editor/contrib/multicursor/multicursor.ts b/src/vs/editor/contrib/multicursor/multicursor.ts\nindex 3d6e2187..f02a7b32 100644\n--- a/src/vs/editor/contrib/multicursor/multicursor.ts\n+++ b/src/vs/editor/contrib/multicursor/multicursor.ts\n@@ -70,7 +70,7 @@ export class InsertCursorAbove extends EditorAction {\n \t\t\treturn;\n \t\t}\n \n-\t\tconst useLogicalLine = (args && args.logicalLine === true);\n+\t\tconst useLogicalLine = !(args && args.logicalLine === false);\n \t\tconst viewModel = editor._getViewModel();\n \n \t\tif (viewModel.cursorConfig.readOnly) {\n@@ -120,7 +120,7 @@ export class InsertCursorBelow extends EditorAction {\n \t\t\treturn;\n \t\t}\n \n-\t\tconst useLogicalLine = (args && args.logicalLine === true);\n+\t\tconst useLogicalLine = !(args && args.logicalLine === false);\n \t\tconst viewModel = editor._getViewModel();\n \n \t\tif (viewModel.cursorConfig.readOnly) {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-136347", "model_patch": "diff --git a/src/vs/editor/common/viewLayout/viewLineRenderer.ts b/src/vs/editor/common/viewLayout/viewLineRenderer.ts\nindex 6c070c5af72..0220c5f7a70 100644\n--- a/src/vs/editor/common/viewLayout/viewLineRenderer.ts\n+++ b/src/vs/editor/common/viewLayout/viewLineRenderer.ts\n@@ -831,6 +831,30 @@ function _applyInlineDecorations(lineContent: string, len: number, tokens: LineP\n \treturn result;\n }\n \n+function isUnicodeControlCharacter(charCode: number): boolean {\n+\t// C0 + C1 control characters (Cc)\n+\tif (charCode < 0x20 || (charCode >= 0x7F && charCode <= 0x9F)) {\n+\t\treturn true;\n+\t}\n+\n+\t// Format characters (Cf) - BMP coverage.\n+\treturn (\n+\t\tcharCode === 0x00AD\n+\t\t|| (charCode >= 0x0600 && charCode <= 0x0605)\n+\t\t|| charCode === 0x061C\n+\t\t|| charCode === 0x06DD\n+\t\t|| charCode === 0x070F\n+\t\t|| (charCode >= 0x0890 && charCode <= 0x0891)\n+\t\t|| charCode === 0x08E2\n+\t\t|| charCode === 0x180E\n+\t\t|| (charCode >= 0x200B && charCode <= 0x200F)\n+\t\t|| (charCode >= 0x202A && charCode <= 0x202E)\n+\t\t|| (charCode >= 0x2060 && charCode <= 0x206F)\n+\t\t|| charCode === 0xFEFF\n+\t\t|| (charCode >= 0xFFF9 && charCode <= 0xFFFB)\n+\t);\n+}\n+\n /**\n * This function is on purpose not split up into multiple functions to allow runtime type inference (i.e. performance reasons).\n * Notice how all the needed data is fully resolved and passed in (i.e. no other calls).\n@@ -1000,11 +1024,16 @@ function _renderLine(input: ResolvedRenderLineInput, sb: IStringBuilder): Render\n \t\t\t\t\t\t\tcharWidth++;\n \t\t\t\t\t\t}\n \t\t\t\t\t\t// See https://unicode-table.com/en/blocks/control-pictures/\n-\t\t\t\t\t\tif (renderControlCharacters && charCode < 32) {\n-\t\t\t\t\t\t\tsb.write1(9216 + charCode);\n-\t\t\t\t\t\t} else if (renderControlCharacters && charCode === 127) {\n-\t\t\t\t\t\t\t// DEL\n-\t\t\t\t\t\t\tsb.write1(9249);\n+\t\t\t\t\t\tif (renderControlCharacters && isUnicodeControlCharacter(charCode)) {\n+\t\t\t\t\t\t\tif (charCode < 32) {\n+\t\t\t\t\t\t\t\tsb.write1(9216 + charCode);\n+\t\t\t\t\t\t\t} else if (charCode === 127) {\n+\t\t\t\t\t\t\t\t// DEL\n+\t\t\t\t\t\t\t\tsb.write1(9249);\n+\t\t\t\t\t\t\t} else {\n+\t\t\t\t\t\t\t\t// Use the replacement character for non-ASCII control/format characters.\n+\t\t\t\t\t\t\t\tsb.write1(0xFFFD);\n+\t\t\t\t\t\t\t}\n \t\t\t\t\t\t} else {\n \t\t\t\t\t\t\tsb.write1(charCode);\n \t\t\t\t\t\t}\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-148971", "model_patch": "diff --git a/src/vs/base/browser/markdownRenderer.ts b/src/vs/base/browser/markdownRenderer.ts\nindex 72c25e77..41e0cb54 100644\n--- a/src/vs/base/browser/markdownRenderer.ts\n+++ b/src/vs/base/browser/markdownRenderer.ts\n@@ -199,6 +199,12 @@ export function renderMarkdown(markdown: IMarkdownString, options: MarkdownRende\n \t\t\t}\n \t\t\ttry {\n \t\t\t\tlet href = target.dataset['href'];\n+\t\t\t\tif (!href) {\n+\t\t\t\t\tconst rawHref = target.getAttribute('href');\n+\t\t\t\t\tif (rawHref) {\n+\t\t\t\t\t\thref = rawHref;\n+\t\t\t\t\t}\n+\t\t\t\t}\n \t\t\t\tif (href) {\n \t\t\t\t\tif (markdown.baseUri) {\n \t\t\t\t\t\thref = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-149380", "model_patch": "diff --git a/src/vs/workbench/contrib/debug/node/terminals.ts b/src/vs/workbench/contrib/debug/node/terminals.ts\nindex 5390b15a..32b5a78b 100644\n--- a/src/vs/workbench/contrib/debug/node/terminals.ts\n+++ b/src/vs/workbench/contrib/debug/node/terminals.ts\n@@ -157,8 +157,12 @@ export function prepareCommand(shell: string, args: string[], cwd?: string, env?\n \t\tcase ShellType.bash: {\n \n \t\t\tquote = (s: string) => {\n-\t\t\t\ts = s.replace(/([\"'\\\\\\$!><#()\\[\\]*&^|])/g, '\\\\$1');\n-\t\t\t\treturn (' ;'.split('').some(char => s.includes(char)) || s.length === 0) ? `\"${s}\"` : s;\n+\t\t\t\tconst needsQuotes = (' ;'.split('').some(char => s.includes(char)) || s.length === 0);\n+\t\t\t\tif (needsQuotes) {\n+\t\t\t\t\tconst escaped = s.replace(/([\"\\\\$`!])/g, '\\\\$1');\n+\t\t\t\t\treturn `\"${escaped}\"`;\n+\t\t\t\t}\n+\t\t\t\treturn s.replace(/([\"'\\\\\\$!><#()\\[\\]*&^|])/g, '\\\\$1');\n \t\t\t};\n \n \t\t\tconst hardQuote = (s: string) => {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-153121", "model_patch": "diff --git a/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts b/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts\nindex f61919b4..8647457b 100644\n--- a/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts\n+++ b/src/vs/editor/common/viewModel/monospaceLineBreaksComputer.ts\n@@ -489,7 +489,7 @@ function canBreak(prevCharCode: number, prevCharCodeClass: CharacterClass, charC\n \treturn (\n \t\tcharCode !== CharCode.Space\n \t\t&& (\n-\t\t\t(prevCharCodeClass === CharacterClass.BREAK_AFTER)\n+\t\t\t(prevCharCodeClass === CharacterClass.BREAK_AFTER && charCodeClass !== CharacterClass.BREAK_AFTER)\n \t\t\t|| (prevCharCodeClass === CharacterClass.BREAK_IDEOGRAPHIC && charCodeClass !== CharacterClass.BREAK_AFTER)\n \t\t\t|| (charCodeClass === CharacterClass.BREAK_BEFORE)\n \t\t\t|| (charCodeClass === CharacterClass.BREAK_IDEOGRAPHIC && prevCharCodeClass !== CharacterClass.BREAK_BEFORE)\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-153857", "model_patch": "diff --git a/src/vs/editor/common/languages/linkComputer.ts b/src/vs/editor/common/languages/linkComputer.ts\nindex 0ee39a20229..29c34f22de5 100644\n--- a/src/vs/editor/common/languages/linkComputer.ts\n+++ b/src/vs/editor/common/languages/linkComputer.ts\n@@ -259,9 +259,24 @@ export class LinkComputer {\n \t\t\t\t\t\t\tchClass = (hasOpenCurlyBracket ? CharacterClass.None : CharacterClass.ForceTermination);\n \t\t\t\t\t\t\tbreak;\n \t\t\t\t\t\t/* The following three rules make it that ' or \" or ` are allowed inside links if the link began with a different one */\n-\t\t\t\t\t\tcase CharCode.SingleQuote:\n-\t\t\t\t\t\t\tchClass = (linkBeginChCode === CharCode.DoubleQuote || linkBeginChCode === CharCode.BackTick) ? CharacterClass.None : CharacterClass.ForceTermination;\n+\t\t\t\t\t\tcase CharCode.SingleQuote: {\n+\t\t\t\t\t\t\tif (linkBeginChCode === CharCode.SingleQuote) {\n+\t\t\t\t\t\t\t\tchClass = CharacterClass.ForceTermination;\n+\t\t\t\t\t\t\t\tbreak;\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\tif (j + 1 >= len) {\n+\t\t\t\t\t\t\t\tchClass = CharacterClass.ForceTermination;\n+\t\t\t\t\t\t\t\tbreak;\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\tconst nextChCode = line.charCodeAt(j + 1);\n+\t\t\t\t\t\t\tif (nextChCode === CharCode.CloseParen || nextChCode === CharCode.CloseSquareBracket || nextChCode === CharCode.CloseCurlyBrace) {\n+\t\t\t\t\t\t\t\tchClass = CharacterClass.ForceTermination;\n+\t\t\t\t\t\t\t\tbreak;\n+\t\t\t\t\t\t\t}\n+\t\t\t\t\t\t\tconst nextClass = classifier.get(nextChCode);\n+\t\t\t\t\t\t\tchClass = (nextClass === CharacterClass.ForceTermination || nextClass === CharacterClass.CannotEndIn) ? CharacterClass.ForceTermination : CharacterClass.None;\n \t\t\t\t\t\t\tbreak;\n+\t\t\t\t\t\t}\n \t\t\t\t\t\tcase CharCode.DoubleQuote:\n \t\t\t\t\t\t\tchClass = (linkBeginChCode === CharCode.SingleQuote || linkBeginChCode === CharCode.BackTick) ? CharacterClass.None : CharacterClass.ForceTermination;\n \t\t\t\t\t\t\tbreak;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-157682", "model_patch": "diff --git a/src/vs/editor/contrib/codeAction/browser/codeAction.ts b/src/vs/editor/contrib/codeAction/browser/codeAction.ts\nindex 009f7b05ca88..4e85862818be 100644\n--- a/src/vs/editor/contrib/codeAction/browser/codeAction.ts\n+++ b/src/vs/editor/contrib/codeAction/browser/codeAction.ts\n@@ -70,12 +70,24 @@ class ManagedCodeActionSet extends Disposable implements CodeActionSet {\n \t\t}\n \t}\n \n+\tprivate static isUpdateImportsAction(action: languages.CodeAction): boolean {\n+\t\tif (action.kind && action.kind.toLowerCase().includes('updateimports')) {\n+\t\t\treturn true;\n+\t\t}\n+\t\treturn typeof action.title === 'string' && /^update imports?\\b/i.test(action.title);\n+\t}\n+\n \tprivate static codeActionsComparator({ action: a }: CodeActionItem, { action: b }: CodeActionItem): number {\n \t\tif (isNonEmptyArray(a.diagnostics)) {\n \t\t\treturn -1;\n \t\t} else if (isNonEmptyArray(b.diagnostics)) {\n \t\t\treturn 1;\n \t\t} else {\n+\t\t\tconst aUpdateImports = ManagedCodeActionSet.isUpdateImportsAction(a);\n+\t\t\tconst bUpdateImports = ManagedCodeActionSet.isUpdateImportsAction(b);\n+\t\t\tif (aUpdateImports !== bUpdateImports) {\n+\t\t\t\treturn aUpdateImports ? -1 : 1;\n+\t\t\t}\n \t\t\treturn ManagedCodeActionSet.codeActionsPreferredComparator(a, b); // both have no diagnostics\n \t\t}\n \t}\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-160342", "model_patch": "diff --git a/src/vs/workbench/contrib/files/browser/views/explorerView.ts b/src/vs/workbench/contrib/files/browser/views/explorerView.ts\nindex 8aae1847..de92d16a 100644\n--- a/src/vs/workbench/contrib/files/browser/views/explorerView.ts\n+++ b/src/vs/workbench/contrib/files/browser/views/explorerView.ts\n@@ -130,15 +130,15 @@ export function getContext(focus: ExplorerItem[], selection: ExplorerItem[], res\n \t\t}\n \t}\n \tif (!focusedStat) {\n-\t\tif (respectMultiSelection) {\n+\t\treturn respectMultiSelection ? selectedStats : [];\n+\t}\n+\n+\tif (respectMultiSelection) {\n+\t\tif (selectedStats.length > 0) {\n \t\t\treturn selectedStats;\n-\t\t} else {\n-\t\t\treturn [];\n \t\t}\n-\t}\n \n-\tif (respectMultiSelection && selectedStats.indexOf(focusedStat) >= 0) {\n-\t\treturn selectedStats;\n+\t\treturn [focusedStat];\n \t}\n \n \treturn [focusedStat];\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-164396", "model_patch": "diff --git a/src/vs/editor/common/services/modelService.ts b/src/vs/editor/common/services/modelService.ts\nindex c03821b7..e00c5900 100644\n--- a/src/vs/editor/common/services/modelService.ts\n+++ b/src/vs/editor/common/services/modelService.ts\n@@ -769,6 +769,7 @@ export class ModelSemanticColoring extends Disposable {\n \tprivate readonly _fetchDocumentSemanticTokens: RunOnceScheduler;\n \tprivate _currentDocumentResponse: SemanticTokensResponse | null;\n \tprivate _currentDocumentRequestCancellationTokenSource: CancellationTokenSource | null;\n+\tprivate _requestInFlightReschedule: boolean;\n \tprivate _documentProvidersChangeListeners: IDisposable[];\n \n \tconstructor(\n@@ -788,6 +789,7 @@ export class ModelSemanticColoring extends Disposable {\n \t\tthis._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring.REQUEST_MIN_DELAY));\n \t\tthis._currentDocumentResponse = null;\n \t\tthis._currentDocumentRequestCancellationTokenSource = null;\n+\t\tthis._requestInFlightReschedule = false;\n \t\tthis._documentProvidersChangeListeners = [];\n \n \t\tthis._register(this._model.onDidChangeContent(() => {\n@@ -851,6 +853,7 @@ export class ModelSemanticColoring extends Disposable {\n \tprivate _fetchDocumentSemanticTokensNow(): void {\n \t\tif (this._currentDocumentRequestCancellationTokenSource) {\n \t\t\t// there is already a request running, let it finish...\n+\t\t\tthis._requestInFlightReschedule = true;\n \t\t\treturn;\n \t\t}\n \n@@ -875,6 +878,14 @@ export class ModelSemanticColoring extends Disposable {\n \t\t});\n \n \t\tconst sw = new StopWatch(false);\n+\t\tconst rescheduleAfterRequestIfNeeded = () => {\n+\t\t\tif (this._requestInFlightReschedule && !this._isDisposed) {\n+\t\t\t\tthis._requestInFlightReschedule = false;\n+\t\t\t\tif (!this._fetchDocumentSemanticTokens.isScheduled()) {\n+\t\t\t\t\tthis._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n+\t\t\t\t}\n+\t\t\t}\n+\t\t};\n \t\trequest.then((res) => {\n \t\t\tthis._debounceInformation.update(this._model, sw.elapsed());\n \t\t\tthis._currentDocumentRequestCancellationTokenSource = null;\n@@ -887,6 +898,7 @@ export class ModelSemanticColoring extends Disposable {\n \t\t\t\tconst styling = this._semanticStyling.get(provider);\n \t\t\t\tthis._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);\n \t\t\t}\n+\t\t\trescheduleAfterRequestIfNeeded();\n \t\t}, (err) => {\n \t\t\tconst isExpectedError = err && (errors.isCancellationError(err) || (typeof err.message === 'string' && err.message.indexOf('busy') !== -1));\n \t\t\tif (!isExpectedError) {\n@@ -904,6 +916,7 @@ export class ModelSemanticColoring extends Disposable {\n \t\t\t\t\tthis._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n \t\t\t\t}\n \t\t\t}\n+\t\t\trescheduleAfterRequestIfNeeded();\n \t\t});\n \t}\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-168752", "model_patch": "diff --git a/src/vs/editor/common/languages/linkComputer.ts b/src/vs/editor/common/languages/linkComputer.ts\nindex 52f4eaee2..98772d4d0 100644\n--- a/src/vs/editor/common/languages/linkComputer.ts\n+++ b/src/vs/editor/common/languages/linkComputer.ts\n@@ -155,7 +155,7 @@ function getClassifier(): CharacterClassifier {\n \t\t_classifier = new CharacterClassifier(CharacterClass.None);\n \n \t\t// allow-any-unicode-next-line\n-\t\tconst FORCE_TERMINATION_CHARACTERS = ' \\t<>\\'\\\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u3008\u300c\u300e\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u300f\u300d\u3009\u2019\uff40\uff5e\u2026';\n+\t\tconst FORCE_TERMINATION_CHARACTERS = ' \\t,<>\\'\\\"\u3001\u3002\uff61\uff64\uff0c\uff0e\uff1a\uff1b\u2018\u3008\u300c\u300e\u3014\uff08\uff3b\uff5b\uff62\uff63\uff5d\uff3d\uff09\u3015\u300f\u300d\u3009\u2019\uff40\uff5e\u2026';\n \t\tfor (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {\n \t\t\t_classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), CharacterClass.ForceTermination);\n \t\t}\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-173585", "model_patch": "diff --git a/src/vs/base/common/keybindings.ts b/src/vs/base/common/keybindings.ts\nindex 1ae95d0778dc..f3523709f9fa 100644\n--- a/src/vs/base/common/keybindings.ts\n+++ b/src/vs/base/common/keybindings.ts\n@@ -94,7 +94,7 @@ export class KeyCodeChord implements Modifiers {\n \t\tconst shift = this.shiftKey ? '1' : '0';\n \t\tconst alt = this.altKey ? '1' : '0';\n \t\tconst meta = this.metaKey ? '1' : '0';\n-\t\treturn `${ctrl}${shift}${alt}${meta}${this.keyCode}`;\n+\t\treturn `K${ctrl}${shift}${alt}${meta}${this.keyCode}`;\n \t}\n \n \tpublic isModifierKey(): boolean {\n@@ -154,7 +154,7 @@ export class ScanCodeChord implements Modifiers {\n \t\tconst shift = this.shiftKey ? '1' : '0';\n \t\tconst alt = this.altKey ? '1' : '0';\n \t\tconst meta = this.metaKey ? '1' : '0';\n-\t\treturn `${ctrl}${shift}${alt}${meta}${this.scanCode}`;\n+\t\treturn `S${ctrl}${shift}${alt}${meta}${this.scanCode}`;\n \t}\n \n \t/**\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-177084", "model_patch": "diff --git a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts\nindex 57dcd68c78a3..b14ac0c91c3d 100644\n--- a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts\n+++ b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalLinkParsing.ts\n@@ -205,7 +205,7 @@ export function toLinkSuffix(match: RegExpExecArray | null): ILinkSuffix | null\n }\n \n // Paths cannot start with opening brackets\n-const linkWithSuffixPathCharacters = /(?[^\\s\\[\\({][^\\s]*)$/;\n+const linkWithSuffixPathCharacters = /(?[^\\s\\[\\({|][^\\s|]*)$/;\n \n export function detectLinks(line: string, os: OperatingSystem) {\n \t// 1: Detect all links on line via suffixes first\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "microsoft__vscode-189223", "model_patch": "diff --git a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.ts b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.ts\nindex 1991ba84e..31a5fc5c3 100644\n--- a/src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.ts\n+++ b/src/vs/workbench/contrib/terminalContrib/links/browser/terminalWordLinkDetector.ts\n@@ -22,6 +22,9 @@ const enum Constants {\n \tMaxLineLength = 2000\n }\n \n+// Powerline glyphs live in the private use area and should never be part of a link.\n+const powerlineSeparatorPattern = '\\\\uE0A0-\\\\uE0D7';\n+\n interface Word {\n \tstartIndex: number;\n \tendIndex: number;\n@@ -127,6 +130,6 @@ export class TerminalWordLinkDetector extends Disposable implements ITerminalLin\n \n \tprivate _refreshSeparatorCodes(): void {\n \t\tconst separators = this._configurationService.getValue(TERMINAL_CONFIG_SECTION).wordSeparators;\n-\t\tthis._separatorRegex = new RegExp(`[${escapeRegExpCharacters(separators)}]`, 'g');\n+\t\tthis._separatorRegex = new RegExp(`[${escapeRegExpCharacters(separators)}${powerlineSeparatorPattern}]`, 'g');\n \t}\n }\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "angular__angular-37561", "model_patch": "diff --git a/packages/core/src/render3/di.ts b/packages/core/src/render3/di.ts\nindex 14a4066..30fb936 100644\n--- a/packages/core/src/render3/di.ts\n+++ b/packages/core/src/render3/di.ts\n@@ -657,16 +657,31 @@ export function \u0275\u0275getFactoryOf(type: Type): FactoryFn|null {\n */\n export function \u0275\u0275getInheritedFactory(type: Type): (type: Type) => T {\n return noSideEffects(() => {\n- const proto = Object.getPrototypeOf(type.prototype).constructor as Type;\n- const factory = (proto as any)[NG_FACTORY_DEF] || \u0275\u0275getFactoryOf(proto);\n- if (factory !== null) {\n- return factory;\n- } else {\n- // There is no factory defined. Either this was improper usage of inheritance\n- // (no Angular decorator on the superclass) or there is no constructor at all\n- // in the inheritance chain. Since the two cases cannot be distinguished, the\n- // latter has to be assumed.\n- return (t) => new t();\n+ let proto = Object.getPrototypeOf(type.prototype) as object | null;\n+\n+ while (proto) {\n+ const parent = (proto as any).constructor as Type | undefined;\n+\n+ // Some decorators rewrite the prototype/constructor relationship which can cause\n+ // the parent constructor to point back to the current type. Skip such self-references\n+ // to avoid infinite recursion when looking up the inherited factory.\n+ if (!parent || parent === type) {\n+ proto = Object.getPrototypeOf(proto);\n+ continue;\n+ }\n+\n+ const factory = (parent as any)[NG_FACTORY_DEF] || \u0275\u0275getFactoryOf(parent);\n+ if (factory !== null) {\n+ return factory;\n+ }\n+\n+ proto = Object.getPrototypeOf(proto);\n }\n+\n+ // There is no factory defined. Either this was improper usage of inheritance\n+ // (no Angular decorator on the superclass) or there is no constructor at all\n+ // in the inheritance chain. Since the two cases cannot be distinguished, the\n+ // latter has to be assumed.\n+ return (t) => new t();\n });\n }\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-11451", "model_patch": "diff --git a/packages/material-ui/src/ListItem/ListItem.js b/packages/material-ui/src/ListItem/ListItem.js\nindex 9918957..b4c9b1e 100644\n--- a/packages/material-ui/src/ListItem/ListItem.js\n+++ b/packages/material-ui/src/ListItem/ListItem.js\n@@ -78,6 +78,7 @@ class ListItem extends React.Component {\n disabled,\n disableGutters,\n divider,\n+ focusVisibleClassName,\n ...other\n } = this.props;\n \n@@ -105,7 +106,10 @@ class ListItem extends React.Component {\n \n if (button) {\n componentProps.component = componentProp || 'div';\n- componentProps.focusVisibleClassName = classes.focusVisible;\n+ componentProps.focusVisibleClassName = classNames(\n+ classes.focusVisible,\n+ focusVisibleClassName,\n+ );\n Component = ButtonBase;\n }\n \n@@ -155,6 +159,10 @@ ListItem.propTypes = {\n * @ignore\n */\n className: PropTypes.string,\n+ /**\n+ * @ignore\n+ */\n+ focusVisibleClassName: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-11858", "model_patch": "diff --git a/packages/material-ui/src/ListItemText/ListItemText.d.ts b/packages/material-ui/src/ListItemText/ListItemText.d.ts\nindex c52c1d3..fdf4794 100644\n--- a/packages/material-ui/src/ListItemText/ListItemText.d.ts\n+++ b/packages/material-ui/src/ListItemText/ListItemText.d.ts\n@@ -1,12 +1,15 @@\n import * as React from 'react';\n import { StandardProps } from '..';\n+import { TypographyProps } from '../Typography';\n \n export interface ListItemTextProps\n extends StandardProps, ListItemTextClassKey> {\n disableTypography?: boolean;\n inset?: boolean;\n primary?: React.ReactNode;\n+ primaryTypographyProps?: Partial;\n secondary?: React.ReactNode;\n+ secondaryTypographyProps?: Partial;\n }\n \n export type ListItemTextClassKey =\ndiff --git a/packages/material-ui/src/ListItemText/ListItemText.js b/packages/material-ui/src/ListItemText/ListItemText.js\nindex a6a02f3..1c55531 100644\n--- a/packages/material-ui/src/ListItemText/ListItemText.js\n+++ b/packages/material-ui/src/ListItemText/ListItemText.js\n@@ -42,18 +42,24 @@ function ListItemText(props, context) {\n disableTypography,\n inset,\n primary: primaryProp,\n+ primaryTypographyProps = {},\n secondary: secondaryProp,\n+ secondaryTypographyProps = {},\n ...other\n } = props;\n const { dense } = context;\n+ const { className: primaryClassName, ...primaryTypographyPropsRoot } = primaryTypographyProps;\n+ const { className: secondaryClassName, ...secondaryTypographyPropsRoot } =\n+ secondaryTypographyProps;\n \n let primary = primaryProp != null ? primaryProp : children;\n if (primary != null && primary.type !== Typography && !disableTypography) {\n primary = (\n \n {primary}\n \n@@ -67,8 +73,9 @@ function ListItemText(props, context) {\n variant=\"body1\"\n className={classNames(classes.secondary, {\n [classes.textDense]: dense,\n- })}\n+ }, secondaryClassName)}\n color=\"textSecondary\"\n+ {...secondaryTypographyPropsRoot}\n >\n {secondary}\n \n@@ -123,10 +130,18 @@ ListItemText.propTypes = {\n * The main content element.\n */\n primary: PropTypes.node,\n+ /**\n+ * Props applied to the primary Typography component.\n+ */\n+ primaryTypographyProps: PropTypes.object,\n /**\n * The secondary content element.\n */\n secondary: PropTypes.node,\n+ /**\n+ * Props applied to the secondary Typography component.\n+ */\n+ secondaryTypographyProps: PropTypes.object,\n };\n \n ListItemText.defaultProps = {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-11987", "model_patch": "diff --git a/packages/material-ui-icons/src/utils/createSvgIcon.js b/packages/material-ui-icons/src/utils/createSvgIcon.js\nindex f06884e..3a8ded8 100644\n--- a/packages/material-ui-icons/src/utils/createSvgIcon.js\n+++ b/packages/material-ui-icons/src/utils/createSvgIcon.js\n@@ -5,6 +5,7 @@ import SvgIcon from '@material-ui/core/SvgIcon';\n function createSvgIcon(path, displayName) {\n let Icon = props => (\n \n+ {props.children}\n {path}\n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/ArrowDownward.js b/packages/material-ui/src/internal/svg-icons/ArrowDownward.js\nindex 0c814e7..05e6dbf 100644\n--- a/packages/material-ui/src/internal/svg-icons/ArrowDownward.js\n+++ b/packages/material-ui/src/internal/svg-icons/ArrowDownward.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let ArrowDownward = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/ArrowDropDown.js b/packages/material-ui/src/internal/svg-icons/ArrowDropDown.js\nindex 96c36ec..58161ce 100644\n--- a/packages/material-ui/src/internal/svg-icons/ArrowDropDown.js\n+++ b/packages/material-ui/src/internal/svg-icons/ArrowDropDown.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let ArrowDropDown = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/Cancel.js b/packages/material-ui/src/internal/svg-icons/Cancel.js\nindex 56276fe..de3885f 100644\n--- a/packages/material-ui/src/internal/svg-icons/Cancel.js\n+++ b/packages/material-ui/src/internal/svg-icons/Cancel.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let Cancel = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/CheckBox.js b/packages/material-ui/src/internal/svg-icons/CheckBox.js\nindex a9fc076..5d45e72 100644\n--- a/packages/material-ui/src/internal/svg-icons/CheckBox.js\n+++ b/packages/material-ui/src/internal/svg-icons/CheckBox.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let CheckBox = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/CheckBoxOutlineBlank.js b/packages/material-ui/src/internal/svg-icons/CheckBoxOutlineBlank.js\nindex c3eeded..c94fb8c 100644\n--- a/packages/material-ui/src/internal/svg-icons/CheckBoxOutlineBlank.js\n+++ b/packages/material-ui/src/internal/svg-icons/CheckBoxOutlineBlank.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let CheckBoxOutlineBlank = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/CheckCircle.js b/packages/material-ui/src/internal/svg-icons/CheckCircle.js\nindex ac2a1a6..589710d 100644\n--- a/packages/material-ui/src/internal/svg-icons/CheckCircle.js\n+++ b/packages/material-ui/src/internal/svg-icons/CheckCircle.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let CheckCircle = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/IndeterminateCheckBox.js b/packages/material-ui/src/internal/svg-icons/IndeterminateCheckBox.js\nindex 79952cc..41b8069 100644\n--- a/packages/material-ui/src/internal/svg-icons/IndeterminateCheckBox.js\n+++ b/packages/material-ui/src/internal/svg-icons/IndeterminateCheckBox.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let IndeterminateCheckBox = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/KeyboardArrowLeft.js b/packages/material-ui/src/internal/svg-icons/KeyboardArrowLeft.js\nindex c85a14b..9848997 100644\n--- a/packages/material-ui/src/internal/svg-icons/KeyboardArrowLeft.js\n+++ b/packages/material-ui/src/internal/svg-icons/KeyboardArrowLeft.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let KeyboardArrowLeft = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/KeyboardArrowRight.js b/packages/material-ui/src/internal/svg-icons/KeyboardArrowRight.js\nindex a513fc5..1831e36 100644\n--- a/packages/material-ui/src/internal/svg-icons/KeyboardArrowRight.js\n+++ b/packages/material-ui/src/internal/svg-icons/KeyboardArrowRight.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let KeyboardArrowRight = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/RadioButtonChecked.js b/packages/material-ui/src/internal/svg-icons/RadioButtonChecked.js\nindex e5043e1..2e937e7 100644\n--- a/packages/material-ui/src/internal/svg-icons/RadioButtonChecked.js\n+++ b/packages/material-ui/src/internal/svg-icons/RadioButtonChecked.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let RadioButtonChecked = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/RadioButtonUnchecked.js b/packages/material-ui/src/internal/svg-icons/RadioButtonUnchecked.js\nindex 985a237..470beeb 100644\n--- a/packages/material-ui/src/internal/svg-icons/RadioButtonUnchecked.js\n+++ b/packages/material-ui/src/internal/svg-icons/RadioButtonUnchecked.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let RadioButtonUnchecked = props => (\n \n+ {props.children}\n \n \n );\ndiff --git a/packages/material-ui/src/internal/svg-icons/Warning.js b/packages/material-ui/src/internal/svg-icons/Warning.js\nindex 3664c9c..ba366bd 100644\n--- a/packages/material-ui/src/internal/svg-icons/Warning.js\n+++ b/packages/material-ui/src/internal/svg-icons/Warning.js\n@@ -7,6 +7,7 @@ import SvgIcon from '../../SvgIcon';\n */\n let Warning = props => (\n \n+ {props.children}\n \n \n );\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-12236", "model_patch": "diff --git a/packages/material-ui/src/styles/withTheme.js b/packages/material-ui/src/styles/withTheme.js\nindex bedd447f..73042637 100644\n--- a/packages/material-ui/src/styles/withTheme.js\n+++ b/packages/material-ui/src/styles/withTheme.js\n@@ -1,4 +1,5 @@\n import React from 'react';\n+import PropTypes from 'prop-types';\n import hoistNonReactStatics from 'hoist-non-react-statics';\n import wrapDisplayName from 'recompose/wrapDisplayName';\n import createMuiTheme from './createMuiTheme';\n@@ -44,10 +45,19 @@ const withTheme = () => Component => {\n }\n \n render() {\n- return ;\n+ const { innerRef, ...other } = this.props;\n+\n+ return ;\n }\n }\n \n+ WithTheme.propTypes = {\n+ /**\n+ * Use that property to pass a ref callback to the decorated component.\n+ */\n+ innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n+ };\n+\n WithTheme.contextTypes = themeListener.contextTypes;\n \n if (process.env.NODE_ENV !== 'production') {\ndiff --git a/packages/material-ui/src/withWidth/withWidth.js b/packages/material-ui/src/withWidth/withWidth.js\nindex 670c3d36..0de4edc5 100644\n--- a/packages/material-ui/src/withWidth/withWidth.js\n+++ b/packages/material-ui/src/withWidth/withWidth.js\n@@ -98,7 +98,7 @@ const withWidth = (options = {}) => Component => {\n }\n \n render() {\n- const { initialWidth, theme, width, ...other } = this.props;\n+ const { initialWidth, innerRef, theme, width, ...other } = this.props;\n \n const props = {\n width:\n@@ -127,7 +127,7 @@ const withWidth = (options = {}) => Component => {\n \n return (\n \n- \n+ \n \n );\n }\n@@ -144,6 +144,10 @@ const withWidth = (options = {}) => Component => {\n * http://caniuse.com/#search=client%20hint\n */\n initialWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n+ /**\n+ * Use that property to pass a ref callback to the decorated component.\n+ */\n+ innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /**\n * @ignore\n */\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-12303", "model_patch": "diff --git a/packages/material-ui/src/FormControlLabel/FormControlLabel.d.ts b/packages/material-ui/src/FormControlLabel/FormControlLabel.d.ts\nindex 9a24077f..7b86b1a7 100644\n--- a/packages/material-ui/src/FormControlLabel/FormControlLabel.d.ts\n+++ b/packages/material-ui/src/FormControlLabel/FormControlLabel.d.ts\n@@ -12,12 +12,19 @@ export interface FormControlLabelProps\n disabled?: boolean;\n inputRef?: React.Ref;\n label: React.ReactNode;\n+ labelPlacement?: 'end' | 'start' | 'top' | 'bottom';\n name?: string;\n onChange?: (event: React.ChangeEvent<{}>, checked: boolean) => void;\n value?: string;\n }\n \n-export type FormControlLabelClassKey = 'root' | 'disabled' | 'label';\n+export type FormControlLabelClassKey =\n+ | 'root'\n+ | 'disabled'\n+ | 'label'\n+ | 'labelPlacementStart'\n+ | 'labelPlacementTop'\n+ | 'labelPlacementBottom';\n \n declare const FormControlLabel: React.ComponentType;\n \ndiff --git a/packages/material-ui/src/FormControlLabel/FormControlLabel.js b/packages/material-ui/src/FormControlLabel/FormControlLabel.js\nindex fb7f8204..a423086d 100644\n--- a/packages/material-ui/src/FormControlLabel/FormControlLabel.js\n+++ b/packages/material-ui/src/FormControlLabel/FormControlLabel.js\n@@ -22,6 +22,22 @@ export const styles = theme => ({\n cursor: 'default',\n },\n },\n+ /* Styles applied to the root element if `labelPlacement=\"start\"`. */\n+ labelPlacementStart: {\n+ flexDirection: 'row-reverse',\n+ marginLeft: 16,\n+ marginRight: -14,\n+ },\n+ /* Styles applied to the root element if `labelPlacement=\"top\"`. */\n+ labelPlacementTop: {\n+ flexDirection: 'column-reverse',\n+ marginLeft: 16,\n+ },\n+ /* Styles applied to the root element if `labelPlacement=\"bottom\"`. */\n+ labelPlacementBottom: {\n+ flexDirection: 'column',\n+ marginLeft: 16,\n+ },\n /* Styles applied to the root element if `disabled={true}`. */\n disabled: {},\n /* Styles applied to the label's Typography component. */\n@@ -45,6 +61,7 @@ function FormControlLabel(props, context) {\n disabled: disabledProp,\n inputRef,\n label,\n+ labelPlacement,\n name,\n onChange,\n value,\n@@ -73,6 +90,7 @@ function FormControlLabel(props, context) {\n , CircularProgressClassKey> {\n color?: 'primary' | 'secondary' | 'inherit';\n+ /**\n+ * Disable the shrink animation.\n+ * This only works if variant is `indeterminate`.\n+ */\n+ shrinkAnimation?: boolean;\n size?: number | string;\n thickness?: number;\n value?: number;\n@@ -19,7 +24,8 @@ export type CircularProgressClassKey =\n | 'svg'\n | 'circle'\n | 'circleStatic'\n- | 'circleIndeterminate';\n+ | 'circleIndeterminate'\n+ | 'circleIndeterminateNoShrink';\n \n declare const CircularProgress: React.ComponentType;\n \ndiff --git a/packages/material-ui/src/CircularProgress/CircularProgress.js b/packages/material-ui/src/CircularProgress/CircularProgress.js\nindex bf32f779..4cecc75c 100644\n--- a/packages/material-ui/src/CircularProgress/CircularProgress.js\n+++ b/packages/material-ui/src/CircularProgress/CircularProgress.js\n@@ -2,6 +2,7 @@ import React from 'react';\n import PropTypes from 'prop-types';\n import classNames from 'classnames';\n import withStyles from '../styles/withStyles';\n+import chainPropTypes from '../utils/chainPropTypes';\n import { capitalize } from '../utils/helpers';\n \n const SIZE = 44;\n@@ -63,6 +64,12 @@ export const styles = theme => ({\n strokeDasharray: '80px, 200px',\n strokeDashoffset: '0px', // Add the unit to fix a Edge 16 and below bug.\n },\n+ /* Styles applied to the `circle` svg path if `variant=\"indeterminate\"` and `shrinkAnimation={false}`. */\n+ circleIndeterminateNoShrink: {\n+ animation: 'none',\n+ strokeDasharray: '80px, 200px',\n+ strokeDashoffset: '0px', // Add the unit to fix a Edge 16 and below bug.\n+ },\n '@keyframes mui-progress-circular-rotate': {\n '100%': {\n transform: 'rotate(360deg)',\n@@ -92,7 +99,18 @@ export const styles = theme => ({\n * attribute to `true` on that region until it has finished loading.\n */\n function CircularProgress(props) {\n- const { classes, className, color, size, style, thickness, value, variant, ...other } = props;\n+ const {\n+ classes,\n+ className,\n+ color,\n+ shrinkAnimation = true,\n+ size,\n+ style,\n+ thickness,\n+ value,\n+ variant,\n+ ...other\n+ } = props;\n \n const circleStyle = {};\n const rootStyle = {};\n@@ -133,7 +151,8 @@ function CircularProgress(props) {\n \n {\n+ if (props.shrinkAnimation !== undefined && props.variant !== 'indeterminate') {\n+ return new Error(\n+ 'Material-UI: you have provided a `shrinkAnimation` property with a variant other than ' +\n+ '`indeterminate`. This will have no effect.',\n+ );\n+ }\n+\n+ return null;\n+ }),\n /**\n * @ignore\n */\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-13534", "model_patch": "diff --git a/packages/material-ui/src/Badge/Badge.d.ts b/packages/material-ui/src/Badge/Badge.d.ts\nindex 45a15eef..336c8136 100644\n--- a/packages/material-ui/src/Badge/Badge.d.ts\n+++ b/packages/material-ui/src/Badge/Badge.d.ts\n@@ -6,6 +6,7 @@ export interface BadgeProps\n badgeContent: React.ReactNode;\n children: React.ReactNode;\n color?: PropTypes.Color | 'error';\n+ disabled?: boolean;\n component?: React.ReactType;\n }\n \ndiff --git a/packages/material-ui/src/Badge/Badge.js b/packages/material-ui/src/Badge/Badge.js\nindex ba646a49..d4d4b17e 100644\n--- a/packages/material-ui/src/Badge/Badge.js\n+++ b/packages/material-ui/src/Badge/Badge.js\n@@ -59,6 +59,7 @@ function Badge(props) {\n classes,\n className,\n color,\n+ disabled,\n component: ComponentProp,\n ...other\n } = props;\n@@ -70,7 +71,7 @@ function Badge(props) {\n return (\n \n {children}\n- {badgeContent}\n+ {!disabled && {badgeContent}}\n \n );\n }\n@@ -97,6 +98,10 @@ Badge.propTypes = {\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'primary', 'secondary', 'error']),\n+ /**\n+ * If `true`, the badge will be hidden.\n+ */\n+ disabled: PropTypes.bool,\n /**\n * The component used for the root node.\n * Either a string to use a DOM element or a component.\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-13690", "model_patch": "diff --git a/packages/material-ui/src/Tooltip/Tooltip.js b/packages/material-ui/src/Tooltip/Tooltip.js\nindex de16c64f..8f34236f 100644\n--- a/packages/material-ui/src/Tooltip/Tooltip.js\n+++ b/packages/material-ui/src/Tooltip/Tooltip.js\n@@ -280,7 +280,7 @@ class Tooltip extends React.Component {\n \n const childrenProps = {\n 'aria-describedby': open ? id || this.defaultId : null,\n- title: !open && typeof title === 'string' ? title : null,\n+ title: !open && !disableHoverListener && typeof title === 'string' ? title : null,\n ...other,\n ...children.props,\n className: classNames(other.className, children.props.className),\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-13778", "model_patch": "diff --git a/packages/material-ui/src/Modal/ModalManager.js b/packages/material-ui/src/Modal/ModalManager.js\nindex eac18c25..23ec5f35 100644\n--- a/packages/material-ui/src/Modal/ModalManager.js\n+++ b/packages/material-ui/src/Modal/ModalManager.js\n@@ -50,6 +50,10 @@ function setContainerStyle(data) {\n }\n \n function removeContainerStyle(data) {\n+ if (!data.style) {\n+ return;\n+ }\n+\n Object.keys(data.style).forEach(key => {\n data.container.style[key] = data.style[key];\n });\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-13789", "model_patch": "diff --git a/packages/material-ui/src/Dialog/Dialog.js b/packages/material-ui/src/Dialog/Dialog.js\nindex 669a80c2..3dc6a5ab 100644\n--- a/packages/material-ui/src/Dialog/Dialog.js\n+++ b/packages/material-ui/src/Dialog/Dialog.js\n@@ -117,7 +117,18 @@ export const styles = theme => ({\n * Dialogs are overlaid modal paper based components with a backdrop.\n */\n class Dialog extends React.Component {\n+ ignoreBackdropClick = false;\n+\n+ handleMouseDown = event => {\n+ this.ignoreBackdropClick = event.target !== event.currentTarget;\n+ };\n+\n handleBackdropClick = event => {\n+ if (this.ignoreBackdropClick) {\n+ this.ignoreBackdropClick = false;\n+ return;\n+ }\n+\n if (event.target !== event.currentTarget) {\n return;\n }\n@@ -191,6 +202,7 @@ class Dialog extends React.Component {\n >\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-14364", "model_patch": "diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js\nindex cd565a63..4f9f3908 100644\n--- a/packages/material-ui/src/InputBase/InputBase.js\n+++ b/packages/material-ui/src/InputBase/InputBase.js\n@@ -396,15 +396,15 @@ class InputBase extends React.Component {\n \n return (\n
\n- {renderPrefix\n- ? renderPrefix({\n- ...fcs,\n- startAdornment,\n- focused,\n- })\n- : null}\n- {startAdornment}\n \n+ {renderPrefix\n+ ? renderPrefix({\n+ ...fcs,\n+ startAdornment,\n+ focused,\n+ })\n+ : null}\n+ {startAdornment}\n \n+ {endAdornment}\n \n- {endAdornment}\n
\n );\n }\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-14391", "model_patch": "diff --git a/packages/material-ui/src/styles/colorManipulator.js b/packages/material-ui/src/styles/colorManipulator.js\nindex 694f3f63..8b1f376b 100644\n--- a/packages/material-ui/src/styles/colorManipulator.js\n+++ b/packages/material-ui/src/styles/colorManipulator.js\n@@ -147,6 +147,49 @@ export function getContrastRatio(foreground, background) {\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n }\n \n+function clampHue(value) {\n+ const wrapped = value % 360;\n+ return wrapped < 0 ? wrapped + 360 : wrapped;\n+}\n+\n+function hueToRgb(p, q, t) {\n+ if (t < 0) t += 1;\n+ if (t > 1) t -= 1;\n+ if (t < 1 / 6) return p + (q - p) * 6 * t;\n+ if (t < 1 / 2) return q;\n+ if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n+ return p;\n+}\n+\n+function hslToRgb(values) {\n+ const h = clampHue(values[0]) / 360;\n+ const s = values[1] / 100;\n+ const l = values[2] / 100;\n+\n+ if (s === 0) {\n+ const gray = l * 255;\n+ return [gray, gray, gray];\n+ }\n+\n+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n+ const p = 2 * l - q;\n+\n+ return [\n+ hueToRgb(p, q, h + 1 / 3) * 255,\n+ hueToRgb(p, q, h) * 255,\n+ hueToRgb(p, q, h - 1 / 3) * 255,\n+ ];\n+}\n+\n+function getLuminanceFromRgb(values) {\n+ const rgb = values.map(val => {\n+ val /= 255; // normalized\n+ return val < 0.04045 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n+ });\n+ // Truncate at 3 digits\n+ return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n+}\n+\n /**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n@@ -162,16 +205,15 @@ export function getLuminance(color) {\n const decomposedColor = decomposeColor(color);\n \n if (decomposedColor.type.indexOf('rgb') !== -1) {\n- const rgb = decomposedColor.values.map(val => {\n- val /= 255; // normalized\n- return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n- });\n- // Truncate at 3 digits\n- return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n+ return getLuminanceFromRgb(decomposedColor.values);\n+ }\n+\n+ if (decomposedColor.type.indexOf('hsl') !== -1) {\n+ const rgb = hslToRgb(decomposedColor.values);\n+ return getLuminanceFromRgb(rgb);\n }\n \n- // else if (decomposedColor.type.indexOf('hsl') !== -1)\n- return decomposedColor.values[2] / 100;\n+ return 0;\n }\n \n /**\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-14496", "model_patch": "diff --git a/packages/material-ui/src/Tooltip/Tooltip.js b/packages/material-ui/src/Tooltip/Tooltip.js\nindex 5d1ceb60..cbce2688 100644\n--- a/packages/material-ui/src/Tooltip/Tooltip.js\n+++ b/packages/material-ui/src/Tooltip/Tooltip.js\n@@ -130,7 +130,11 @@ class Tooltip extends React.Component {\n // We need to account for this eventuality.\n this.focusTimer = setTimeout(() => {\n // We need to make sure the focus hasn't moved since the event was triggered.\n- if (this.childrenRef === document.activeElement) {\n+ if (\n+ this.childrenRef &&\n+ document.activeElement &&\n+ this.childrenRef.contains(document.activeElement)\n+ ) {\n this.handleEnter(event);\n }\n });\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-14638", "model_patch": "diff --git a/packages/material-ui/src/Tab/Tab.js b/packages/material-ui/src/Tab/Tab.js\nindex 225674eb..b948200d 100644\n--- a/packages/material-ui/src/Tab/Tab.js\n+++ b/packages/material-ui/src/Tab/Tab.js\n@@ -99,7 +99,9 @@ export const styles = theme => ({\n /* Styles applied to the label wrapper element if `label` is provided. */\n label: {},\n /* Deprecated, the styles will be removed in v4. */\n- labelWrapped: {},\n+ labelWrapped: {\n+ lineHeight: 1.25,\n+ },\n });\n \n class Tab extends React.Component {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-14882", "model_patch": "diff --git a/packages/material-ui/src/LinearProgress/LinearProgress.js b/packages/material-ui/src/LinearProgress/LinearProgress.js\nindex e29a5895..7605d24a 100644\n--- a/packages/material-ui/src/LinearProgress/LinearProgress.js\n+++ b/packages/material-ui/src/LinearProgress/LinearProgress.js\n@@ -92,12 +92,12 @@ export const styles = theme => ({\n },\n /* Styles applied to the bar1 element if `variant=\"determinate\"`. */\n bar1Determinate: {\n- transition: `transform .${TRANSITION_DURATION}s linear`,\n+ transition: `width .${TRANSITION_DURATION}s linear`,\n },\n /* Styles applied to the bar1 element if `variant=\"buffer\"`. */\n bar1Buffer: {\n zIndex: 1,\n- transition: `transform .${TRANSITION_DURATION}s linear`,\n+ transition: `width .${TRANSITION_DURATION}s linear`,\n },\n /* Styles applied to the bar2 element if `variant=\"indeterminate or query\"`. */\n bar2Indeterminate: {\n@@ -110,7 +110,7 @@ export const styles = theme => ({\n },\n /* Styles applied to the bar2 element if `variant=\"buffer\"`. */\n bar2Buffer: {\n- transition: `transform .${TRANSITION_DURATION}s linear`,\n+ transition: `width .${TRANSITION_DURATION}s linear`,\n },\n // Legends:\n // || represents the viewport\n@@ -211,7 +211,7 @@ const LinearProgress = React.forwardRef(function LinearProgress(props, ref) {\n if (variant === 'determinate' || variant === 'buffer') {\n if (value !== undefined) {\n rootProps['aria-valuenow'] = Math.round(value);\n- inlineStyles.bar1.transform = `scaleX(${value / 100})`;\n+ inlineStyles.bar1.width = `${value}%`;\n } else {\n warning(\n false,\n@@ -222,7 +222,7 @@ const LinearProgress = React.forwardRef(function LinearProgress(props, ref) {\n }\n if (variant === 'buffer') {\n if (valueBuffer !== undefined) {\n- inlineStyles.bar2.transform = `scaleX(${(valueBuffer || 0) / 100})`;\n+ inlineStyles.bar2.width = `${valueBuffer || 0}%`;\n } else {\n warning(\n false,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-15359", "model_patch": "diff --git a/packages/material-ui/src/Popper/Popper.js b/packages/material-ui/src/Popper/Popper.js\nindex ce37362d..003013ce 100644\n--- a/packages/material-ui/src/Popper/Popper.js\n+++ b/packages/material-ui/src/Popper/Popper.js\n@@ -4,6 +4,7 @@ import PopperJS from 'popper.js';\n import { chainPropTypes } from '@material-ui/utils';\n import Portal from '../Portal';\n import { setRef, withForwardedRef } from '../utils';\n+import { createChainedFunction } from '../utils/helpers';\n \n function flipPlacement(placement) {\n const direction = (typeof window !== 'undefined' && document.body.getAttribute('dir')) || 'ltr';\n@@ -96,8 +97,8 @@ class Popper extends React.Component {\n },\n // We could have been using a custom modifier like react-popper is doing.\n // But it seems this is the best public API for this use case.\n- onCreate: this.handlePopperUpdate,\n- onUpdate: this.handlePopperUpdate,\n+ onCreate: createChainedFunction(this.handlePopperUpdate, popperOptions.onCreate),\n+ onUpdate: createChainedFunction(this.handlePopperUpdate, popperOptions.onUpdate),\n });\n };\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-15526", "model_patch": "diff --git a/packages/material-ui/src/utils/reactHelpers.js b/packages/material-ui/src/utils/reactHelpers.js\nindex 4a7e2c6f..90fb049d 100644\n--- a/packages/material-ui/src/utils/reactHelpers.js\n+++ b/packages/material-ui/src/utils/reactHelpers.js\n@@ -18,11 +18,13 @@ export function useForkRef(refA, refB) {\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n- return React.useCallback(\n- refValue => {\n- setRef(refA, refValue);\n- setRef(refB, refValue);\n- },\n- [refA, refB],\n- );\n+ return React.useMemo(() => {\n+ if (refA || refB) {\n+ return refValue => {\n+ setRef(refA, refValue);\n+ setRef(refB, refValue);\n+ };\n+ }\n+ return null;\n+ }, [refA, refB]);\n }\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-15534", "model_patch": "diff --git a/packages/material-ui-styles/src/createGenerateClassName/createGenerateClassName.js b/packages/material-ui-styles/src/createGenerateClassName/createGenerateClassName.js\nindex e48509eb..d063dc14 100644\n--- a/packages/material-ui-styles/src/createGenerateClassName/createGenerateClassName.js\n+++ b/packages/material-ui-styles/src/createGenerateClassName/createGenerateClassName.js\n@@ -48,7 +48,7 @@ export default function createGenerateClassName(options = {}) {\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n- return rule.key;\n+ return `${seedPrefix}Mui-${rule.key}`;\n }\n \n const prefix = `${seedPrefix}${name}-${rule.key}`;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-16397", "model_patch": "diff --git a/packages/material-ui/src/ButtonBase/ButtonBase.js b/packages/material-ui/src/ButtonBase/ButtonBase.js\nindex d157b568..96835f62 100644\n--- a/packages/material-ui/src/ButtonBase/ButtonBase.js\n+++ b/packages/material-ui/src/ButtonBase/ButtonBase.js\n@@ -268,7 +268,9 @@ const ButtonBase = React.forwardRef(function ButtonBase(props, ref) {\n buttonProps.type = type;\n buttonProps.disabled = disabled;\n } else {\n- buttonProps.role = 'button';\n+ if (typeof ComponentProp === 'string' && !(ComponentProp === 'a' && other.href)) {\n+ buttonProps.role = 'button';\n+ }\n buttonProps['aria-disabled'] = disabled;\n }\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-17301", "model_patch": "diff --git a/packages/material-ui-lab/src/SpeedDialAction/SpeedDialAction.js b/packages/material-ui-lab/src/SpeedDialAction/SpeedDialAction.js\nindex dbcbebb7..e9ebb7d2 100644\n--- a/packages/material-ui-lab/src/SpeedDialAction/SpeedDialAction.js\n+++ b/packages/material-ui-lab/src/SpeedDialAction/SpeedDialAction.js\n@@ -12,9 +12,9 @@ export const styles = theme => ({\n button: {\n margin: 8,\n color: theme.palette.text.secondary,\n- backgroundColor: theme.palette.common.white,\n+ backgroundColor: theme.palette.background.paper,\n '&:hover': {\n- backgroundColor: emphasize(theme.palette.common.white, 0.15),\n+ backgroundColor: emphasize(theme.palette.background.paper, 0.15),\n },\n transition: `${theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-17829", "model_patch": "diff --git a/packages/material-ui/src/Chip/Chip.js b/packages/material-ui/src/Chip/Chip.js\nindex 5a7d605d..6058b47b 100644\n--- a/packages/material-ui/src/Chip/Chip.js\n+++ b/packages/material-ui/src/Chip/Chip.js\n@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';\n import clsx from 'clsx';\n import CancelIcon from '../internal/svg-icons/Cancel';\n import withStyles from '../styles/withStyles';\n+import ButtonBase from '../ButtonBase';\n import { emphasize, fade } from '../styles/colorManipulator';\n import useForkRef from '../utils/useForkRef';\n import unsupportedProp from '../utils/unsupportedProp';\n@@ -334,6 +335,14 @@ const Chip = React.forwardRef(function Chip(props, ref) {\n \n const clickable = clickableProp !== false && onClick ? true : clickableProp;\n const small = size === 'small';\n+ const ChipComponent = clickable || onDelete ? ButtonBase : Component;\n+ const chipComponentProps =\n+ clickable || onDelete\n+ ? {\n+ component: Component,\n+ disabled,\n+ }\n+ : {};\n \n let deleteIcon = null;\n if (onDelete) {\n@@ -389,7 +398,7 @@ const Chip = React.forwardRef(function Chip(props, ref) {\n }\n \n return (\n- \n {avatar || icon}\n@@ -423,7 +433,7 @@ const Chip = React.forwardRef(function Chip(props, ref) {\n {label}\n \n {deleteIcon}\n-
\n+ \n );\n });\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-18141", "model_patch": "diff --git a/packages/material-ui/src/Select/Select.js b/packages/material-ui/src/Select/Select.js\nindex 0fec819d..4ac2b5db 100644\n--- a/packages/material-ui/src/Select/Select.js\n+++ b/packages/material-ui/src/Select/Select.js\n@@ -69,7 +69,7 @@ const Select = React.forwardRef(function Select(props, ref) {\n type: undefined, // We render a select. We can ignore the type provided by the `Input`.\n multiple,\n ...(native\n- ? {}\n+ ? { id }\n : {\n autoWidth,\n displayEmpty,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-18257", "model_patch": "diff --git a/packages/material-ui/src/Select/Select.js b/packages/material-ui/src/Select/Select.js\nindex 0fec819d..4ac2b5db 100644\n--- a/packages/material-ui/src/Select/Select.js\n+++ b/packages/material-ui/src/Select/Select.js\n@@ -69,7 +69,7 @@ const Select = React.forwardRef(function Select(props, ref) {\n type: undefined, // We render a select. We can ignore the type provided by the `Input`.\n multiple,\n ...(native\n- ? {}\n+ ? { id }\n : {\n autoWidth,\n displayEmpty,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-18683", "model_patch": "diff --git a/packages/material-ui/src/useMediaQuery/useMediaQuery.js b/packages/material-ui/src/useMediaQuery/useMediaQuery.js\nindex e969caa2f..2cb368de0 100644\n--- a/packages/material-ui/src/useMediaQuery/useMediaQuery.js\n+++ b/packages/material-ui/src/useMediaQuery/useMediaQuery.js\n@@ -1,9 +1,6 @@\n import React from 'react';\n import { getThemeProps, useTheme } from '@material-ui/styles';\n \n-// This variable will be true once the server-side hydration is completed.\n-let hydrationCompleted = false;\n-\n function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme();\n const props = getThemeProps({\n@@ -40,7 +37,7 @@ function useMediaQuery(queryInput, options = {}) {\n };\n \n const [match, setMatch] = React.useState(() => {\n- if ((hydrationCompleted || noSsr) && supportMatchMedia) {\n+ if (noSsr && supportMatchMedia) {\n return window.matchMedia(query).matches;\n }\n if (ssrMatchMedia) {\n@@ -54,7 +51,6 @@ function useMediaQuery(queryInput, options = {}) {\n \n React.useEffect(() => {\n let active = true;\n- hydrationCompleted = true;\n \n if (!supportMatchMedia) {\n return undefined;\n@@ -80,8 +76,4 @@ function useMediaQuery(queryInput, options = {}) {\n return match;\n }\n \n-export function testReset() {\n- hydrationCompleted = false;\n-}\n-\n export default useMediaQuery;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-18796", "model_patch": "diff --git a/packages/material-ui-lab/src/Autocomplete/Autocomplete.js b/packages/material-ui-lab/src/Autocomplete/Autocomplete.js\nindex 991500fc5..83f0e5564 100644\n--- a/packages/material-ui-lab/src/Autocomplete/Autocomplete.js\n+++ b/packages/material-ui-lab/src/Autocomplete/Autocomplete.js\n@@ -623,6 +623,7 @@ Autocomplete.propTypes = {\n *\n * @param {object} event The event source of the callback.\n * @param {string} value\n+ * @param {string} reason Can be: 'input' (user input) or 'reset' (programmatic change).\n */\n onInputChange: PropTypes.func,\n /**\ndiff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.d.ts b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.d.ts\nindex 310167c6c..72247dc3b 100644\n--- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.d.ts\n+++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.d.ts\n@@ -12,6 +12,8 @@ export interface FilterOptionsState {\n inputValue: string;\n }\n \n+export type AutocompleteInputChangeReason = 'input' | 'reset';\n+\n export type CreateFilterOptions = (\n config?: CreateFilterOptionsConfig,\n ) => (option: any, state: FilterOptionsState) => any[];\n@@ -139,8 +141,13 @@ export interface UseAutocompleteProps {\n *\n * @param {object} event The event source of the callback.\n * @param {string} value\n+ * @param {string} reason Can be: 'input' (user input) or 'reset' (programmatic change).\n */\n- onInputChange?: (event: React.ChangeEvent<{}>, value: any) => void;\n+ onInputChange?: (\n+ event: React.ChangeEvent<{}>,\n+ value: any,\n+ reason: AutocompleteInputChangeReason,\n+ ) => void;\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\ndiff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\nindex 38f9ee430..d0c1ea167 100644\n--- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\n+++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\n@@ -218,7 +218,7 @@ export default function useAutocomplete(props) {\n setInputValue(newInputValue);\n \n if (onInputChange) {\n- onInputChange(event, newInputValue);\n+ onInputChange(event, newInputValue, 'reset');\n }\n });\n \n@@ -657,7 +657,7 @@ export default function useAutocomplete(props) {\n setInputValue(newValue);\n \n if (onInputChange) {\n- onInputChange(event, newValue);\n+ onInputChange(event, newValue, 'input');\n }\n };\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-18824", "model_patch": "diff --git a/packages/material-ui/src/Paper/Paper.d.ts b/packages/material-ui/src/Paper/Paper.d.ts\nindex 02de56d36..3d1a5fd31 100644\n--- a/packages/material-ui/src/Paper/Paper.d.ts\n+++ b/packages/material-ui/src/Paper/Paper.d.ts\n@@ -6,11 +6,13 @@ export interface PaperProps\n component?: React.ElementType>;\n elevation?: number;\n square?: boolean;\n+ variant?: 'elevation' | 'outlined';\n }\n \n export type PaperClassKey =\n | 'root'\n | 'rounded'\n+ | 'outlined'\n | 'elevation0'\n | 'elevation1'\n | 'elevation2'\ndiff --git a/packages/material-ui/src/Paper/Paper.js b/packages/material-ui/src/Paper/Paper.js\nindex 9b1a9ee36..32a7c304c 100644\n--- a/packages/material-ui/src/Paper/Paper.js\n+++ b/packages/material-ui/src/Paper/Paper.js\n@@ -22,6 +22,10 @@ export const styles = theme => {\n rounded: {\n borderRadius: theme.shape.borderRadius,\n },\n+ /* Styles applied to the root element if `variant=\"outlined\"`. */\n+ outlined: {\n+ border: `1px solid ${theme.palette.divider}`,\n+ },\n ...elevations,\n };\n };\n@@ -33,6 +37,7 @@ const Paper = React.forwardRef(function Paper(props, ref) {\n component: Component = 'div',\n square = false,\n elevation = 1,\n+ variant = 'elevation',\n ...other\n } = props;\n \n@@ -46,9 +51,10 @@ const Paper = React.forwardRef(function Paper(props, ref) {\n {\n+ const indexByKey = Object.create(null);\n+ const groups = [];\n+\n+ filteredOptions.forEach(option => {\n const key = groupBy(option);\n+ let groupIndex = indexByKey[key];\n \n- if (acc.length > 0 && acc[acc.length - 1].key === key) {\n- acc[acc.length - 1].options.push(option);\n- } else {\n- acc.push({\n+ if (groupIndex === undefined) {\n+ groupIndex = groups.length;\n+ indexByKey[key] = groupIndex;\n+ groups.push({\n key,\n- index,\n- options: [option],\n+ index: 0,\n+ options: [],\n });\n }\n \n- return acc;\n- }, []);\n+ groups[groupIndex].options.push(option);\n+ });\n+\n+ let optionIndex = 0;\n+ groups.forEach(group => {\n+ group.index = optionIndex;\n+ optionIndex += group.options.length;\n+ });\n+\n+ groupedOptions = groups;\n }\n \n return {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-19257", "model_patch": "diff --git a/packages/material-ui-lab/src/Autocomplete/Autocomplete.js b/packages/material-ui-lab/src/Autocomplete/Autocomplete.js\nindex eebefc730..24ed1eb13 100644\n--- a/packages/material-ui-lab/src/Autocomplete/Autocomplete.js\n+++ b/packages/material-ui-lab/src/Autocomplete/Autocomplete.js\n@@ -35,7 +35,6 @@ export const styles = theme => ({\n /* Styles applied to the Input element. */\n inputRoot: {\n flexWrap: 'wrap',\n- paddingRight: 62,\n '& $input': {\n width: 0,\n minWidth: 30,\n@@ -59,7 +58,6 @@ export const styles = theme => ({\n },\n '&[class*=\"MuiOutlinedInput-root\"]': {\n padding: 9,\n- paddingRight: 62,\n '& $input': {\n padding: '9.5px 4px',\n },\n@@ -72,7 +70,6 @@ export const styles = theme => ({\n },\n '&[class*=\"MuiOutlinedInput-root\"][class*=\"MuiOutlinedInput-marginDense\"]': {\n padding: 6,\n- paddingRight: 62,\n '& $input': {\n padding: '4.5px 4px',\n },\n@@ -94,6 +91,18 @@ export const styles = theme => ({\n },\n },\n },\n+ /* Styles applied to the Input element if there is only one icon. */\n+ inputRootHasPopupIcon: {\n+ paddingRight: 32,\n+ },\n+ /* Styles applied to the Input element if there is only one icon. */\n+ inputRootHasClearIcon: {\n+ paddingRight: 32,\n+ },\n+ /* Styles applied to the Input element if there are two icons. */\n+ inputRootHasPopupIconAndClearIcon: {\n+ paddingRight: 62,\n+ },\n /* Styles applied to the input element. */\n input: {\n flexGrow: 1,\n@@ -273,6 +282,9 @@ const Autocomplete = React.forwardRef(function Autocomplete(props, ref) {\n /* eslint-enable no-unused-vars */\n \n const PopperComponent = disablePortal ? DisablePortal : PopperComponentProp;\n+ const hasClearIcon = !disableClearable && !disabled;\n+ const hasPopupIcon =\n+ (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;\n \n const {\n getRootProps,\n@@ -365,11 +377,15 @@ const Autocomplete = React.forwardRef(function Autocomplete(props, ref) {\n InputLabelProps: getInputLabelProps(),\n InputProps: {\n ref: setAnchorEl,\n- className: classes.inputRoot,\n+ className: clsx(classes.inputRoot, {\n+ [classes.inputRootHasClearIcon]: hasClearIcon && !hasPopupIcon,\n+ [classes.inputRootHasPopupIcon]: hasPopupIcon && !hasClearIcon,\n+ [classes.inputRootHasPopupIconAndClearIcon]: hasPopupIcon && hasClearIcon,\n+ }),\n startAdornment,\n endAdornment: (\n
\n- {disableClearable || disabled ? null : (\n+ {hasClearIcon ? (\n \n )}\n \n- {(!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false ? (\n+ {hasPopupIcon ? (\n {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-19794", "model_patch": "diff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\nindex 9957ed76..3b556ea0 100644\n--- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\n+++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\n@@ -765,6 +765,17 @@ export default function useAutocomplete(props) {\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n+\n+ const tagName = event.target.tagName;\n+ const isOutlineClick = tagName === 'FIELDSET' || tagName === 'LEGEND';\n+\n+ if (\n+ isOutlineClick &&\n+ inputValue === '' &&\n+ (!disableOpenOnFocus || inputRef.current === document.activeElement)\n+ ) {\n+ handlePopupIndicator(event);\n+ }\n };\n \n // Focus the input when first interacting with the combobox\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-19849", "model_patch": "diff --git a/packages/material-ui-lab/src/TreeItem/TreeItem.js b/packages/material-ui-lab/src/TreeItem/TreeItem.js\nindex 1b3c568b7..f21095f2e 100644\n--- a/packages/material-ui-lab/src/TreeItem/TreeItem.js\n+++ b/packages/material-ui-lab/src/TreeItem/TreeItem.js\n@@ -338,7 +338,9 @@ const TreeItem = React.forwardRef(function TreeItem(props, ref) {\n };\n \n React.useEffect(() => {\n- const childIds = React.Children.map(children, child => child.props.nodeId) || [];\n+ const childIds = (React.Children.map(children, child =>\n+ React.isValidElement(child) ? child.props.nodeId : null,\n+ ) || []).filter(id => id != null);\n if (addNodeToNodeMap) {\n addNodeToNodeMap(nodeId, childIds);\n }\ndiff --git a/packages/material-ui-lab/src/TreeView/TreeView.js b/packages/material-ui-lab/src/TreeView/TreeView.js\nindex ef214967d..9e795db54 100644\n--- a/packages/material-ui-lab/src/TreeView/TreeView.js\n+++ b/packages/material-ui-lab/src/TreeView/TreeView.js\n@@ -417,7 +417,9 @@ const TreeView = React.forwardRef(function TreeView(props, ref) {\n const prevChildIds = React.useRef([]);\n const [childrenCalculated, setChildrenCalculated] = React.useState(false);\n React.useEffect(() => {\n- const childIds = React.Children.map(children, child => child.props.nodeId) || [];\n+ const childIds = (React.Children.map(children, child =>\n+ React.isValidElement(child) ? child.props.nodeId : null,\n+ ) || []).filter(id => id != null);\n if (arrayDiff(prevChildIds.current, childIds)) {\n nodeMap.current[-1] = { parent: null, children: childIds };\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-20232", "model_patch": "diff --git a/packages/material-ui-lab/src/TreeView/TreeView.js b/packages/material-ui-lab/src/TreeView/TreeView.js\nindex b60bd1801..d80df9b8b 100644\n--- a/packages/material-ui-lab/src/TreeView/TreeView.js\n+++ b/packages/material-ui-lab/src/TreeView/TreeView.js\n@@ -149,6 +149,9 @@ const TreeView = React.forwardRef(function TreeView(props, ref) {\n Object.keys(firstCharMap.current).forEach((nodeId) => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n+ if (!map) {\n+ return;\n+ }\n const visible = map.parent ? isExpanded(map.parent) : true;\n \n if (visible) {\n@@ -415,9 +418,13 @@ const TreeView = React.forwardRef(function TreeView(props, ref) {\n (id) => {\n const nodes = getNodesToRemove(id);\n const newMap = { ...nodeMap.current };\n+ const newFirstCharMap = { ...firstCharMap.current };\n \n nodes.forEach((node) => {\n const map = newMap[node];\n+ if (newFirstCharMap[node]) {\n+ delete newFirstCharMap[node];\n+ }\n if (map) {\n if (map.parent) {\n const parentMap = newMap[map.parent];\n@@ -431,6 +438,7 @@ const TreeView = React.forwardRef(function TreeView(props, ref) {\n }\n });\n nodeMap.current = newMap;\n+ firstCharMap.current = newFirstCharMap;\n },\n [getNodesToRemove],\n );\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-20252", "model_patch": "diff --git a/packages/material-ui/src/Tooltip/Tooltip.js b/packages/material-ui/src/Tooltip/Tooltip.js\nindex 1d8154194..637e382f9 100644\n--- a/packages/material-ui/src/Tooltip/Tooltip.js\n+++ b/packages/material-ui/src/Tooltip/Tooltip.js\n@@ -280,13 +280,13 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n }\n };\n \n- const handleEnter = (event) => {\n+ const handleEnter = (forward = true) => (event) => {\n const childrenProps = children.props;\n \n if (\n event.type === 'mouseover' &&\n childrenProps.onMouseOver &&\n- event.currentTarget === childNode\n+ forward\n ) {\n childrenProps.onMouseOver(event);\n }\n@@ -326,7 +326,7 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n }\n };\n \n- const handleFocus = (event) => {\n+ const handleFocus = (forward = true) => (event) => {\n // Workaround for https://github.com/facebook/react/issues/7769\n // The autoFocus of React might trigger the event before the componentDidMount.\n // We need to account for this eventuality.\n@@ -336,11 +336,11 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n \n if (isFocusVisible(event)) {\n setChildIsFocusVisible(true);\n- handleEnter(event);\n+ handleEnter()(event);\n }\n \n const childrenProps = children.props;\n- if (childrenProps.onFocus && event.currentTarget === childNode) {\n+ if (childrenProps.onFocus && forward) {\n childrenProps.onFocus(event);\n }\n };\n@@ -362,11 +362,11 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n }, theme.transitions.duration.shortest);\n };\n \n- const handleLeave = (event) => {\n+ const handleLeave = (forward = true) => (event) => {\n const childrenProps = children.props;\n \n if (event.type === 'blur') {\n- if (childrenProps.onBlur && event.currentTarget === childNode) {\n+ if (childrenProps.onBlur && forward) {\n childrenProps.onBlur(event);\n }\n handleBlur(event);\n@@ -375,7 +375,7 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n if (\n event.type === 'mouseleave' &&\n childrenProps.onMouseLeave &&\n- event.currentTarget === childNode\n+ forward\n ) {\n childrenProps.onMouseLeave(event);\n }\n@@ -401,7 +401,7 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n clearTimeout(touchTimer.current);\n event.persist();\n touchTimer.current = setTimeout(() => {\n- handleEnter(event);\n+ handleEnter()(event);\n }, enterTouchDelay);\n };\n \n@@ -455,23 +455,26 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {\n }\n \n if (!disableHoverListener) {\n- childrenProps.onMouseOver = handleEnter;\n- childrenProps.onMouseLeave = handleLeave;\n+ childrenProps.onMouseOver = handleEnter();\n+ childrenProps.onMouseLeave = handleLeave();\n }\n \n if (!disableFocusListener) {\n- childrenProps.onFocus = handleFocus;\n- childrenProps.onBlur = handleLeave;\n+ childrenProps.onFocus = handleFocus();\n+ childrenProps.onBlur = handleLeave();\n }\n \n- const interactiveWrapperListeners = interactive\n- ? {\n- onMouseOver: childrenProps.onMouseOver,\n- onMouseLeave: childrenProps.onMouseLeave,\n- onFocus: childrenProps.onFocus,\n- onBlur: childrenProps.onBlur,\n- }\n- : {};\n+ const interactiveWrapperListeners = {};\n+\n+ if (interactive && !disableHoverListener) {\n+ interactiveWrapperListeners.onMouseOver = handleEnter(false);\n+ interactiveWrapperListeners.onMouseLeave = handleLeave(false);\n+ }\n+\n+ if (interactive && !disableFocusListener) {\n+ interactiveWrapperListeners.onFocus = handleFocus(false);\n+ interactiveWrapperListeners.onBlur = handleLeave(false);\n+ }\n \n if (process.env.NODE_ENV !== 'production') {\n if (children.props.title) {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-20356", "model_patch": "diff --git a/packages/material-ui/src/TablePagination/TablePagination.js b/packages/material-ui/src/TablePagination/TablePagination.js\nindex 019ce8d0b..a630eaa35 100644\n--- a/packages/material-ui/src/TablePagination/TablePagination.js\n+++ b/packages/material-ui/src/TablePagination/TablePagination.js\n@@ -69,6 +69,7 @@ export const styles = (theme) => ({\n const defaultLabelDisplayedRows = ({ from, to, count }) =>\n `${from}-${to === -1 ? count : to} of ${count !== -1 ? count : `more than ${to}`}`;\n const defaultRowsPerPageOptions = [10, 25, 50, 100];\n+let tablePaginationIdCounter = 0;\n \n /**\n * A `TableCell` based component for placing inside `TableFooter` for pagination.\n@@ -96,6 +97,15 @@ const TablePagination = React.forwardRef(function TablePagination(props, ref) {\n ...other\n } = props;\n \n+ const rowsPerPageId = React.useRef(null);\n+\n+ if (rowsPerPageId.current === null) {\n+ rowsPerPageId.current = `mui-table-pagination-${tablePaginationIdCounter++}`;\n+ }\n+\n+ const labelId = SelectProps.labelId || `${rowsPerPageId.current}-label`;\n+ const selectId = SelectProps.id || `${rowsPerPageId.current}-select`;\n+\n let colSpan;\n \n if (Component === TableCell || Component === 'td') {\n@@ -109,12 +119,19 @@ const TablePagination = React.forwardRef(function TablePagination(props, ref) {\n \n
\n {rowsPerPageOptions.length > 1 && (\n- \n+ \n {labelRowsPerPage}\n \n )}\n {rowsPerPageOptions.length > 1 && (\n {\n };\n };\n \n+function isDeleteKeyboardEvent(keyboardEvent) {\n+ return keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete';\n+}\n+\n /**\n * Chips represent complex entities in small blocks, such as a contact.\n */\n@@ -295,19 +299,21 @@ const Chip = React.forwardRef(function Chip(props, ref) {\n }\n };\n \n- const isDeleteKeyboardEvent = (keyboardEvent) =>\n- keyboardEvent.key === 'Backspace' || keyboardEvent.key === 'Delete';\n-\n const handleKeyDown = (event) => {\n+ if (onKeyDown) {\n+ onKeyDown(event);\n+ }\n+\n+ // Ignore events from children of `Chip`.\n+ if (event.currentTarget !== event.target) {\n+ return;\n+ }\n+\n if (isDeleteKeyboardEvent(event)) {\n // will be handled in keyUp, otherwise some browsers\n // might init navigation\n event.preventDefault();\n }\n-\n- if (onKeyDown) {\n- onKeyDown(event);\n- }\n };\n \n const handleKeyUp = (event) => {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-20377", "model_patch": "diff --git a/packages/material-ui/src/MenuItem/MenuItem.d.ts b/packages/material-ui/src/MenuItem/MenuItem.d.ts\nindex a412b4cbc..5d3f5848e 100644\n--- a/packages/material-ui/src/MenuItem/MenuItem.d.ts\n+++ b/packages/material-ui/src/MenuItem/MenuItem.d.ts\n@@ -3,7 +3,7 @@ import { OverridableComponent, OverrideProps } from '../OverridableComponent';\n import { ExtendButtonBase } from '../ButtonBase';\n import { Omit } from '@material-ui/types';\n \n-export type MenuItemClassKey = 'root' | 'gutters' | 'selected' | 'dense';\n+export type MenuItemClassKey = 'root' | 'gutters' | 'selected' | 'disabled' | 'dense';\n \n export type MenuItemTypeMap

= Omit<\n ListItemTypeMap,\ndiff --git a/packages/material-ui/src/MenuItem/MenuItem.js b/packages/material-ui/src/MenuItem/MenuItem.js\nindex fa0eee22a..1dd9066cd 100644\n--- a/packages/material-ui/src/MenuItem/MenuItem.js\n+++ b/packages/material-ui/src/MenuItem/MenuItem.js\n@@ -24,6 +24,8 @@ export const styles = (theme) => ({\n gutters: {},\n /* Styles applied to the root element if `selected={true}`. */\n selected: {},\n+ /* Styles applied to the root element if `disabled={true}`. */\n+ disabled: {},\n /* Styles applied to the root element if dense. */\n dense: {\n ...theme.typography.body2,\n@@ -55,7 +57,7 @@ const MenuItem = React.forwardRef(function MenuItem(props, ref) {\n component={component}\n selected={selected}\n disableGutters={disableGutters}\n- classes={{ dense: classes.dense }}\n+ classes={{ dense: classes.dense, disabled: classes.disabled }}\n className={clsx(\n classes.root,\n {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-20657", "model_patch": "diff --git a/packages/material-ui-lab/src/TreeItem/TreeItem.js b/packages/material-ui-lab/src/TreeItem/TreeItem.js\nindex 6b29a4c90..1387d467a 100644\n--- a/packages/material-ui-lab/src/TreeItem/TreeItem.js\n+++ b/packages/material-ui-lab/src/TreeItem/TreeItem.js\n@@ -126,10 +126,12 @@ const TreeItem = React.forwardRef(function TreeItem(props, ref) {\n mapFirstChar,\n addNodeToNodeMap,\n removeNodeFromNodeMap,\n+ expandOnClick = true,\n } = React.useContext(TreeViewContext);\n \n const nodeRef = React.useRef(null);\n const contentRef = React.useRef(null);\n+ const iconContainerRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, ref);\n \n let icon = iconProp;\n@@ -164,9 +166,11 @@ const TreeItem = React.forwardRef(function TreeItem(props, ref) {\n }\n \n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n+ const isIconClick =\n+ iconContainerRef.current && iconContainerRef.current.contains(event.target);\n \n // If already expanded and trying to toggle selection don't close\n- if (expandable && !(multiple && isExpanded(nodeId))) {\n+ if (expandable && (expandOnClick || isIconClick) && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n \n@@ -386,7 +390,9 @@ const TreeItem = React.forwardRef(function TreeItem(props, ref) {\n onMouseDown={handleMouseDown}\n ref={contentRef}\n >\n-

{icon}
\n+
\n+ {icon}\n+
\n \n {label}\n \ndiff --git a/packages/material-ui-lab/src/TreeView/TreeView.d.ts b/packages/material-ui-lab/src/TreeView/TreeView.d.ts\nindex 7a7db0fc0..9dee6bc4a 100644\n--- a/packages/material-ui-lab/src/TreeView/TreeView.d.ts\n+++ b/packages/material-ui-lab/src/TreeView/TreeView.d.ts\n@@ -29,6 +29,11 @@ export interface TreeViewPropsBase\n * If `true` selection is disabled.\n */\n disableSelection?: boolean;\n+ /**\n+ * If `true` a tree item is expanded or collapsed when clicking its label.\n+ * When `false`, expansion only happens when clicking the icon.\n+ */\n+ expandOnClick?: boolean;\n /**\n * Expanded node ids. (Controlled)\n */\ndiff --git a/packages/material-ui-lab/src/TreeView/TreeView.js b/packages/material-ui-lab/src/TreeView/TreeView.js\nindex 9d9b6449f..5d1226099 100644\n--- a/packages/material-ui-lab/src/TreeView/TreeView.js\n+++ b/packages/material-ui-lab/src/TreeView/TreeView.js\n@@ -48,6 +48,7 @@ const TreeView = React.forwardRef(function TreeView(props, ref) {\n defaultParentIcon,\n defaultSelected = defaultSelectedDefault,\n disableSelection = false,\n+ expandOnClick = true,\n multiSelect = false,\n expanded: expandedProp,\n onNodeSelect,\n@@ -528,6 +529,7 @@ const TreeView = React.forwardRef(function TreeView(props, ref) {\n mapFirstChar,\n addNodeToNodeMap,\n removeNodeFromNodeMap,\n+ expandOnClick,\n }}\n >\n {\n- if (inputValue === '') {\n- handlePopupIndicator(event);\n+ if (!popupOpen && (inputValue === '' || inputValueIsSelectedValue)) {\n+ handleOpen(event);\n }\n };\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-22696", "model_patch": "diff --git a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\nindex a9d8d48de..4a5d02893 100644\n--- a/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\n+++ b/packages/material-ui-lab/src/useAutocomplete/useAutocomplete.js\n@@ -563,7 +563,11 @@ export default function useAutocomplete(props) {\n resetInputValue(event, newValue);\n \n handleValue(event, newValue, reason, { option });\n- if (!disableCloseOnSelect) {\n+ const isCtrlOrShiftClick =\n+ event &&\n+ event.type === 'click' &&\n+ (event.ctrlKey || event.metaKey || event.shiftKey);\n+ if (!disableCloseOnSelect && !(multiple && isCtrlOrShiftClick)) {\n handleClose(event, reason);\n }\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-23229", "model_patch": "diff --git a/packages/material-ui/src/Autocomplete/Autocomplete.js b/packages/material-ui/src/Autocomplete/Autocomplete.js\nindex fc240368b..1a782fbbd 100644\n--- a/packages/material-ui/src/Autocomplete/Autocomplete.js\n+++ b/packages/material-ui/src/Autocomplete/Autocomplete.js\n@@ -392,6 +392,22 @@ const Autocomplete = React.forwardRef(function Autocomplete(props, ref) {\n \n const hasClearIcon = !disableClearable && !disabled;\n const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;\n+ const inputProps = getInputProps();\n+\n+ const handleEndAdornmentMouseDown = (event) => {\n+ let element = event.target;\n+\n+ while (element && element !== event.currentTarget) {\n+ if (element.tagName === 'BUTTON') {\n+ return;\n+ }\n+ element = element.parentElement;\n+ }\n+\n+ if (inputProps.onMouseDown) {\n+ inputProps.onMouseDown(event);\n+ }\n+ };\n \n return (\n \n@@ -420,7 +436,7 @@ const Autocomplete = React.forwardRef(function Autocomplete(props, ref) {\n className: classes.inputRoot,\n startAdornment,\n endAdornment: (\n-
\n+
\n {hasClearIcon ? (\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-23701", "model_patch": "diff --git a/packages/material-ui-lab/src/internal/pickers/date-utils.ts b/packages/material-ui-lab/src/internal/pickers/date-utils.ts\nindex c3d17b570..ebfcb62cd 100644\n--- a/packages/material-ui-lab/src/internal/pickers/date-utils.ts\n+++ b/packages/material-ui-lab/src/internal/pickers/date-utils.ts\n@@ -128,7 +128,8 @@ export const isRangeValid = (\n utils: MuiPickersAdapter,\n range: DateRange | null,\n ): range is NonEmptyDateRange => {\n- return Boolean(range && range[0] && range[1] && utils.isBefore(range[0], range[1]));\n+ // isBefore is exclusive; allow equal start/end by checking that end is not before start.\n+ return Boolean(range && range[0] && range[1] && !utils.isBefore(range[1], range[0]));\n };\n \n export const isWithinRange = (\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-24105", "model_patch": "diff --git a/packages/material-ui-lab/src/TreeItem/TreeItem.js b/packages/material-ui-lab/src/TreeItem/TreeItem.js\nindex 742f6663e..e2bb75ec8 100644\n--- a/packages/material-ui-lab/src/TreeItem/TreeItem.js\n+++ b/packages/material-ui-lab/src/TreeItem/TreeItem.js\n@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';\n import { elementTypeAcceptingRef } from '@material-ui/utils';\n import Collapse from '@material-ui/core/Collapse';\n import { alpha, withStyles } from '@material-ui/core/styles';\n-import { ownerDocument, useForkRef, unsupportedProp } from '@material-ui/core/utils';\n+import { ownerDocument, ownerWindow, useForkRef, unsupportedProp } from '@material-ui/core/utils';\n import TreeViewContext from '../TreeView/TreeViewContext';\n import { DescendantProvider, useDescendant } from '../TreeView/descendants';\n import TreeItemContent from './TreeItemContent';\n@@ -223,7 +223,57 @@ const TreeItem = React.forwardRef(function TreeItem(props, ref) {\n function handleFocus(event) {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n- ownerDocument(event.target).getElementById(treeId).focus();\n+ const treeRoot = ownerDocument(event.target).getElementById(treeId);\n+ if (treeRoot) {\n+ const win = ownerWindow(event.target);\n+ const scrollParents = [];\n+ let parent = treeRoot.parentElement;\n+\n+ while (parent) {\n+ const { overflow, overflowX, overflowY } = win.getComputedStyle(parent);\n+ if (/(auto|scroll)/.test(overflow + overflowX + overflowY)) {\n+ scrollParents.push(parent);\n+ }\n+ parent = parent.parentElement;\n+ }\n+\n+ const scrollPositions = scrollParents.map((node) => ({\n+ node,\n+ scrollTop: node.scrollTop,\n+ scrollLeft: node.scrollLeft,\n+ }));\n+\n+ const doc = ownerDocument(event.target);\n+ const docEl = doc.documentElement;\n+ const body = doc.body;\n+ const docScrollTop = win.pageYOffset != null ? win.pageYOffset : docEl.scrollTop || body.scrollTop;\n+ const docScrollLeft = win.pageXOffset != null ? win.pageXOffset : docEl.scrollLeft || body.scrollLeft;\n+\n+ try {\n+ treeRoot.focus({ preventScroll: true });\n+ } catch (error) {\n+ treeRoot.focus();\n+ }\n+\n+ scrollPositions.forEach(({ node, scrollTop, scrollLeft }) => {\n+ node.scrollTop = scrollTop;\n+ node.scrollLeft = scrollLeft;\n+ });\n+\n+ if (docEl) {\n+ docEl.scrollTop = docScrollTop;\n+ docEl.scrollLeft = docScrollLeft;\n+ }\n+\n+ if (body) {\n+ body.scrollTop = docScrollTop;\n+ body.scrollLeft = docScrollLeft;\n+ }\n+\n+ if (win.scrollTo) {\n+ win.scrollTo(docScrollLeft, docScrollTop);\n+ }\n+ }\n }\n \n const unfocusable = !disabledItemsFocusable && disabled;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-24213", "model_patch": "diff --git a/packages/material-ui/src/useAutocomplete/useAutocomplete.js b/packages/material-ui/src/useAutocomplete/useAutocomplete.js\nindex a47295e97..4510f826a 100644\n--- a/packages/material-ui/src/useAutocomplete/useAutocomplete.js\n+++ b/packages/material-ui/src/useAutocomplete/useAutocomplete.js\n@@ -1005,7 +1005,7 @@ export default function useAutocomplete(props) {\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n \n return {\n- key: index,\n+ key: `${getOptionLabel(option)}-${index}`,\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-24742", "model_patch": "diff --git a/packages/material-ui/src/InputAdornment/InputAdornment.js b/packages/material-ui/src/InputAdornment/InputAdornment.js\nindex 4d0407793..a012a41b9 100644\n--- a/packages/material-ui/src/InputAdornment/InputAdornment.js\n+++ b/packages/material-ui/src/InputAdornment/InputAdornment.js\n@@ -90,7 +90,15 @@ const InputAdornment = React.forwardRef(function InputAdornment(props, ref) {\n {typeof children === 'string' && !disableTypography ? (\n {children}\n ) : (\n- children\n+ \n+ {/* To have the correct vertical alignment baseline */}\n+ {position === 'start' ? (\n+ // notranslate needed while Google Translate will not fix zero-width space issue\n+ /* eslint-disable-next-line react/no-danger */\n+ \n+ ) : null}\n+ {children}\n+ \n )}\n \n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-25072", "model_patch": "diff --git a/packages/material-ui/src/Button/Button.js b/packages/material-ui/src/Button/Button.js\nindex 11a700c67..7b68398eb 100644\n--- a/packages/material-ui/src/Button/Button.js\n+++ b/packages/material-ui/src/Button/Button.js\n@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';\n import clsx from 'clsx';\n import { deepmerge } from '@material-ui/utils';\n import { unstable_composeClasses as composeClasses } from '@material-ui/unstyled';\n-import experimentalStyled from '../styles/experimentalStyled';\n+import experimentalStyled, { shouldForwardProp } from '../styles/experimentalStyled';\n import useThemeProps from '../styles/useThemeProps';\n import { alpha } from '../styles/colorManipulator';\n import ButtonBase from '../ButtonBase';\n@@ -52,7 +52,12 @@ const useUtilityClasses = (styleProps) => {\n endIcon: ['endIcon', `iconSize${capitalize(size)}`],\n };\n \n- return composeClasses(slots, getButtonUtilityClass, classes);\n+ const composedClasses = composeClasses(slots, getButtonUtilityClass, classes);\n+\n+ return {\n+ ...classes, // forward the focused, disabled, etc. classes to the ButtonBase\n+ ...composedClasses,\n+ };\n };\n \n const commonIconStyles = (styleProps) => ({\n@@ -75,7 +80,7 @@ const commonIconStyles = (styleProps) => ({\n \n const ButtonRoot = experimentalStyled(\n ButtonBase,\n- {},\n+ { shouldForwardProp: (prop) => shouldForwardProp(prop) || prop === 'classes' },\n {\n name: 'MuiButton',\n slot: 'Root',\n@@ -302,7 +307,6 @@ const Button = React.forwardRef(function Button(inProps, ref) {\n const props = useThemeProps({ props: inProps, name: 'MuiButton' });\n const {\n children,\n- className,\n color = 'primary',\n component = 'button',\n disabled = false,\n@@ -347,7 +351,6 @@ const Button = React.forwardRef(function Button(inProps, ref) {\n \n return (\n \n {/*\n * The inner is required to vertically align the children.\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-25874", "model_patch": "diff --git a/packages/material-ui-lab/src/LoadingButton/LoadingButton.d.ts b/packages/material-ui-lab/src/LoadingButton/LoadingButton.d.ts\nindex 5edb30d84..899693482 100644\n--- a/packages/material-ui-lab/src/LoadingButton/LoadingButton.d.ts\n+++ b/packages/material-ui-lab/src/LoadingButton/LoadingButton.d.ts\n@@ -12,7 +12,7 @@ export type LoadingButtonTypeMap<\n classes?: {\n /** Styles applied to the root element. */\n root?: string;\n- /** Styles applied to the root element if `pending={true}`. */\n+ /** Styles applied to the root element if `loading={true}`. */\n pending?: string;\n /** Styles applied to the pendingIndicator element. */\n pendingIndicator?: string;\n@@ -22,18 +22,18 @@ export type LoadingButtonTypeMap<\n pendingIndicatorStart?: string;\n /** Styles applied to the pendingIndicator element if `pendingPosition=\"end\"`. */\n pendingIndicatorEnd?: string;\n- /** Styles applied to the endIcon element if `pending={true}` and `pendingPosition=\"end\"`. */\n+ /** Styles applied to the endIcon element if `loading={true}` and `pendingPosition=\"end\"`. */\n endIconPendingEnd?: string;\n- /** Styles applied to the startIcon element if `pending={true}` and `pendingPosition=\"start\"`. */\n+ /** Styles applied to the startIcon element if `loading={true}` and `pendingPosition=\"start\"`. */\n startIconPendingStart?: string;\n- /** Styles applied to the label element if `pending={true}` and `pendingPosition=\"center\"`. */\n+ /** Styles applied to the label element if `loading={true}` and `pendingPosition=\"center\"`. */\n labelPendingCenter?: string;\n };\n /**\n * If `true`, the pending indicator is shown.\n * @default false\n */\n- pending?: boolean;\n+ loading?: boolean;\n /**\n * Element placed before the children if the button is in pending state.\n * @default \ndiff --git a/packages/material-ui-lab/src/LoadingButton/LoadingButton.js b/packages/material-ui-lab/src/LoadingButton/LoadingButton.js\nindex dc35fd06d..f8dcf6154 100644\n--- a/packages/material-ui-lab/src/LoadingButton/LoadingButton.js\n+++ b/packages/material-ui-lab/src/LoadingButton/LoadingButton.js\n@@ -10,7 +10,7 @@ import CircularProgress from '@material-ui/core/CircularProgress';\n export const styles = () => ({\n /* Styles applied to the root element. */\n root: {},\n- /* Styles applied to the root element if `pending={true}`. */\n+ /* Styles applied to the root element if `loading={true}`. */\n pending: {},\n /* Styles applied to the pendingIndicator element. */\n pendingIndicator: {\n@@ -31,15 +31,15 @@ export const styles = () => ({\n pendingIndicatorEnd: {\n right: 14,\n },\n- /* Styles applied to the endIcon element if `pending={true}` and `pendingPosition=\"end\"`. */\n+ /* Styles applied to the endIcon element if `loading={true}` and `pendingPosition=\"end\"`. */\n endIconPendingEnd: {\n visibility: 'hidden',\n },\n- /* Styles applied to the startIcon element if `pending={true}` and `pendingPosition=\"start\"`. */\n+ /* Styles applied to the startIcon element if `loading={true}` and `pendingPosition=\"start\"`. */\n startIconPendingStart: {\n visibility: 'hidden',\n },\n- /* Styles applied to the label element if `pending={true}` and `pendingPosition=\"center\"`. */\n+ /* Styles applied to the label element if `loading={true}` and `pendingPosition=\"center\"`. */\n labelPendingCenter: {\n visibility: 'hidden',\n },\n@@ -53,31 +53,33 @@ const LoadingButton = React.forwardRef(function LoadingButton(props, ref) {\n classes,\n className,\n disabled = false,\n+ loading: loadingProp,\n pending = false,\n pendingIndicator = PendingIndicator,\n pendingPosition = 'center',\n ...other\n } = props;\n+ const loading = loadingProp !== undefined ? loadingProp : pending;\n \n return (\n \n- {pending && (\n+ {loading && (\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-26061", "model_patch": "diff --git a/packages/material-ui/src/Tabs/Tabs.js b/packages/material-ui/src/Tabs/Tabs.js\nindex bfc155861..b18be4c37 100644\n--- a/packages/material-ui/src/Tabs/Tabs.js\n+++ b/packages/material-ui/src/Tabs/Tabs.js\n@@ -587,6 +587,51 @@ const Tabs = React.forwardRef(function Tabs(inProps, ref) {\n });\n });\n \n+ const getNextTab = (list, item) => {\n+ if (item === null || item === list) {\n+ return list.firstChild;\n+ }\n+ if (item && item.nextElementSibling) {\n+ return item.nextElementSibling;\n+ }\n+ return list.firstChild;\n+ };\n+\n+ const getPreviousTab = (list, item) => {\n+ if (item === null || item === list) {\n+ return list.lastChild;\n+ }\n+ if (item && item.previousElementSibling) {\n+ return item.previousElementSibling;\n+ }\n+ return list.lastChild;\n+ };\n+\n+ const moveFocus = (list, currentFocus, traversalFunction) => {\n+ let wrappedOnce = false;\n+ let nextFocus = traversalFunction(list, currentFocus);\n+\n+ while (nextFocus) {\n+ if (nextFocus === list.firstChild) {\n+ if (wrappedOnce) {\n+ return;\n+ }\n+ wrappedOnce = true;\n+ }\n+\n+ if (\n+ !nextFocus.hasAttribute('tabindex') ||\n+ nextFocus.disabled ||\n+ nextFocus.getAttribute('aria-disabled') === 'true'\n+ ) {\n+ nextFocus = traversalFunction(list, nextFocus);\n+ } else {\n+ nextFocus.focus();\n+ return;\n+ }\n+ }\n+ };\n+\n const handleKeyDown = (event) => {\n const { target } = event;\n // Keyboard navigation assumes that [role=\"tab\"] are siblings\n@@ -596,8 +641,11 @@ const Tabs = React.forwardRef(function Tabs(inProps, ref) {\n if (role !== 'tab') {\n return;\n }\n+ const list = tabListRef.current;\n+ if (!list) {\n+ return;\n+ }\n \n- let newFocusTarget = null;\n let previousItemKey = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n let nextItemKey = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n if (orientation === 'horizontal' && isRtl) {\n@@ -608,25 +656,24 @@ const Tabs = React.forwardRef(function Tabs(inProps, ref) {\n \n switch (event.key) {\n case previousItemKey:\n- newFocusTarget = target.previousElementSibling || tabListRef.current.lastChild;\n+ moveFocus(list, target, getPreviousTab);\n+ event.preventDefault();\n break;\n case nextItemKey:\n- newFocusTarget = target.nextElementSibling || tabListRef.current.firstChild;\n+ moveFocus(list, target, getNextTab);\n+ event.preventDefault();\n break;\n case 'Home':\n- newFocusTarget = tabListRef.current.firstChild;\n+ moveFocus(list, null, getNextTab);\n+ event.preventDefault();\n break;\n case 'End':\n- newFocusTarget = tabListRef.current.lastChild;\n+ moveFocus(list, null, getPreviousTab);\n+ event.preventDefault();\n break;\n default:\n break;\n }\n-\n- if (newFocusTarget !== null) {\n- newFocusTarget.focus();\n- event.preventDefault();\n- }\n };\n \n const conditionalElements = getConditionalElements();\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-26098", "model_patch": "diff --git a/packages/material-ui/src/TablePagination/TablePagination.js b/packages/material-ui/src/TablePagination/TablePagination.js\nindex 92e6f047a..83c7f5828 100644\n--- a/packages/material-ui/src/TablePagination/TablePagination.js\n+++ b/packages/material-ui/src/TablePagination/TablePagination.js\n@@ -119,7 +119,7 @@ const TablePaginationMenuItem = experimentalStyled(\n slot: 'MenuItem',\n overridesResolver: (props, styles) => styles.menuItem,\n },\n-)();\n+)({});\n \n const TablePaginationDisplayedRows = experimentalStyled(\n 'p',\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-26170", "model_patch": "diff --git a/packages/material-ui-lab/src/TabList/TabList.js b/packages/material-ui-lab/src/TabList/TabList.js\nindex 95a1783db..45a570d30 100644\n--- a/packages/material-ui-lab/src/TabList/TabList.js\n+++ b/packages/material-ui-lab/src/TabList/TabList.js\n@@ -10,6 +10,10 @@ const TabList = React.forwardRef(function TabList(props, ref) {\n throw new TypeError('No TabContext provided');\n }\n const children = React.Children.map(childrenProp, (child) => {\n+ if (!React.isValidElement(child)) {\n+ return null;\n+ }\n+\n return React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-26623", "model_patch": "diff --git a/packages/material-ui/src/Slide/Slide.d.ts b/packages/material-ui/src/Slide/Slide.d.ts\nindex f9fcdfd2f..910b8da5c 100644\n--- a/packages/material-ui/src/Slide/Slide.d.ts\n+++ b/packages/material-ui/src/Slide/Slide.d.ts\n@@ -12,6 +12,11 @@ export interface SlideProps extends TransitionProps {\n * A single child content element.\n */\n children?: React.ReactElement;\n+ /**\n+ * The container element used for calculating the translate values.\n+ * @default window\n+ */\n+ container?: Element | (() => Element);\n /**\n * Direction the child node will enter from.\n * @default 'down'\ndiff --git a/packages/material-ui/src/Slide/Slide.js b/packages/material-ui/src/Slide/Slide.js\nindex f5c3f266f..cb5020083 100644\n--- a/packages/material-ui/src/Slide/Slide.js\n+++ b/packages/material-ui/src/Slide/Slide.js\n@@ -1,7 +1,7 @@\n import * as React from 'react';\n import PropTypes from 'prop-types';\n import { Transition } from 'react-transition-group';\n-import { elementAcceptingRef } from '@material-ui/utils';\n+import { elementAcceptingRef, HTMLElementType } from '@material-ui/utils';\n import debounce from '../utils/debounce';\n import useForkRef from '../utils/useForkRef';\n import useTheme from '../styles/useTheme';\n@@ -11,9 +11,29 @@ import { ownerWindow } from '../utils';\n \n // Translate the node so it can't be seen on the screen.\n // Later, we're going to translate the node back to its original location with `none`.\n-function getTranslateValue(direction, node) {\n+function resolveContainer(containerProp, node) {\n+ if (containerProp) {\n+ return typeof containerProp === 'function' ? containerProp() : containerProp;\n+ }\n+\n+ return ownerWindow(node);\n+}\n+\n+function getTranslateValue(direction, node, containerProp) {\n const rect = node.getBoundingClientRect();\n const containerWindow = ownerWindow(node);\n+ const container = resolveContainer(containerProp, node) || containerWindow;\n+ const isWindow = container && container.window === container;\n+ const containerRect = isWindow\n+ ? {\n+ top: 0,\n+ left: 0,\n+ width: containerWindow.innerWidth,\n+ height: containerWindow.innerHeight,\n+ }\n+ : container.getBoundingClientRect();\n+ const containerWidth = containerRect.width || containerRect.right - containerRect.left;\n+ const containerHeight = containerRect.height || containerRect.bottom - containerRect.top;\n let transform;\n \n if (node.fakeTransform) {\n@@ -35,23 +55,23 @@ function getTranslateValue(direction, node) {\n }\n \n if (direction === 'left') {\n- return `translateX(${containerWindow.innerWidth}px) translateX(${offsetX - rect.left}px)`;\n+ return `translateX(${containerWidth}px) translateX(${offsetX - rect.left + containerRect.left}px)`;\n }\n \n if (direction === 'right') {\n- return `translateX(-${rect.left + rect.width - offsetX}px)`;\n+ return `translateX(-${rect.left - containerRect.left + rect.width - offsetX}px)`;\n }\n \n if (direction === 'up') {\n- return `translateY(${containerWindow.innerHeight}px) translateY(${offsetY - rect.top}px)`;\n+ return `translateY(${containerHeight}px) translateY(${offsetY - rect.top + containerRect.top}px)`;\n }\n \n // direction === 'down'\n- return `translateY(-${rect.top + rect.height - offsetY}px)`;\n+ return `translateY(-${rect.top - containerRect.top + rect.height - offsetY}px)`;\n }\n \n-export function setTranslateValue(direction, node) {\n- const transform = getTranslateValue(direction, node);\n+export function setTranslateValue(direction, node, container) {\n+ const transform = getTranslateValue(direction, node, container);\n \n if (transform) {\n node.style.webkitTransform = transform;\n@@ -77,6 +97,7 @@ const Slide = React.forwardRef(function Slide(props, ref) {\n const {\n appear = true,\n children,\n+ container,\n direction = 'down',\n easing: easingProp = defaultEasing,\n in: inProp,\n@@ -110,7 +131,7 @@ const Slide = React.forwardRef(function Slide(props, ref) {\n };\n \n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n- setTranslateValue(direction, node);\n+ setTranslateValue(direction, node, container);\n reflow(node);\n \n if (onEnter) {\n@@ -155,7 +176,7 @@ const Slide = React.forwardRef(function Slide(props, ref) {\n node.style.webkitTransition = theme.transitions.create('-webkit-transform', transitionProps);\n node.style.transition = theme.transitions.create('transform', transitionProps);\n \n- setTranslateValue(direction, node);\n+ setTranslateValue(direction, node, container);\n \n if (onExit) {\n onExit(node);\n@@ -174,9 +195,9 @@ const Slide = React.forwardRef(function Slide(props, ref) {\n \n const updatePosition = React.useCallback(() => {\n if (childrenRef.current) {\n- setTranslateValue(direction, childrenRef.current);\n+ setTranslateValue(direction, childrenRef.current, container);\n }\n- }, [direction]);\n+ }, [container, direction]);\n \n React.useEffect(() => {\n // Skip configuration where the position is screen size invariant.\n@@ -186,7 +207,7 @@ const Slide = React.forwardRef(function Slide(props, ref) {\n \n const handleResize = debounce(() => {\n if (childrenRef.current) {\n- setTranslateValue(direction, childrenRef.current);\n+ setTranslateValue(direction, childrenRef.current, container);\n }\n });\n \n@@ -196,7 +217,7 @@ const Slide = React.forwardRef(function Slide(props, ref) {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n };\n- }, [direction, inProp]);\n+ }, [container, direction, inProp]);\n \n React.useEffect(() => {\n if (!inProp) {\n@@ -255,6 +276,11 @@ Slide.propTypes /* remove-proptypes */ = {\n * @default 'down'\n */\n direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n+ /**\n+ * The container element used for calculating the translate values.\n+ * @default window\n+ */\n+ container: PropTypes.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-26746", "model_patch": "diff --git a/docs/src/pages/customization/breakpoints/breakpoints-de.md b/docs/src/pages/customization/breakpoints/breakpoints-de.md\nindex fb4f45e60..3134a998f 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints-de.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints-de.md\n@@ -80,9 +80,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n })\ndiff --git a/docs/src/pages/customization/breakpoints/breakpoints-es.md b/docs/src/pages/customization/breakpoints/breakpoints-es.md\nindex b9998bae5..5a02dd2b6 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints-es.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints-es.md\n@@ -80,9 +80,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n })\ndiff --git a/docs/src/pages/customization/breakpoints/breakpoints-fr.md b/docs/src/pages/customization/breakpoints/breakpoints-fr.md\nindex 89d0d86ce..ba5790c2e 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints-fr.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints-fr.md\n@@ -80,9 +80,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n })\ndiff --git a/docs/src/pages/customization/breakpoints/breakpoints-ja.md b/docs/src/pages/customization/breakpoints/breakpoints-ja.md\nindex 966ce8d07..371099b43 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints-ja.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints-ja.md\n@@ -80,9 +80,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n })\ndiff --git a/docs/src/pages/customization/breakpoints/breakpoints-ru.md b/docs/src/pages/customization/breakpoints/breakpoints-ru.md\nindex b68fad185..c7ce664f8 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints-ru.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints-ru.md\n@@ -80,9 +80,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n })\ndiff --git a/docs/src/pages/customization/breakpoints/breakpoints-zh.md b/docs/src/pages/customization/breakpoints/breakpoints-zh.md\nindex 941d24d05..906178c74 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints-zh.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints-zh.md\n@@ -90,9 +90,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n });\ndiff --git a/docs/src/pages/customization/breakpoints/breakpoints.md b/docs/src/pages/customization/breakpoints/breakpoints.md\nindex 97fb95947..7a69b573a 100644\n--- a/docs/src/pages/customization/breakpoints/breakpoints.md\n+++ b/docs/src/pages/customization/breakpoints/breakpoints.md\n@@ -77,9 +77,9 @@ const theme = createTheme({\n values: {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n },\n });\ndiff --git a/packages/material-ui-system/src/breakpoints.js b/packages/material-ui-system/src/breakpoints.js\nindex 8dd221eea..b833bc0b9 100644\n--- a/packages/material-ui-system/src/breakpoints.js\n+++ b/packages/material-ui-system/src/breakpoints.js\n@@ -7,9 +7,9 @@ import merge from './merge';\n const values = {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n };\n \n const defaultBreakpoints = {\ndiff --git a/packages/material-ui-system/src/createTheme/createBreakpoints.js b/packages/material-ui-system/src/createTheme/createBreakpoints.js\nindex 32c3f6e1f..628627306 100644\n--- a/packages/material-ui-system/src/createTheme/createBreakpoints.js\n+++ b/packages/material-ui-system/src/createTheme/createBreakpoints.js\n@@ -10,9 +10,9 @@ export default function createBreakpoints(breakpoints) {\n values = {\n xs: 0,\n sm: 600,\n- md: 960,\n- lg: 1280,\n- xl: 1920,\n+ md: 905,\n+ lg: 1240,\n+ xl: 1440,\n },\n unit = 'px',\n step = 5,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-26807", "model_patch": "diff --git a/packages/material-ui/src/StepLabel/StepLabel.d.ts b/packages/material-ui/src/StepLabel/StepLabel.d.ts\nindex 521ffd315..7193d5837 100644\n--- a/packages/material-ui/src/StepLabel/StepLabel.d.ts\n+++ b/packages/material-ui/src/StepLabel/StepLabel.d.ts\n@@ -2,6 +2,7 @@ import * as React from 'react';\n import { SxProps } from '@material-ui/system';\n import { InternalStandardProps as StandardProps } from '..';\n import { StepIconProps } from '../StepIcon';\n+import { TypographyProps } from '../Typography';\n import { Theme } from '../styles';\n import { StepLabelClasses } from './stepLabelClasses';\n \n@@ -35,6 +36,10 @@ export interface StepLabelProps extends StandardProps;\n+ /**\n+ * Props applied to the Typography component that wraps the label.\n+ */\n+ TypographyProps?: TypographyProps;\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\ndiff --git a/packages/material-ui/src/StepLabel/StepLabel.js b/packages/material-ui/src/StepLabel/StepLabel.js\nindex e03382fbe..20fd68078 100644\n--- a/packages/material-ui/src/StepLabel/StepLabel.js\n+++ b/packages/material-ui/src/StepLabel/StepLabel.js\n@@ -124,6 +124,7 @@ const StepLabel = React.forwardRef(function StepLabel(inProps, ref) {\n optional,\n StepIconComponent: StepIconComponentProp,\n StepIconProps,\n+ TypographyProps,\n ...other\n } = props;\n \n@@ -148,6 +149,7 @@ const StepLabel = React.forwardRef(function StepLabel(inProps, ref) {\n };\n \n const classes = useUtilityClasses(styleProps);\n+ const { className: typographyClassName, ...typographyProps } = TypographyProps || {};\n \n return (\n \n {children}\n@@ -223,6 +226,10 @@ StepLabel.propTypes /* remove-proptypes */ = {\n * Props applied to the [`StepIcon`](/api/step-icon/) element.\n */\n StepIconProps: PropTypes.object,\n+ /**\n+ * Props applied to the Typography component that wraps the label.\n+ */\n+ TypographyProps: PropTypes.object,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-27312", "model_patch": "diff --git a/packages/material-ui/src/useAutocomplete/useAutocomplete.js b/packages/material-ui/src/useAutocomplete/useAutocomplete.js\nindex 31f88be71..4e128a999 100644\n--- a/packages/material-ui/src/useAutocomplete/useAutocomplete.js\n+++ b/packages/material-ui/src/useAutocomplete/useAutocomplete.js\n@@ -73,6 +73,7 @@ export default function useAutocomplete(props) {\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n+ disabled,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n@@ -812,7 +813,7 @@ export default function useAutocomplete(props) {\n }\n };\n \n- const handleBlur = (event) => {\n+ const handleBlur = useEventCallback((event) => {\n // Ignore the event when using the scrollbar with IE11\n if (\n listboxRef.current !== null &&\n@@ -835,7 +836,13 @@ export default function useAutocomplete(props) {\n }\n \n handleClose(event, 'blur');\n- };\n+ });\n+\n+ React.useEffect(() => {\n+ if (disabled && focused) {\n+ handleBlur({ target: inputRef.current });\n+ }\n+ }, [disabled, focused, handleBlur]);\n \n const handleInputChange = (event) => {\n const newValue = event.target.value;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-28186", "model_patch": "diff --git a/packages/mui-material/src/useTouchRipple/useTouchRipple.ts b/packages/mui-material/src/useTouchRipple/useTouchRipple.ts\nindex 5f444d8e5..545a0a01d 100644\n--- a/packages/mui-material/src/useTouchRipple/useTouchRipple.ts\n+++ b/packages/mui-material/src/useTouchRipple/useTouchRipple.ts\n@@ -35,12 +35,21 @@ const useTouchRipple = (props: UseTouchRippleProps) => {\n rippleRef,\n } = props;\n \n+ const prevFocusVisibleRef = React.useRef(focusVisible);\n+\n React.useEffect(() => {\n if (focusVisible && !disableFocusRipple && !disableRipple) {\n rippleRef.current?.pulsate();\n }\n }, [rippleRef, focusVisible, disableFocusRipple, disableRipple]);\n \n+ React.useEffect(() => {\n+ if (prevFocusVisibleRef.current && !focusVisible) {\n+ rippleRef.current?.stop({ type: 'blur' } as React.SyntheticEvent);\n+ }\n+ prevFocusVisibleRef.current = focusVisible;\n+ }, [focusVisible, rippleRef]);\n+\n function useRippleHandler(\n rippleAction: keyof TouchRippleActions,\n eventCallback?: (event: React.SyntheticEvent) => void,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-28190", "model_patch": "diff --git a/packages/mui-core/src/AutocompleteUnstyled/useAutocomplete.js b/packages/mui-core/src/AutocompleteUnstyled/useAutocomplete.js\nindex 1d34b6b50..f8c10ba35 100644\n--- a/packages/mui-core/src/AutocompleteUnstyled/useAutocomplete.js\n+++ b/packages/mui-core/src/AutocompleteUnstyled/useAutocomplete.js\n@@ -185,8 +185,13 @@ export default function useAutocomplete(props) {\n return;\n }\n \n+ // Only reset the input's value when freeSolo if the component's value changes.\n+ if (freeSolo && !valueChange) {\n+ return;\n+ }\n+\n resetInputValue(null, value);\n- }, [value, resetInputValue, focused, prevValue]);\n+ }, [value, resetInputValue, focused, prevValue, freeSolo]);\n \n const [open, setOpenState] = useControlled({\n controlled: openProp,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-28813", "model_patch": "diff --git a/packages/mui-system/src/spacing.js b/packages/mui-system/src/spacing.js\nindex 2c8ccba9f..455c50bea 100644\n--- a/packages/mui-system/src/spacing.js\n+++ b/packages/mui-system/src/spacing.js\n@@ -59,6 +59,12 @@ const marginKeys = [\n 'marginLeft',\n 'marginX',\n 'marginY',\n+ 'marginInline',\n+ 'marginInlineStart',\n+ 'marginInlineEnd',\n+ 'marginBlock',\n+ 'marginBlockStart',\n+ 'marginBlockEnd',\n ];\n \n const paddingKeys = [\n@@ -76,6 +82,12 @@ const paddingKeys = [\n 'paddingLeft',\n 'paddingX',\n 'paddingY',\n+ 'paddingInline',\n+ 'paddingInlineStart',\n+ 'paddingInlineEnd',\n+ 'paddingBlock',\n+ 'paddingBlockStart',\n+ 'paddingBlockEnd',\n ];\n \n const spacingKeys = [...marginKeys, ...paddingKeys];\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-29023", "model_patch": "diff --git a/packages/mui-material/src/Tooltip/Tooltip.d.ts b/packages/mui-material/src/Tooltip/Tooltip.d.ts\nindex bad0ac0dd..999e2eefd 100644\n--- a/packages/mui-material/src/Tooltip/Tooltip.d.ts\n+++ b/packages/mui-material/src/Tooltip/Tooltip.d.ts\n@@ -37,7 +37,7 @@ export interface TooltipProps extends StandardProps & TooltipComponentsPropsOverrides;\n transition?: TransitionProps & TooltipComponentsPropsOverrides;\n tooltip?: React.HTMLProps &\n MUIStyledCommonProps &\ndiff --git a/packages/mui-material/src/Tooltip/Tooltip.js b/packages/mui-material/src/Tooltip/Tooltip.js\nindex 920e22f23..89d8ae155 100644\n--- a/packages/mui-material/src/Tooltip/Tooltip.js\n+++ b/packages/mui-material/src/Tooltip/Tooltip.js\n@@ -679,7 +679,7 @@ const Tooltip = React.forwardRef(function Tooltip(inProps, ref) {\n transition\n {...interactiveWrapperListeners}\n {...popperProps}\n- className={clsx(classes.popper, componentsProps.popper?.className)}\n+ className={clsx(classes.popper, popperProps.className)}\n popperOptions={popperOptions}\n >\n {({ TransitionProps: TransitionPropsInner }) => (\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-34138", "model_patch": "diff --git a/packages/mui-material/src/Step/Step.d.ts b/packages/mui-material/src/Step/Step.d.ts\nindex ab2ba3a33..dbfdcf994 100644\n--- a/packages/mui-material/src/Step/Step.d.ts\n+++ b/packages/mui-material/src/Step/Step.d.ts\n@@ -3,7 +3,7 @@ import { SxProps } from '@mui/system';\n import { InternalStandardProps as StandardProps, Theme } from '..';\n import { StepClasses } from './stepClasses';\n \n-export interface StepProps extends StandardProps> {\n+export interface StepProps extends StandardProps> {\n /**\n * Sets the step as active. Is passed to child components.\n */\n@@ -16,6 +16,11 @@ export interface StepProps extends StandardProps;\n+ /**\n+ * The component used for the root node.\n+ * Either a string to use a HTML element or a component.\n+ */\n+ component?: React.ElementType;\n /**\n * Mark the step as completed. Is passed to child components.\n */\ndiff --git a/packages/mui-material/src/Step/Step.js b/packages/mui-material/src/Step/Step.js\nindex df0c6ab66..b3f76c8ad 100644\n--- a/packages/mui-material/src/Step/Step.js\n+++ b/packages/mui-material/src/Step/Step.js\n@@ -19,7 +19,7 @@ const useUtilityClasses = (ownerState) => {\n return composeClasses(slots, getStepUtilityClass, classes);\n };\n \n-const StepRoot = styled('div', {\n+const StepRoot = styled('li', {\n name: 'MuiStep',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n@@ -43,12 +43,21 @@ const StepRoot = styled('div', {\n }),\n }));\n \n+const StepConnectorWrapper = styled('li')({\n+ display: 'flex',\n+ flex: '1 1 auto',\n+ listStyle: 'none',\n+ margin: 0,\n+ padding: 0,\n+});\n+\n const Step = React.forwardRef(function Step(inProps, ref) {\n const props = useThemeProps({ props: inProps, name: 'MuiStep' });\n const {\n active: activeProp,\n children,\n className,\n+ component: componentProp,\n completed: completedProp,\n disabled: disabledProp,\n expanded = false,\n@@ -57,7 +66,7 @@ const Step = React.forwardRef(function Step(inProps, ref) {\n ...other\n } = props;\n \n- const { activeStep, connector, alternativeLabel, orientation, nonLinear } =\n+ const { activeStep, connector, alternativeLabel, orientation, nonLinear, component: stepperComponent } =\n React.useContext(StepperContext);\n \n let [active = false, completed = false, disabled = false] = [\n@@ -79,9 +88,13 @@ const Step = React.forwardRef(function Step(inProps, ref) {\n [index, last, expanded, active, completed, disabled],\n );\n \n+ const isList = stepperComponent === 'ol' || stepperComponent === 'ul';\n+ const component = componentProp ?? (isList ? 'li' : 'div');\n+\n const ownerState = {\n ...props,\n active,\n+ component,\n orientation,\n alternativeLabel,\n completed,\n@@ -95,6 +108,7 @@ const Step = React.forwardRef(function Step(inProps, ref) {\n \n@@ -103,11 +117,22 @@ const Step = React.forwardRef(function Step(inProps, ref) {\n \n );\n \n+ const connectorNode =\n+ connector && !alternativeLabel && index !== 0\n+ ? isList\n+ ? (\n+ \n+ {connector}\n+ \n+ )\n+ : connector\n+ : null;\n+\n return (\n \n- {connector && !alternativeLabel && index !== 0 ? (\n+ {connectorNode ? (\n \n- {connector}\n+ {connectorNode}\n {newChildren}\n \n ) : (\n@@ -138,6 +163,11 @@ Step.propTypes /* remove-proptypes */ = {\n * @ignore\n */\n className: PropTypes.string,\n+ /**\n+ * The component used for the root node.\n+ * Either a string to use a HTML element or a component.\n+ */\n+ component: PropTypes.elementType,\n /**\n * Mark the step as completed. Is passed to child components.\n */\ndiff --git a/packages/mui-material/src/Stepper/Stepper.d.ts b/packages/mui-material/src/Stepper/Stepper.d.ts\nindex 1efa284cf..9d98bb25d 100644\n--- a/packages/mui-material/src/Stepper/Stepper.d.ts\n+++ b/packages/mui-material/src/Stepper/Stepper.d.ts\n@@ -28,6 +28,11 @@ export interface StepperProps extends StandardProps {\n * Override or extend the styles applied to the component.\n */\n classes?: Partial;\n+ /**\n+ * The component used for the root node.\n+ * Either a string to use a HTML element or a component.\n+ */\n+ component?: React.ElementType;\n /**\n * An element to be placed between each step.\n * @default \ndiff --git a/packages/mui-material/src/Stepper/Stepper.js b/packages/mui-material/src/Stepper/Stepper.js\nindex 8776ff6d3..7ab32e34d 100644\n--- a/packages/mui-material/src/Stepper/Stepper.js\n+++ b/packages/mui-material/src/Stepper/Stepper.js\n@@ -18,7 +18,7 @@ const useUtilityClasses = (ownerState) => {\n return composeClasses(slots, getStepperUtilityClass, classes);\n };\n \n-const StepperRoot = styled('div', {\n+const StepperRoot = styled('ol', {\n name: 'MuiStepper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n@@ -30,6 +30,9 @@ const StepperRoot = styled('div', {\n ];\n },\n })(({ ownerState }) => ({\n+ listStyle: 'none',\n+ margin: 0,\n+ padding: 0,\n display: 'flex',\n ...(ownerState.orientation === 'horizontal' && {\n flexDirection: 'row',\n@@ -52,6 +55,7 @@ const Stepper = React.forwardRef(function Stepper(inProps, ref) {\n alternativeLabel = false,\n children,\n className,\n+ component = 'ol',\n connector = defaultConnector,\n nonLinear = false,\n orientation = 'horizontal',\n@@ -61,6 +65,7 @@ const Stepper = React.forwardRef(function Stepper(inProps, ref) {\n const ownerState = {\n ...props,\n alternativeLabel,\n+ component,\n orientation,\n };\n \n@@ -75,13 +80,14 @@ const Stepper = React.forwardRef(function Stepper(inProps, ref) {\n });\n });\n const contextValue = React.useMemo(\n- () => ({ activeStep, alternativeLabel, connector, nonLinear, orientation }),\n- [activeStep, alternativeLabel, connector, nonLinear, orientation],\n+ () => ({ activeStep, alternativeLabel, connector, nonLinear, orientation, component }),\n+ [activeStep, alternativeLabel, connector, nonLinear, orientation, component],\n );\n \n return (\n \n \ndiff --git a/packages/mui-material/src/Stepper/StepperContext.ts b/packages/mui-material/src/Stepper/StepperContext.ts\nindex 41fadd10b..6b3d2c711 100644\n--- a/packages/mui-material/src/Stepper/StepperContext.ts\n+++ b/packages/mui-material/src/Stepper/StepperContext.ts\n@@ -3,6 +3,7 @@ import * as React from 'react';\n export interface StepperContextType {\n activeStep: number;\n alternativeLabel: boolean;\n+ component: React.ElementType;\n connector: React.ReactNode;\n nonLinear: boolean;\n orientation: 'horizontal' | 'vertical';\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-34158", "model_patch": "diff --git a/packages/mui-base/src/ListboxUnstyled/useControllableReducer.ts b/packages/mui-base/src/ListboxUnstyled/useControllableReducer.ts\nindex 305c5d9f9..4aa0ea32a 100644\n--- a/packages/mui-base/src/ListboxUnstyled/useControllableReducer.ts\n+++ b/packages/mui-base/src/ListboxUnstyled/useControllableReducer.ts\n@@ -38,6 +38,14 @@ function areOptionsEqual(\n return optionComparer(option1, option2);\n }\n \n+function getActionEvent(action: ListboxAction | null): React.SyntheticEvent | null {\n+ if (!action) {\n+ return null;\n+ }\n+\n+ return 'event' in action ? action.event : null;\n+}\n+\n /**\n * Triggers change event handlers when reducer returns changed state.\n */\n@@ -46,6 +54,7 @@ function useStateChangeDetection(\n internalPreviousState: ListboxState,\n propsRef: React.RefObject>,\n hasDispatchedActionRef: React.MutableRefObject,\n+ lastActionRef: React.MutableRefObject | null>,\n ) {\n React.useEffect(() => {\n if (!propsRef.current || !hasDispatchedActionRef.current) {\n@@ -54,6 +63,8 @@ function useStateChangeDetection(\n }\n \n hasDispatchedActionRef.current = false;\n+ const event = getActionEvent(lastActionRef.current);\n+ lastActionRef.current = null;\n \n const previousState = getControlledState(internalPreviousState, propsRef.current);\n const { multiple, optionComparer } = propsRef.current;\n@@ -61,18 +72,22 @@ function useStateChangeDetection(\n if (multiple) {\n const previousSelectedValues = (previousState?.selectedValue ?? []) as TOption[];\n const nextSelectedValues = nextState.selectedValue as TOption[];\n- const onChange = propsRef.current.onChange as ((value: TOption[]) => void) | undefined;\n+ const onChange = propsRef.current.onChange as\n+ | ((event: React.SyntheticEvent | null, value: TOption[]) => void)\n+ | undefined;\n \n if (!areArraysEqual(nextSelectedValues, previousSelectedValues, optionComparer)) {\n- onChange?.(nextSelectedValues);\n+ onChange?.(event, nextSelectedValues);\n }\n } else {\n const previousSelectedValue = previousState?.selectedValue as TOption | null;\n const nextSelectedValue = nextState.selectedValue as TOption | null;\n- const onChange = propsRef.current.onChange as ((value: TOption | null) => void) | undefined;\n+ const onChange = propsRef.current.onChange as\n+ | ((event: React.SyntheticEvent | null, value: TOption | null) => void)\n+ | undefined;\n \n if (!areOptionsEqual(nextSelectedValue, previousSelectedValue, optionComparer)) {\n- onChange?.(nextSelectedValue);\n+ onChange?.(event, nextSelectedValue);\n }\n }\n }, [nextState.selectedValue, internalPreviousState, propsRef, hasDispatchedActionRef]);\n@@ -106,6 +121,7 @@ export default function useControllableReducer(\n propsRef.current = props;\n \n const hasDispatchedActionRef = React.useRef(false);\n+ const lastActionRef = React.useRef | null>(null);\n \n const initialSelectedValue =\n (value === undefined ? defaultValue : value) ?? (props.multiple ? [] : null);\n@@ -129,6 +145,13 @@ export default function useControllableReducer(\n );\n \n const [nextState, dispatch] = React.useReducer(combinedReducer, initalState);\n+ const dispatchWithActionTracking = React.useCallback(\n+ (action: ListboxAction) => {\n+ lastActionRef.current = action;\n+ dispatch(action);\n+ },\n+ [dispatch],\n+ );\n \n const previousState = React.useRef>(initalState);\n React.useEffect(() => {\n@@ -140,6 +163,7 @@ export default function useControllableReducer(\n previousState.current,\n propsRef,\n hasDispatchedActionRef,\n+ lastActionRef,\n );\n- return [getControlledState(nextState, propsRef.current), dispatch];\n+ return [getControlledState(nextState, propsRef.current), dispatchWithActionTracking];\n }\ndiff --git a/packages/mui-base/src/ListboxUnstyled/useListbox.types.ts b/packages/mui-base/src/ListboxUnstyled/useListbox.types.ts\nindex 8239f9481..e01e0e89a 100644\n--- a/packages/mui-base/src/ListboxUnstyled/useListbox.types.ts\n+++ b/packages/mui-base/src/ListboxUnstyled/useListbox.types.ts\n@@ -178,7 +178,7 @@ interface UseSingleSelectListboxParameters extends UseListboxCommonProp\n /**\n * Callback fired when the value changes.\n */\n- onChange?: (value: TOption) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TOption) => void;\n }\n \n interface UseMultiSelectListboxParameters extends UseListboxCommonProps {\n@@ -198,7 +198,7 @@ interface UseMultiSelectListboxParameters extends UseListboxCommonProps\n /**\n * Callback fired when the value changes.\n */\n- onChange?: (value: TOption[]) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TOption[]) => void;\n }\n \n export type UseListboxParameters =\ndiff --git a/packages/mui-base/src/MultiSelectUnstyled/MultiSelectUnstyled.types.ts b/packages/mui-base/src/MultiSelectUnstyled/MultiSelectUnstyled.types.ts\nindex e03a97af7..af115465d 100644\n--- a/packages/mui-base/src/MultiSelectUnstyled/MultiSelectUnstyled.types.ts\n+++ b/packages/mui-base/src/MultiSelectUnstyled/MultiSelectUnstyled.types.ts\n@@ -59,7 +59,7 @@ export interface MultiSelectUnstyledOwnProps extends SelectUn\n /**\n * Callback fired when an option is selected.\n */\n- onChange?: (value: TValue[]) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TValue[]) => void;\n /**\n * A function used to convert the option label to a string.\n * It's useful when labels are elements and need to be converted to plain text\ndiff --git a/packages/mui-base/src/SelectUnstyled/SelectUnstyled.types.ts b/packages/mui-base/src/SelectUnstyled/SelectUnstyled.types.ts\nindex 26833cf66..cc0e9ee60 100644\n--- a/packages/mui-base/src/SelectUnstyled/SelectUnstyled.types.ts\n+++ b/packages/mui-base/src/SelectUnstyled/SelectUnstyled.types.ts\n@@ -97,7 +97,7 @@ export interface SelectUnstyledOwnProps extends SelectUnstyle\n /**\n * Callback fired when an option is selected.\n */\n- onChange?: (value: TValue | null) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TValue | null) => void;\n /**\n * A function used to convert the option label to a string.\n * It's useful when labels are elements and need to be converted to plain text\ndiff --git a/packages/mui-base/src/SelectUnstyled/useSelect.ts b/packages/mui-base/src/SelectUnstyled/useSelect.ts\nindex a87c4977c..1f27eeb53 100644\n--- a/packages/mui-base/src/SelectUnstyled/useSelect.ts\n+++ b/packages/mui-base/src/SelectUnstyled/useSelect.ts\n@@ -214,10 +214,13 @@ function useSelect(props: UseSelectParameters) {\n optionComparer: (o, v) => o?.value === v?.value,\n listboxRef: handleListboxRef,\n multiple: true,\n- onChange: (newOptions) => {\n+ onChange: (event, newOptions) => {\n const newValues = newOptions.map((o) => o.value);\n setValue(newValues);\n- (onChange as (value: TValue[]) => void)?.(newValues);\n+ (onChange as (event: React.SyntheticEvent | null, value: TValue[]) => void)?.(\n+ event,\n+ newValues,\n+ );\n },\n options,\n optionStringifier,\n@@ -230,9 +233,12 @@ function useSelect(props: UseSelectParameters) {\n optionComparer: (o, v) => o?.value === v?.value,\n listboxRef: handleListboxRef,\n multiple: false,\n- onChange: (option: SelectOption | null) => {\n+ onChange: (event, option: SelectOption | null) => {\n setValue(option?.value ?? null);\n- (onChange as (value: TValue | null) => void)?.(option?.value ?? null);\n+ (onChange as (event: React.SyntheticEvent | null, value: TValue | null) => void)?.(\n+ event,\n+ option?.value ?? null,\n+ );\n },\n options,\n optionStringifier,\ndiff --git a/packages/mui-base/src/SelectUnstyled/useSelect.types.ts b/packages/mui-base/src/SelectUnstyled/useSelect.types.ts\nindex 93c1490cd..23b5e5a3a 100644\n--- a/packages/mui-base/src/SelectUnstyled/useSelect.types.ts\n+++ b/packages/mui-base/src/SelectUnstyled/useSelect.types.ts\n@@ -41,14 +41,14 @@ interface UseSelectCommonProps {\n export interface UseSelectSingleParameters extends UseSelectCommonProps {\n defaultValue?: TValue | null;\n multiple?: false;\n- onChange?: (value: TValue | null) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TValue | null) => void;\n value?: TValue | null;\n }\n \n export interface UseSelectMultiParameters extends UseSelectCommonProps {\n defaultValue?: TValue[];\n multiple: true;\n- onChange?: (value: TValue[]) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TValue[]) => void;\n value?: TValue[];\n }\n \ndiff --git a/packages/mui-joy/src/Select/SelectProps.ts b/packages/mui-joy/src/Select/SelectProps.ts\nindex 88a6dba9b..be9c440f8 100644\n--- a/packages/mui-joy/src/Select/SelectProps.ts\n+++ b/packages/mui-joy/src/Select/SelectProps.ts\n@@ -104,7 +104,7 @@ export interface SelectOwnProps extends SelectStaticProps {\n /**\n * Callback fired when an option is selected.\n */\n- onChange?: (value: TValue | null) => void;\n+ onChange?: (event: React.SyntheticEvent | null, value: TValue | null) => void;\n /**\n * Function that customizes the rendering of the selected value.\n */\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-34207", "model_patch": "diff --git a/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts b/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts\nindex cf996bf87..3ba48a2d6 100644\n--- a/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts\n+++ b/packages/mui-material/src/FormControlLabel/FormControlLabel.d.ts\n@@ -59,6 +59,10 @@ export interface FormControlLabelProps\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange?: (event: React.SyntheticEvent, checked: boolean) => void;\n+ /**\n+ * If `true`, the label will indicate that the `input` is required.\n+ */\n+ required?: boolean;\n /**\n * The props used for each slot inside.\n * @default {}\ndiff --git a/packages/mui-material/src/FormControlLabel/FormControlLabel.js b/packages/mui-material/src/FormControlLabel/FormControlLabel.js\nindex 2f4e89c2f..de92b7ba9 100644\n--- a/packages/mui-material/src/FormControlLabel/FormControlLabel.js\n+++ b/packages/mui-material/src/FormControlLabel/FormControlLabel.js\n@@ -14,15 +14,17 @@ import formControlLabelClasses, {\n import formControlState from '../FormControl/formControlState';\n \n const useUtilityClasses = (ownerState) => {\n- const { classes, disabled, labelPlacement, error } = ownerState;\n+ const { classes, disabled, labelPlacement, error, required } = ownerState;\n const slots = {\n root: [\n 'root',\n disabled && 'disabled',\n `labelPlacement${capitalize(labelPlacement)}`,\n error && 'error',\n+ required && 'required',\n ],\n label: ['label', disabled && 'disabled'],\n+ asterisk: ['asterisk', error && 'error', disabled && 'disabled'],\n };\n \n return composeClasses(slots, getFormControlLabelUtilityClasses, classes);\n@@ -72,6 +74,19 @@ export const FormControlLabelRoot = styled('label', {\n },\n }));\n \n+const AsteriskComponent = styled('span', {\n+ name: 'MuiFormControlLabel',\n+ slot: 'Asterisk',\n+ overridesResolver: (props, styles) => styles.asterisk,\n+})(({ theme }) => ({\n+ [`&.${formControlLabelClasses.disabled}`]: {\n+ color: (theme.vars || theme).palette.text.disabled,\n+ },\n+ [`&.${formControlLabelClasses.error}`]: {\n+ color: (theme.vars || theme).palette.error.main,\n+ },\n+}));\n+\n /**\n * Drop-in replacement of the `Radio`, `Switch` and `Checkbox` component.\n * Use this component if you want to display an extra label.\n@@ -90,6 +105,7 @@ const FormControlLabel = React.forwardRef(function FormControlLabel(inProps, ref\n labelPlacement = 'end',\n name,\n onChange,\n+ required: requiredProp,\n slotProps = {},\n value,\n ...other\n@@ -105,8 +121,17 @@ const FormControlLabel = React.forwardRef(function FormControlLabel(inProps, ref\n disabled = muiFormControl.disabled;\n }\n \n+ let required = requiredProp;\n+ if (typeof required === 'undefined' && typeof control.props.required !== 'undefined') {\n+ required = control.props.required;\n+ }\n+ if (typeof required === 'undefined' && muiFormControl) {\n+ required = muiFormControl.required;\n+ }\n+\n const controlProps = {\n disabled,\n+ required,\n };\n \n ['checked', 'name', 'onChange', 'value', 'inputRef'].forEach((key) => {\n@@ -126,6 +151,7 @@ const FormControlLabel = React.forwardRef(function FormControlLabel(inProps, ref\n disabled,\n labelPlacement,\n error: fcs.error,\n+ required,\n };\n \n const classes = useUtilityClasses(ownerState);\n@@ -133,6 +159,11 @@ const FormControlLabel = React.forwardRef(function FormControlLabel(inProps, ref\n const typographySlotProps = slotProps.typography ?? componentsProps.typography;\n \n let label = labelProp;\n+ const asterisk = required && label != null && (\n+ \n+  {'*'}\n+ \n+ );\n if (label != null && label.type !== Typography && !disableTypography) {\n label = (\n \n {label}\n+ {asterisk}\n \n );\n+ } else if (label != null && required) {\n+ label = (\n+ \n+ {label}\n+ {asterisk}\n+ \n+ );\n }\n \n return (\n@@ -218,6 +257,10 @@ FormControlLabel.propTypes /* remove-proptypes */ = {\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n+ /**\n+ * If `true`, the label will indicate that the `input` is required.\n+ */\n+ required: PropTypes.bool,\n /**\n * The props used for each slot inside.\n * @default {}\ndiff --git a/packages/mui-material/src/FormControlLabel/formControlLabelClasses.ts b/packages/mui-material/src/FormControlLabel/formControlLabelClasses.ts\nindex 65b25aa6c..89a6b9bc1 100644\n--- a/packages/mui-material/src/FormControlLabel/formControlLabelClasses.ts\n+++ b/packages/mui-material/src/FormControlLabel/formControlLabelClasses.ts\n@@ -12,8 +12,12 @@ export interface FormControlLabelClasses {\n labelPlacementBottom: string;\n /** State class applied to the root element if `disabled={true}`. */\n disabled: string;\n+ /** State class applied to the root element if `required={true}`. */\n+ required: string;\n /** Styles applied to the label's Typography component. */\n label: string;\n+ /** Styles applied to the asterisk element. */\n+ asterisk: string;\n /** State class applied to the root element if `error={true}`. */\n error: string;\n }\n@@ -32,7 +36,9 @@ const formControlLabelClasses: FormControlLabelClasses = generateUtilityClasses(\n 'labelPlacementTop',\n 'labelPlacementBottom',\n 'disabled',\n+ 'required',\n 'label',\n+ 'asterisk',\n 'error',\n ],\n );\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-34610", "model_patch": "diff --git a/packages/mui-base/src/SliderUnstyled/SliderUnstyled.js b/packages/mui-base/src/SliderUnstyled/SliderUnstyled.js\nindex c5f73e2b2..04edf9914 100644\n--- a/packages/mui-base/src/SliderUnstyled/SliderUnstyled.js\n+++ b/packages/mui-base/src/SliderUnstyled/SliderUnstyled.js\n@@ -45,6 +45,7 @@ const Forward = ({ children }) => children;\n const SliderUnstyled = React.forwardRef(function SliderUnstyled(props, ref) {\n const {\n 'aria-label': ariaLabel,\n+ 'aria-labelledby': ariaLabelledby,\n 'aria-valuetext': ariaValuetext,\n className,\n component,\n@@ -106,7 +107,7 @@ const SliderUnstyled = React.forwardRef(function SliderUnstyled(props, ref) {\n values,\n trackOffset,\n trackLeap,\n- } = useSlider({ ...ownerState, ref });\n+ } = useSlider({ ...ownerState, 'aria-labelledby': ariaLabelledby, ref });\n \n ownerState.marked = marks.length > 0 && marks.some((mark) => mark.label);\n ownerState.dragging = dragging;\ndiff --git a/packages/mui-joy/src/Slider/Slider.tsx b/packages/mui-joy/src/Slider/Slider.tsx\nindex 6154087f2..a5f10d03a 100644\n--- a/packages/mui-joy/src/Slider/Slider.tsx\n+++ b/packages/mui-joy/src/Slider/Slider.tsx\n@@ -368,6 +368,7 @@ const Slider = React.forwardRef(function Slider(inProps, ref) {\n \n const {\n 'aria-label': ariaLabel,\n+ 'aria-labelledby': ariaLabelledby,\n 'aria-valuetext': ariaValuetext,\n component,\n componentsProps = {},\n@@ -432,7 +433,7 @@ const Slider = React.forwardRef(function Slider(inProps, ref) {\n values,\n trackOffset,\n trackLeap,\n- } = useSlider({ ...ownerState, ref });\n+ } = useSlider({ ...ownerState, 'aria-labelledby': ariaLabelledby, ref });\n \n ownerState.marked = marks.length > 0 && marks.some((mark) => mark.label);\n ownerState.dragging = dragging;\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-36353", "model_patch": "diff --git a/packages/mui-material/src/DialogTitle/DialogTitle.js b/packages/mui-material/src/DialogTitle/DialogTitle.js\nindex 099b59579..e56730553 100644\n--- a/packages/mui-material/src/DialogTitle/DialogTitle.js\n+++ b/packages/mui-material/src/DialogTitle/DialogTitle.js\n@@ -37,7 +37,8 @@ const DialogTitle = React.forwardRef(function DialogTitle(inProps, ref) {\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n \n- const { titleId: id = idProp } = React.useContext(DialogContext);\n+ const { titleId } = React.useContext(DialogContext);\n+ const id = idProp ?? titleId;\n \n return (\n ,\n option: T,\n state: AutocompleteRenderOptionState,\n+ ownerState: AutocompleteOwnerState,\n ) => React.ReactNode;\n /**\n * Render the selected value.\ndiff --git a/packages/mui-material/src/Autocomplete/Autocomplete.js b/packages/mui-material/src/Autocomplete/Autocomplete.js\nindex 853f3be7e..35fa47b81 100644\n--- a/packages/mui-material/src/Autocomplete/Autocomplete.js\n+++ b/packages/mui-material/src/Autocomplete/Autocomplete.js\n@@ -556,7 +556,7 @@ const Autocomplete = React.forwardRef(function Autocomplete(inProps, ref) {\n selected: optionProps['aria-selected'],\n index,\n inputValue,\n- });\n+ }, ownerState);\n };\n \n const clearIndicatorSlotProps = slotProps.clearIndicator ?? componentsProps.clearIndicator;\n@@ -1065,6 +1065,7 @@ Autocomplete.propTypes /* remove-proptypes */ = {\n * @param {object} props The props to apply on the li element.\n * @param {T} option The option to render.\n * @param {object} state The state of the component.\n+ * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderOption: PropTypes.func,\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-38247", "model_patch": "diff --git a/docs/src/modules/sandbox/CreateReactApp.ts b/docs/src/modules/sandbox/CreateReactApp.ts\nindex dedaab0a3..554445059 100644\n--- a/docs/src/modules/sandbox/CreateReactApp.ts\n+++ b/docs/src/modules/sandbox/CreateReactApp.ts\n@@ -4,11 +4,15 @@ export const getHtml = ({\n title,\n language,\n codeStyling,\n+ raw,\n }: {\n title: string;\n language: string;\n codeStyling?: 'Tailwind' | 'MUI System';\n+ raw?: string;\n }) => {\n+ const materialIconVariantLinks = getMaterialIconVariantLinks(raw);\n+\n return `\n \n \n@@ -24,7 +28,7 @@ export const getHtml = ({\n ${\n+ />${materialIconVariantLinks}${\n codeStyling === 'Tailwind'\n ? `\n \n@@ -82,6 +86,37 @@ export const getHtml = ({\n `;\n };\n \n+const MATERIAL_ICON_VARIANTS: Array<{ className: string; family: string }> = [\n+ { className: 'material-icons-two-tone', family: 'Material+Icons+Two+Tone' },\n+ { className: 'material-icons-outlined', family: 'Material+Icons+Outlined' },\n+ { className: 'material-icons-round', family: 'Material+Icons+Round' },\n+ { className: 'material-icons-sharp', family: 'Material+Icons+Sharp' },\n+];\n+\n+function getMaterialIconVariantLinks(raw?: string) {\n+ if (!raw) {\n+ return '';\n+ }\n+\n+ const matchedVariants = MATERIAL_ICON_VARIANTS.filter(({ className }) =>\n+ raw.includes(className),\n+ );\n+\n+ if (matchedVariants.length === 0) {\n+ return '';\n+ }\n+\n+ return matchedVariants\n+ .map(\n+ ({ family }) => `\n+ `,\n+ )\n+ .join('');\n+}\n+\n export function getRootIndex(demoData: DemoData) {\n // document.querySelector returns 'Element | null' but createRoot expects 'Element | DocumentFragment'.\n const type = demoData.codeVariant === 'TS' ? '!' : '';\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-38544", "model_patch": "diff --git a/packages/mui-material/src/Tabs/Tabs.js b/packages/mui-material/src/Tabs/Tabs.js\nindex 12a9f9ba9..7c93ba118 100644\n--- a/packages/mui-material/src/Tabs/Tabs.js\n+++ b/packages/mui-material/src/Tabs/Tabs.js\n@@ -213,10 +213,7 @@ const TabsIndicator = styled('span', {\n }),\n }));\n \n-const TabsScrollbarSize = styled(ScrollbarSize, {\n- name: 'MuiTabs',\n- slot: 'ScrollbarSize',\n-})({\n+const TabsScrollbarSize = styled(ScrollbarSize)({\n overflowX: 'auto',\n overflowY: 'hidden',\n // Hide dimensionless scrollbar on macOS\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "mui__material-ui-42412", "model_patch": "diff --git a/packages/mui-material/src/styles/responsiveFontSizes.js b/packages/mui-material/src/styles/responsiveFontSizes.js\nindex fe0a5a6eda..cde6015a78 100644\n--- a/packages/mui-material/src/styles/responsiveFontSizes.js\n+++ b/packages/mui-material/src/styles/responsiveFontSizes.js\n@@ -34,6 +34,9 @@ export default function responsiveFontSizes(themeInput, options = {}) {\n \n variants.forEach((variant) => {\n const style = typography[variant];\n+ if (!style || style.fontSize == null) {\n+ return;\n+ }\n const remFontSize = parseFloat(convert(style.fontSize, 'rem'));\n \n if (remFontSize <= 1) {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "tailwindlabs__tailwindcss-116", "model_patch": "diff --git a/src/lib/substituteClassApplyAtRules.js b/src/lib/substituteClassApplyAtRules.js\nindex 11aaf3f..c2a68c8 100644\n--- a/src/lib/substituteClassApplyAtRules.js\n+++ b/src/lib/substituteClassApplyAtRules.js\n@@ -26,10 +26,24 @@ export default function() {\n return _.startsWith(mixin, '--')\n })\n \n- const decls = _.flatMap(classes, mixin => {\n- return findMixin(css, mixin, () => {\n+ const classSet = new Set(classes)\n+ const found = new Set()\n+ const decls = []\n+\n+ css.walkRules(rule => {\n+ if (rule.parent.type !== 'root') return\n+\n+ const matches = rule.selectors.filter(selector => classSet.has(selector))\n+ if (matches.length === 0) return\n+\n+ matches.forEach(mixin => found.add(mixin))\n+ decls.push(...rule.clone().nodes)\n+ })\n+\n+ classSet.forEach(mixin => {\n+ if (!found.has(mixin)) {\n throw atRule.error(`No ${mixin} class found.`)\n- })\n+ }\n })\n \n atRule.before(decls)\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "tailwindlabs__tailwindcss-550", "model_patch": "diff --git a/src/generators/flexbox.js b/src/generators/flexbox.js\nindex 10e26c3..2332085 100644\n--- a/src/generators/flexbox.js\n+++ b/src/generators/flexbox.js\n@@ -90,7 +90,7 @@ export default function() {\n 'align-content': 'space-around',\n },\n 'flex-1': {\n- flex: '1',\n+ flex: '1 1 0%',\n },\n 'flex-auto': {\n flex: 'auto',\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "tailwindlabs__tailwindcss-853", "model_patch": "diff --git a/src/util/configurePlugins.js b/src/util/configurePlugins.js\nindex 64654c5..d899893 100644\n--- a/src/util/configurePlugins.js\n+++ b/src/util/configurePlugins.js\n@@ -1,7 +1,23 @@\n export default function(pluginConfig, plugins) {\n+ if (pluginConfig === false) {\n+ return []\n+ }\n+\n+ const onlyList = Array.isArray(pluginConfig)\n+ ? pluginConfig\n+ : pluginConfig && Array.isArray(pluginConfig.only)\n+ ? pluginConfig.only\n+ : null\n+\n+ const onlySet = onlyList ? new Set(onlyList) : null\n+\n return Object.keys(plugins)\n .filter(pluginName => {\n- return pluginConfig !== false && pluginConfig[pluginName] !== false\n+ if (onlySet && !onlySet.has(pluginName)) {\n+ return false\n+ }\n+\n+ return !pluginConfig || pluginConfig[pluginName] !== false\n })\n .map(pluginName => {\n return plugins[pluginName]()\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "coder__code-server-4923", "model_patch": "diff --git a/src/node/app.ts b/src/node/app.ts\nindex 1387135..3f7904d 100644\n--- a/src/node/app.ts\n+++ b/src/node/app.ts\n@@ -1,9 +1,11 @@\n import { logger } from \"@coder/logger\"\n+import * as cp from \"child_process\"\n import compression from \"compression\"\n import express, { Express } from \"express\"\n import { promises as fs } from \"fs\"\n import http from \"http\"\n import * as httpolyglot from \"httpolyglot\"\n+import { promisify } from \"util\"\n import { Disposable } from \"../common/emitter\"\n import * as util from \"../common/util\"\n import { DefaultedArgs } from \"./cli\"\n@@ -66,14 +68,23 @@ export const createApp = async (args: DefaultedArgs): Promise => {\n )\n : http.createServer(router)\n \n- const dispose = disposer(server)\n+ const disposeServer = disposer(server)\n \n await listen(server, args)\n+ await applySocketOptions(args)\n \n const wsRouter = express()\n handleUpgrade(wsRouter, server)\n \n- return { router, wsRouter, server, dispose }\n+ return {\n+ router,\n+ wsRouter,\n+ server,\n+ dispose: async () => {\n+ await disposeServer()\n+ await cleanupSocket(args.socket)\n+ },\n+ }\n }\n \n /**\n@@ -132,3 +143,93 @@ export const handleArgsSocketCatchError = (error: any) => {\n logger.error(error.message ? error.message : error)\n }\n }\n+\n+const execFileAsync = promisify(cp.execFile)\n+\n+const parseSocketMode = (mode?: string): number | undefined => {\n+ if (!mode) {\n+ return undefined\n+ }\n+ if (!/^[0-7]{3,4}$/.test(mode)) {\n+ throw new Error(\"--socket-permissions must be an octal value like 770 or 0770\")\n+ }\n+ return parseInt(mode, 8)\n+}\n+\n+const resolveSocketId = async (kind: \"user\" | \"group\", value: string): Promise => {\n+ if (/^\\d+$/.test(value)) {\n+ return parseInt(value, 10)\n+ }\n+\n+ if (process.platform === \"win32\") {\n+ throw new Error(`--socket-${kind} is not supported on Windows`)\n+ }\n+\n+ try {\n+ const { stdout } = await execFileAsync(\"getent\", [kind === \"user\" ? \"passwd\" : \"group\", value])\n+ const line = stdout.trim().split(\"\\n\")[0]\n+ if (!line) {\n+ throw new Error(\"not found\")\n+ }\n+ const fields = line.split(\":\")\n+ const id = fields[2]\n+ if (!id || !/^\\d+$/.test(id)) {\n+ throw new Error(\"invalid\")\n+ }\n+ return parseInt(id, 10)\n+ } catch (error) {\n+ throw new Error(`Unable to resolve ${kind} '${value}'`)\n+ }\n+}\n+\n+const applySocketOptions = async (args: DefaultedArgs): Promise => {\n+ if (!args.socket) {\n+ return\n+ }\n+\n+ const mode = parseSocketMode(args[\"socket-permissions\"])\n+ const socketUser = args[\"socket-user\"]\n+ const socketGroup = args[\"socket-group\"]\n+\n+ if (mode === undefined && !socketUser && !socketGroup) {\n+ return\n+ }\n+\n+ if (process.platform === \"win32\") {\n+ logger.warn(\"Socket permissions are not supported on Windows\")\n+ return\n+ }\n+\n+ const stat = await fs.stat(args.socket)\n+ let uid = stat.uid\n+ let gid = stat.gid\n+\n+ if (socketUser) {\n+ uid = await resolveSocketId(\"user\", socketUser)\n+ }\n+ if (socketGroup) {\n+ gid = await resolveSocketId(\"group\", socketGroup)\n+ }\n+\n+ if (socketUser || socketGroup) {\n+ await fs.chown(args.socket, uid, gid)\n+ }\n+\n+ if (mode !== undefined) {\n+ await fs.chmod(args.socket, mode)\n+ }\n+}\n+\n+const cleanupSocket = async (socketPath?: string): Promise => {\n+ if (!socketPath) {\n+ return\n+ }\n+\n+ try {\n+ await fs.unlink(socketPath)\n+ } catch (error: any) {\n+ if (!isNodeJSErrnoException(error) || error.code !== \"ENOENT\") {\n+ logger.error(error.message ? error.message : error)\n+ }\n+ }\n+}\ndiff --git a/src/node/cli.ts b/src/node/cli.ts\nindex 9928db1..2992c3a 100644\n--- a/src/node/cli.ts\n+++ b/src/node/cli.ts\n@@ -56,6 +56,9 @@ export interface UserProvidedArgs {\n open?: boolean\n \"bind-addr\"?: string\n socket?: string\n+ \"socket-permissions\"?: string\n+ \"socket-user\"?: string\n+ \"socket-group\"?: string\n version?: boolean\n \"proxy-domain\"?: string[]\n \"reuse-window\"?: boolean\n@@ -175,6 +178,18 @@ const options: Options> = {\n port: { type: \"number\", description: \"\" },\n \n socket: { type: \"string\", path: true, description: \"Path to a socket (bind-addr will be ignored).\" },\n+ \"socket-permissions\": {\n+ type: \"string\",\n+ description: \"Permissions for the socket (octal, e.g. 770 or 0770).\",\n+ },\n+ \"socket-user\": {\n+ type: \"string\",\n+ description: \"User name or uid to own the socket.\",\n+ },\n+ \"socket-group\": {\n+ type: \"string\",\n+ description: \"Group name or gid to own the socket.\",\n+ },\n version: { type: \"boolean\", short: \"v\", description: \"Display version information.\" },\n _: { type: \"string[]\" },\n \n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "coder__code-server-6278", "model_patch": "diff --git a/src/node/vscodeSocket.ts b/src/node/vscodeSocket.ts\nindex 1bdb895..58508f1 100644\n--- a/src/node/vscodeSocket.ts\n+++ b/src/node/vscodeSocket.ts\n@@ -7,8 +7,39 @@ import { HttpCode } from \"../common/http\"\n import { listen } from \"./app\"\n import { canConnect } from \"./util\"\n \n+const socketPathSuffix = (() => {\n+ const sanitize = (value: string) => value.replace(/[^a-zA-Z0-9_-]/g, \"_\").slice(0, 32) || \"unknown\"\n+\n+ try {\n+ const info = os.userInfo()\n+ if (typeof info.uid === \"number\" && info.uid >= 0) {\n+ return `uid-${info.uid}`\n+ }\n+ if (info.username) {\n+ return `user-${sanitize(info.username)}`\n+ }\n+ } catch {\n+ // Fall through to other options.\n+ }\n+\n+ if (typeof process.getuid === \"function\") {\n+ try {\n+ return `uid-${process.getuid()}`\n+ } catch {\n+ // Ignore.\n+ }\n+ }\n+\n+ const envUser = process.env.USER || process.env.USERNAME\n+ if (envUser) {\n+ return `user-${sanitize(envUser)}`\n+ }\n+\n+ return `pid-${process.pid}`\n+})()\n+\n // Socket path of the daemonized code-server instance.\n-export const DEFAULT_SOCKET_PATH = path.join(os.tmpdir(), \"code-server-ipc.sock\")\n+export const DEFAULT_SOCKET_PATH = path.join(os.tmpdir(), `code-server-ipc-${socketPathSuffix}.sock`)\n \n export interface EditorSessionEntry {\n workspace: {\n", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "Significant-Gravitas__AutoGPT-4652", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-3716", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-4759", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-5122", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-6098", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-7075", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-7078", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-7374", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-7562", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-8435", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-8554", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-8624", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-8747", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-12981", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-13491", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-13693", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-13865", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-13919", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-13989", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-15158", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-15473", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-15795", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-15843", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-16198", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-16661", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-17082", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-18851", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-19590", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-19657", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-20136", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-21345", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-21768", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-21969", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-22158", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-22458", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-22649", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-22920", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-23126", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-23141", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-23223", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-23796", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-24238", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-25636", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-25765", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-25884", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-26164", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-26568", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-26752", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-26839", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-27114", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-27463", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-27663", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-27717", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-28071", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-28115", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-28398", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-28517", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-28535", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-28563", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-29311", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-29449", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-29519", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-29563", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-29675", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-29688", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-30556", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-30602", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-30899", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-30934", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-30964", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-31217", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-31448", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "huggingface__transformers-31646", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-3367", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-4009", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-4103", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-4420", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-4579", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-4646", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-5450", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-5584", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-5609", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-5625", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-6765", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-19331", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "langchain-ai__langchain-20064", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "yt-dlp__yt-dlp-4841", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "yt-dlp__yt-dlp-5195", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "yt-dlp__yt-dlp-5933", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "yt-dlp__yt-dlp-9862", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "yt-dlp__yt-dlp-10390", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-18553", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-18871", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-18975", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19190", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19201", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19459", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19466", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19484", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19636", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19641", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19773", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19775", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19826", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19838", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19844", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19863", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19915", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19924", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19937", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-19973", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-20002", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "keras-team__keras-20008", "model_patch": "", "model_name_or_path": "gpt-5.2-codex"} +{"instance_id": "coder__code-server-3277", "model_patch": "diff --git a/lib/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.ts b/lib/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.ts\nindex 397211f..c7c530d 100644\n--- a/lib/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.ts\n+++ b/lib/vscode/src/vs/workbench/browser/parts/titlebar/menubarControl.ts\n@@ -721,27 +721,30 @@ export class CustomMenubarControl extends MenubarControl {\n \t\t\twebNavigationActions.pop();\n \t\t}\n \n-\t\twebNavigationActions.push(new Action('logout', localize('logout', \"Log out\"), undefined, true,\n-\t\tasync (event?: MouseEvent) => {\n-\t\t\tconst COOKIE_KEY = Cookie.Key;\n-\t\t\tconst loginCookie = getCookieValue(COOKIE_KEY);\n-\n-\t\t\tthis.logService.info('Logging out of code-server');\n-\n-\t\t\tif(loginCookie) {\n-\t\t\t\tthis.logService.info(`Removing cookie under ${COOKIE_KEY}`);\n-\n-\t\t\t\tif (document && document.cookie) {\n-\t\t\t\t\t// We delete the cookie by setting the expiration to a date/time in the past\n-\t\t\t\t\tdocument.cookie = COOKIE_KEY +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n-\t\t\t\t\twindow.location.href = '/login';\n+\t\tconst COOKIE_KEY = Cookie.Key;\n+\t\tconst hasLoginCookie = Boolean(getCookieValue(COOKIE_KEY));\n+\t\tif (hasLoginCookie) {\n+\t\t\twebNavigationActions.push(new Action('logout', localize('logout', \"Log out\"), undefined, true,\n+\t\t\tasync (event?: MouseEvent) => {\n+\t\t\t\tconst loginCookie = getCookieValue(COOKIE_KEY);\n+\n+\t\t\t\tthis.logService.info('Logging out of code-server');\n+\n+\t\t\t\tif (loginCookie) {\n+\t\t\t\t\tthis.logService.info(`Removing cookie under ${COOKIE_KEY}`);\n+\n+\t\t\t\t\tif (document && document.cookie) {\n+\t\t\t\t\t\t// We delete the cookie by setting the expiration to a date/time in the past\n+\t\t\t\t\t\tdocument.cookie = COOKIE_KEY + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n+\t\t\t\t\t\twindow.location.href = '/login';\n+\t\t\t\t\t} else {\n+\t\t\t\t\t\tthis.logService.warn('Could not delete cookie because document and/or document.cookie is undefined');\n+\t\t\t\t\t}\n \t\t\t\t} else {\n-\t\t\t\t\tthis.logService.warn('Could not delete cookie because document and/or document.cookie is undefined');\n+\t\t\t\t\tthis.logService.warn('Could not log out because we could not find cookie');\n \t\t\t\t}\n-\t\t\t} else {\n-\t\t\t\tthis.logService.warn('Could not log out because we could not find cookie');\n-\t\t\t}\n-\t\t}));\n+\t\t\t}));\n+\t\t}\n \n \t\treturn webNavigationActions;\n \t}\n", "model_name_or_path": "gpt-5.2-codex"} diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/angular__angular-37561_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/angular__angular-37561_result.json new file mode 100644 index 0000000..b74226f --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/angular__angular-37561_result.json @@ -0,0 +1,13 @@ +{ + "instance_id": "angular__angular-37561", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [], + "failed_tests": [ + "/packages/core/test/render3:render3" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-3277_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-3277_result.json new file mode 100644 index 0000000..b026ff3 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-3277_result.json @@ -0,0 +1,67 @@ +{ + "instance_id": "coder__code-server-3277", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "/testbed/test/unit/serviceWorker.test.ts->serviceWorker should add 3 listeners: install, activate and fetch", + "/testbed/test/unit/serviceWorker.test.ts->serviceWorker should call the proper callbacks for 'install'", + "/testbed/test/unit/serviceWorker.test.ts->serviceWorker should do nothing when 'fetch' is called", + "/testbed/test/unit/serviceWorker.test.ts->serviceWorker should call the proper callbacks for 'activate'", + "/testbed/test/unit/http.test.ts->http HttpCode should return the correct HTTP codes", + "/testbed/test/unit/http.test.ts->http HttpError should work as expected", + "/testbed/test/unit/http.test.ts->http HttpError should have details if provided", + "/testbed/test/unit/constants.test.ts->constants getPackageJson should log a warning if package.json not found", + "/testbed/test/unit/constants.test.ts->constants getPackageJson should find the package.json", + "/testbed/test/unit/constants.test.ts->constants version should return the package.json version", + "/testbed/test/unit/constants.test.ts->constants commit should return 'development' if commit is undefined", + "/testbed/test/unit/constants.test.ts->test constants tmpdir should return a temp directory", + "/testbed/test/unit/emitter.test.ts->emitter should run the correct callbacks", + "/testbed/test/unit/emitter.test.ts->emitter should log an error if something goes wrong", + "/testbed/test/unit/socket.test.ts->SocketProxyProvider should work without a proxy", + "/testbed/test/unit/socket.test.ts->SocketProxyProvider should work with a proxy", + "/testbed/test/unit/socket.test.ts->SocketProxyProvider should close", + "/testbed/test/unit/update.test.ts->update should get the latest", + "/testbed/test/unit/update.test.ts->update should keep existing information", + "/testbed/test/unit/update.test.ts->update should force getting the latest", + "/testbed/test/unit/update.test.ts->update should get latest after interval passes", + "/testbed/test/unit/update.test.ts->update should check if it's the current version", + "/testbed/test/unit/update.test.ts->update should not reject if unable to fetch", + "/testbed/test/unit/register.test.ts->register when navigator and serviceWorker are defined test should have access to browser globals from beforeAll", + "/testbed/test/unit/register.test.ts->register when navigator and serviceWorker are defined should register a ServiceWorker", + "/testbed/test/unit/register.test.ts->register when navigator and serviceWorker are defined should log an error if something doesn't work", + "/testbed/test/unit/register.test.ts->register registerServiceWorker should register when options.base is undefined", + "/testbed/test/unit/register.test.ts->register registerServiceWorker should register when options.base is defined", + "/testbed/test/unit/routes/login.test.ts->login RateLimiter should allow one try ", + "/testbed/test/unit/routes/login.test.ts->login RateLimiter should pull tokens from both limiters (minute & hour)", + "/testbed/test/unit/routes/login.test.ts->login RateLimiter should not allow more than 14 tries in less than an hour", + "/testbed/test/unit/cli.test.ts->parser should parse nothing", + "/testbed/test/unit/cli.test.ts->parser should parse all available options", + "/testbed/test/unit/cli.test.ts->parser should work with short options", + "/testbed/test/unit/cli.test.ts->parser should use log level env var", + "/testbed/test/unit/cli.test.ts->parser should prefer --log to env var and --verbose to --log", + "/testbed/test/unit/cli.test.ts->parser should ignore invalid log level env var", + "/testbed/test/unit/cli.test.ts->parser should error if value isn't provided", + "/testbed/test/unit/cli.test.ts->parser should error if value is invalid", + "/testbed/test/unit/cli.test.ts->parser should error if the option doesn't exist", + "/testbed/test/unit/cli.test.ts->parser should not error if the value is optional", + "/testbed/test/unit/cli.test.ts->parser should not allow option-like values", + "/testbed/test/unit/cli.test.ts->parser should allow positional arguments before options", + "/testbed/test/unit/cli.test.ts->parser should support repeatable flags", + "/testbed/test/unit/cli.test.ts->parser should enforce cert-key with cert value or otherwise generate one", + "/testbed/test/unit/cli.test.ts->parser should override with --link", + "/testbed/test/unit/cli.test.ts->parser should use env var password", + "/testbed/test/unit/cli.test.ts->parser should use env var hashed password", + "/testbed/test/unit/cli.test.ts->parser should filter proxy domains", + "/testbed/test/unit/cli.test.ts->cli should use existing if inside code-server", + "/testbed/test/unit/cli.test.ts->cli should use existing if --reuse-window is set", + "/testbed/test/unit/cli.test.ts->cli should use existing if --new-window is set", + "/testbed/test/unit/cli.test.ts->cli should use existing if no unrelated flags are set, has positional, and socket is active" + ], + "failed_tests": [ + "/testbed/test/unit/register.test.ts->register when navigator and serviceWorker are NOT defined should log an error" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-4923_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-4923_result.json new file mode 100644 index 0000000..1ba2b68 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-4923_result.json @@ -0,0 +1,198 @@ +{ + "instance_id": "coder__code-server-4923", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "/testbed/test/unit/node/cli.test.ts->parser should parse nothing", + "/testbed/test/unit/node/cli.test.ts->parser should work with short options", + "/testbed/test/unit/node/cli.test.ts->parser should use log level env var", + "/testbed/test/unit/node/cli.test.ts->parser should prefer --log to env var and --verbose to --log", + "/testbed/test/unit/node/cli.test.ts->parser should ignore invalid log level env var", + "/testbed/test/unit/node/cli.test.ts->parser should error if value isn't provided", + "/testbed/test/unit/node/cli.test.ts->parser should error if value is invalid", + "/testbed/test/unit/node/cli.test.ts->parser should error if the option doesn't exist", + "/testbed/test/unit/node/cli.test.ts->parser should not error if the value is optional", + "/testbed/test/unit/node/cli.test.ts->parser should not allow option-like values", + "/testbed/test/unit/node/cli.test.ts->parser should allow positional arguments before options", + "/testbed/test/unit/node/cli.test.ts->parser should support repeatable flags", + "/testbed/test/unit/node/cli.test.ts->parser should enforce cert-key with cert value or otherwise generate one", + "/testbed/test/unit/node/cli.test.ts->parser should use env var password", + "/testbed/test/unit/node/cli.test.ts->parser should use env var hashed password", + "/testbed/test/unit/node/cli.test.ts->parser should use env var github token", + "/testbed/test/unit/node/cli.test.ts->parser should error if password passed in", + "/testbed/test/unit/node/cli.test.ts->parser should error if hashed-password passed in", + "/testbed/test/unit/node/cli.test.ts->parser should error if github-auth passed in", + "/testbed/test/unit/node/cli.test.ts->parser should filter proxy domains", + "/testbed/test/unit/node/cli.test.ts->parser should allow '=,$/' in strings", + "/testbed/test/unit/node/cli.test.ts->parser should parse options with double-dash and multiple equal signs ", + "/testbed/test/unit/node/cli.test.ts->parser should throw an error for invalid config values", + "/testbed/test/unit/node/cli.test.ts->parser should ignore optional strings set to false", + "/testbed/test/unit/node/cli.test.ts->parser should use last flag", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if inside code-server", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if --reuse-window is set", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if --new-window is set", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if no unrelated flags are set, has positional, and socket is active", + "/testbed/test/unit/node/cli.test.ts->splitOnFirstEquals should split on the first equals", + "/testbed/test/unit/node/cli.test.ts->splitOnFirstEquals should split on first equals regardless of multiple equals signs", + "/testbed/test/unit/node/cli.test.ts->splitOnFirstEquals should always return the first element before an equals", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return false if no 'extension' related args passed in", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return true if 'list-extensions' passed in", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return true if 'install-extension' passed in", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return true if 'uninstall-extension' passed in", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should return the bind address", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use the bind-address if set in args", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use the host if set in args", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use process.env.PORT if set", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should set port if in args", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use the args.port over process.env.PORT if both set", + "/testbed/test/unit/node/cli.test.ts->defaultConfigFile should return the default config file as a string", + "/testbed/test/unit/node/cli.test.ts->readSocketPath should throw an error if it can't read the file", + "/testbed/test/unit/node/cli.test.ts->readSocketPath should return undefined if it can't read the file", + "/testbed/test/unit/node/cli.test.ts->readSocketPath should return the file contents", + "/testbed/test/unit/node/cli.test.ts->readSocketPath should return the same file contents for two different calls", + "/testbed/test/unit/node/cli.test.ts->toVsCodeArgs should convert empty args", + "/testbed/test/unit/node/cli.test.ts->toVsCodeArgs should ignore regular file", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on darwin should return the env paths using xdgBasedir", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on darwin should return the env paths using envPaths when xdgBasedir is undefined", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on win32 should return the env paths using envPaths", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on other platforms should return the runtime using xdgBasedir if it exists", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on other platforms should return the env paths using envPaths when xdgBasedir is undefined", + "/testbed/test/unit/node/util.test.ts->hash should return a hash of the string passed in", + "/testbed/test/unit/node/util.test.ts->hash should return a hash for an empty string", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return true if the password matches the hash", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false if the password does not match the hash", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return true with actual hash", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false if the password is empty", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false if the hash is empty", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false and not throw an error if the hash doesn't start with a $", + "/testbed/test/unit/node/util.test.ts->isHashMatch should reject the promise and throw if error", + "/testbed/test/unit/node/util.test.ts->hashLegacy should return a hash of the string passed in", + "/testbed/test/unit/node/util.test.ts->isHashLegacyMatch should return true if is match", + "/testbed/test/unit/node/util.test.ts->isHashLegacyMatch should return false if is match", + "/testbed/test/unit/node/util.test.ts->isHashLegacyMatch should return true if hashed from command line", + "/testbed/test/unit/node/util.test.ts->getPasswordMethod should return PLAIN_TEXT for no hashed password", + "/testbed/test/unit/node/util.test.ts->getPasswordMethod should return ARGON2 for password with 'argon2'", + "/testbed/test/unit/node/util.test.ts->getPasswordMethod should return SHA256 for password with legacy hash", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return true with a hashedPassword for a PLAIN_TEXT password", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return false when PLAIN_TEXT password doesn't match args", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return true with a hashedPassword for a SHA256 password", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return false when SHA256 password doesn't match hash", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return true with a hashedPassword for a ARGON2 password", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return false when ARGON2 password doesn't match hash", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be valid if hashed-password for SHA256 matches cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be invalid if hashed-password for SHA256 does not match cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be valid if hashed-password for ARGON2 matches cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be invalid if hashed-password for ARGON2 does not match cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be valid if password for PLAIN_TEXT matches cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be invalid if hashed-password for PLAIN_TEXT does not match cookie.key", + "/testbed/test/unit/node/util.test.ts->sanitizeString should return an empty string if passed a type other than a string", + "/testbed/test/unit/node/util.test.ts->sanitizeString should trim whitespace", + "/testbed/test/unit/node/util.test.ts->sanitizeString should always return an empty string", + "/testbed/test/unit/node/util.test.ts->onLine should call with individual lines", + "/testbed/test/unit/node/util.test.ts->onLine used with a process missing stdout should throw an error", + "/testbed/test/unit/node/util.test.ts->escapeHtml should escape HTML", + "/testbed/test/unit/node/util.test.ts->isFile should return false if the path doesn't exist", + "/testbed/test/unit/node/util.test.ts->isFile should return true if is file", + "/testbed/test/unit/node/util.test.ts->humanPath should return an empty string if no path provided", + "/testbed/test/unit/node/util.test.ts->humanPath should replace the homedir with ~", + "/testbed/test/unit/node/update.test.ts->update should get the latest", + "/testbed/test/unit/node/update.test.ts->update should keep existing information", + "/testbed/test/unit/node/update.test.ts->update should force getting the latest", + "/testbed/test/unit/node/update.test.ts->update should get latest after interval passes", + "/testbed/test/unit/node/update.test.ts->update should check if it's the current version", + "/testbed/test/unit/node/update.test.ts->update should not reject if unable to fetch", + "/testbed/test/unit/node/update.test.ts->update should reject if response has status code 500", + "/testbed/test/unit/node/update.test.ts->update should reject if no location header provided", + "/testbed/test/unit/node/update.test.ts->update should resolve the request with response.headers.location", + "/testbed/test/unit/node/update.test.ts->update should reject if more than 10 redirects", + "/testbed/test/unit/node/proxy.test.ts->proxy should rewrite the base path", + "/testbed/test/unit/node/proxy.test.ts->proxy should not rewrite the base path", + "/testbed/test/unit/node/proxy.test.ts->proxy should rewrite redirects", + "/testbed/test/unit/node/proxy.test.ts->proxy should not rewrite redirects", + "/testbed/test/unit/node/proxy.test.ts->proxy should allow post bodies", + "/testbed/test/unit/node/proxy.test.ts->proxy should handle bad requests", + "/testbed/test/unit/node/proxy.test.ts->proxy should handle invalid routes", + "/testbed/test/unit/node/proxy.test.ts->proxy should handle errors", + "/testbed/test/unit/node/proxy.test.ts->proxy (standalone) should return a 500 when proxy target errors ", + "/testbed/test/unit/node/proxy.test.ts->proxy (standalone) should proxy correctly", + "/testbed/test/unit/node/socket.test.ts->SocketProxyProvider should work without a proxy", + "/testbed/test/unit/node/socket.test.ts->SocketProxyProvider should work with a proxy", + "/testbed/test/unit/node/socket.test.ts->SocketProxyProvider should close", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should provide the package name", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should provide the commit", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should return the package.json version", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should include embedded Code version information", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should return a human-readable version string", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should return a machine-readable version string", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined getPackageJson should log a warning if package.json not found", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined getPackageJson should find the package.json", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json version should return 'development'", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json commit should return 'development'", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json should return a human-readable version string", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json should return a machine-readable version string", + "/testbed/test/unit/common/util.test.ts->util normalize should remove multiple slashes", + "/testbed/test/unit/common/util.test.ts->util normalize should remove trailing slashes", + "/testbed/test/unit/common/util.test.ts->util normalize should preserve trailing slash if it exists", + "/testbed/test/unit/common/util.test.ts->util split should split at a comma", + "/testbed/test/unit/common/util.test.ts->util split shouldn't split if the delimiter doesn't exist", + "/testbed/test/unit/common/util.test.ts->util plural should add an s if count is greater than 1", + "/testbed/test/unit/common/util.test.ts->util plural should NOT add an s if the count is 1", + "/testbed/test/unit/common/util.test.ts->util generateUuid should generate a unique uuid", + "/testbed/test/unit/common/util.test.ts->util generateUuid should generate a uuid of a specific length", + "/testbed/test/unit/common/util.test.ts->util trimSlashes should remove leading slashes", + "/testbed/test/unit/common/util.test.ts->util trimSlashes should remove trailing slashes", + "/testbed/test/unit/common/util.test.ts->util trimSlashes should remove both leading and trailing slashes", + "/testbed/test/unit/common/util.test.ts->util trimSlashes should remove multiple leading and trailing slashes", + "/testbed/test/unit/common/util.test.ts->util arrayify should return value it's already an array", + "/testbed/test/unit/common/util.test.ts->util arrayify should wrap the value in an array if not an array", + "/testbed/test/unit/common/util.test.ts->util arrayify should return an empty array if the value is undefined", + "/testbed/test/unit/common/util.test.ts->util logError should log an error with the message and stack trace", + "/testbed/test/unit/common/util.test.ts->util logError should log an error, even if not an instance of error", + "/testbed/test/unit/node/plugin.test.ts->plugin /api/applications", + "/testbed/test/unit/node/plugin.test.ts->plugin /test-plugin/test-app", + "/testbed/test/unit/node/plugin.test.ts->plugin /test-plugin/test-app (websocket)", + "/testbed/test/unit/node/plugin.test.ts->plugin /test-plugin/error", + "/testbed/test/unit/node/routes/login.test.ts->login RateLimiter should allow one try ", + "/testbed/test/unit/node/routes/login.test.ts->login RateLimiter should pull tokens from both limiters (minute & hour)", + "/testbed/test/unit/node/routes/login.test.ts->login RateLimiter should not allow more than 14 tries in less than an hour", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return HTML with 'Missing password' message", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return HTML with 'Incorrect password' message", + "/testbed/test/unit/common/emitter.test.ts->emitter should run the correct callbacks", + "/testbed/test/unit/common/emitter.test.ts->emitter should log an error if something goes wrong", + "/testbed/test/unit/node/routes/static.test.ts->/_static disabled authentication should return a 404 when a file is not provided", + "/testbed/test/unit/node/routes/static.test.ts->/_static disabled authentication should return a 404 for a nonexistent file", + "/testbed/test/unit/node/routes/static.test.ts->/_static disabled authentication should return a 200 and file contents for an existent file", + "/testbed/test/unit/node/settings.test.ts->settings with invalid JSON in settings file should log a warning", + "/testbed/test/unit/node/settings.test.ts->settings with invalid settings file path should log a warning", + "/testbed/test/unit/node/http.test.ts->http should construct a relative path to the root", + "/testbed/test/unit/node/http.test.ts->constructRedirectPath should preserve slashes in queryString so they are human-readable", + "/testbed/test/unit/node/http.test.ts->constructRedirectPath should use an empty string if no query params", + "/testbed/test/unit/node/http.test.ts->constructRedirectPath should append the 'to' path relative to the originalUrl", + "/testbed/test/unit/node/http.test.ts->constructRedirectPath should append append queryParams after 'to' path", + "/testbed/test/unit/helpers.test.ts->test helpers should return a temp directory", + "/testbed/test/unit/helpers.test.ts->useEnv should set and reset the env var", + "/testbed/test/unit/helpers.test.ts->useEnv should set and reset the env var where a value was already set", + "/testbed/test/unit/helpers.test.ts->getAvailablePort should return a valid port", + "/testbed/test/unit/helpers.test.ts->getAvailablePort should return different ports for different calls", + "/testbed/test/unit/node/routes/health.test.ts->health /healthz", + "/testbed/test/unit/node/routes/health.test.ts->health /healthz (websocket)", + "/testbed/test/unit/common/http.test.ts->http HttpCode should return the correct HTTP codes", + "/testbed/test/unit/common/http.test.ts->http HttpError should work as expected", + "/testbed/test/unit/common/http.test.ts->http HttpError should have details if provided", + "/testbed/test/unit/node/routes/errors.test.ts->error page is rendered for text/html requests escapes any html in the error messages" + ], + "failed_tests": [ + "/testbed/test/unit/node/cli.test.ts->parser should parse all available options", + "/testbed/test/unit/node/cli.test.ts->parser should override with --link", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should load all route variations", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should redirect to the passed in workspace using human-readable query", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should redirect to the passed in folder using human-readable query", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should redirect to last query folder/workspace", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should do nothing when nothing is passed in", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should not redirect when last opened is ignored" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-6278_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-6278_result.json new file mode 100644 index 0000000..2e5b8b9 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/coder__code-server-6278_result.json @@ -0,0 +1,296 @@ +{ + "instance_id": "coder__code-server-6278", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "/testbed/test/unit/node/cli.test.ts->parser should parse nothing", + "/testbed/test/unit/node/cli.test.ts->parser should parse all available options", + "/testbed/test/unit/node/cli.test.ts->parser should work with short options", + "/testbed/test/unit/node/cli.test.ts->parser should use log level env var", + "/testbed/test/unit/node/cli.test.ts->parser should prefer --log to env var and --verbose to --log", + "/testbed/test/unit/node/cli.test.ts->parser should set valid log level env var", + "/testbed/test/unit/node/cli.test.ts->parser should ignore invalid log level env var", + "/testbed/test/unit/node/cli.test.ts->parser should error if value isn't provided", + "/testbed/test/unit/node/cli.test.ts->parser should error if value is invalid", + "/testbed/test/unit/node/cli.test.ts->parser should error if the option doesn't exist", + "/testbed/test/unit/node/cli.test.ts->parser should not error if the value is optional", + "/testbed/test/unit/node/cli.test.ts->parser should not allow option-like values", + "/testbed/test/unit/node/cli.test.ts->parser should allow positional arguments before options", + "/testbed/test/unit/node/cli.test.ts->parser should support repeatable flags", + "/testbed/test/unit/node/cli.test.ts->parser should enforce cert-key with cert value or otherwise generate one", + "/testbed/test/unit/node/cli.test.ts->parser should use env var password", + "/testbed/test/unit/node/cli.test.ts->parser should use env var hashed password", + "/testbed/test/unit/node/cli.test.ts->parser should use env var github token", + "/testbed/test/unit/node/cli.test.ts->parser should use env var CS_DISABLE_FILE_DOWNLOADS", + "/testbed/test/unit/node/cli.test.ts->parser should use env var CS_DISABLE_FILE_DOWNLOADS set to true", + "/testbed/test/unit/node/cli.test.ts->parser should use env var CS_DISABLE_GETTING_STARTED_OVERRIDE", + "/testbed/test/unit/node/cli.test.ts->parser should use env var CS_DISABLE_GETTING_STARTED_OVERRIDE set to true", + "/testbed/test/unit/node/cli.test.ts->parser should error if password passed in", + "/testbed/test/unit/node/cli.test.ts->parser should error if hashed-password passed in", + "/testbed/test/unit/node/cli.test.ts->parser should error if github-auth passed in", + "/testbed/test/unit/node/cli.test.ts->parser should filter proxy domains", + "/testbed/test/unit/node/cli.test.ts->parser should allow '=,$/' in strings", + "/testbed/test/unit/node/cli.test.ts->parser should parse options with double-dash and multiple equal signs ", + "/testbed/test/unit/node/cli.test.ts->parser should throw an error for invalid config values", + "/testbed/test/unit/node/cli.test.ts->parser should ignore optional strings set to false", + "/testbed/test/unit/node/cli.test.ts->parser should use last flag", + "/testbed/test/unit/node/cli.test.ts->parser should not set proxy uri", + "/testbed/test/unit/node/cli.test.ts->parser should set proxy uri", + "/testbed/test/unit/node/cli.test.ts->parser should set proxy uri to first domain", + "/testbed/test/unit/node/cli.test.ts->parser should not override existing proxy uri", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if inside code-server", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if --reuse-window is set", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if --new-window is set", + "/testbed/test/unit/node/cli.test.ts->cli should use existing if no unrelated flags are set, has positional, and socket is active", + "/testbed/test/unit/node/cli.test.ts->cli should prefer matching sessions for only the first path", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return false if no 'extension' related args passed in", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return true if 'list-extensions' passed in", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return true if 'install-extension' passed in", + "/testbed/test/unit/node/cli.test.ts->shouldSpawnCliProcess should return true if 'uninstall-extension' passed in", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should return the bind address", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use the bind-address if set in args", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use the host if set in args", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use process.env.PORT if set", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should set port if in args", + "/testbed/test/unit/node/cli.test.ts->bindAddrFromArgs should use the args.port over process.env.PORT if both set", + "/testbed/test/unit/node/cli.test.ts->defaultConfigFile should return the default config file as a string", + "/testbed/test/unit/node/cli.test.ts->toCodeArgs should convert empty args", + "/testbed/test/unit/node/cli.test.ts->toCodeArgs should ignore regular file", + "/testbed/test/unit/node/cli.test.ts->optionDescriptions should return the descriptions of all the available options", + "/testbed/test/unit/node/cli.test.ts->optionDescriptions should visually align multiple options", + "/testbed/test/unit/node/cli.test.ts->optionDescriptions should add all valid options for enumerated types", + "/testbed/test/unit/node/cli.test.ts->optionDescriptions should show if an option is deprecated", + "/testbed/test/unit/node/cli.test.ts->optionDescriptions should show newlines in description", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on darwin should return the env paths using xdgBasedir", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on darwin should return the env paths using envPaths when xdgBasedir is undefined", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on win32 should return the env paths using envPaths", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on other platforms should return the runtime using xdgBasedir if it exists", + "/testbed/test/unit/node/util.test.ts->getEnvPaths on other platforms should return the env paths using envPaths when xdgBasedir is undefined", + "/testbed/test/unit/node/util.test.ts->hash should return a hash of the string passed in", + "/testbed/test/unit/node/util.test.ts->hash should return a hash for an empty string", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return true if the password matches the hash", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false if the password does not match the hash", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return true with actual hash", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false if the password is empty", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false if the hash is empty", + "/testbed/test/unit/node/util.test.ts->isHashMatch should return false and not throw an error if the hash doesn't start with a $", + "/testbed/test/unit/node/util.test.ts->isHashMatch should reject the promise and throw if error", + "/testbed/test/unit/node/util.test.ts->hashLegacy should return a hash of the string passed in", + "/testbed/test/unit/node/util.test.ts->isHashLegacyMatch should return true if is match", + "/testbed/test/unit/node/util.test.ts->isHashLegacyMatch should return false if is match", + "/testbed/test/unit/node/util.test.ts->isHashLegacyMatch should return true if hashed from command line", + "/testbed/test/unit/node/util.test.ts->getPasswordMethod should return PLAIN_TEXT for no hashed password", + "/testbed/test/unit/node/util.test.ts->getPasswordMethod should return ARGON2 for password with 'argon2'", + "/testbed/test/unit/node/util.test.ts->getPasswordMethod should return SHA256 for password with legacy hash", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return true with a hashedPassword for a PLAIN_TEXT password", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return false when PLAIN_TEXT password doesn't match args", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return true with a hashedPassword for a SHA256 password", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return false when SHA256 password doesn't match hash", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return true with a hashedPassword for a ARGON2 password", + "/testbed/test/unit/node/util.test.ts->handlePasswordValidation should return false when ARGON2 password doesn't match hash", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be valid if hashed-password for SHA256 matches cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be invalid if hashed-password for SHA256 does not match cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be valid if hashed-password for ARGON2 matches cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be invalid if hashed-password for ARGON2 does not match cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be valid if password for PLAIN_TEXT matches cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should be invalid if hashed-password for PLAIN_TEXT does not match cookie.key", + "/testbed/test/unit/node/util.test.ts->isCookieValid should return false and empty string as hashedPassword when passwordMethod is invalid", + "/testbed/test/unit/node/util.test.ts->sanitizeString should return an empty string if passed a type other than a string", + "/testbed/test/unit/node/util.test.ts->sanitizeString should trim whitespace", + "/testbed/test/unit/node/util.test.ts->sanitizeString should always return an empty string", + "/testbed/test/unit/node/util.test.ts->onLine should call with individual lines", + "/testbed/test/unit/node/util.test.ts->onLine used with a process missing stdout should throw an error", + "/testbed/test/unit/node/util.test.ts->escapeHtml should escape HTML", + "/testbed/test/unit/node/util.test.ts->isFile should return false if is directory", + "/testbed/test/unit/node/util.test.ts->isFile should return true if is file", + "/testbed/test/unit/node/util.test.ts->isFile should return false if the path doesn't exist", + "/testbed/test/unit/node/util.test.ts->isDirectory should return false if is a file", + "/testbed/test/unit/node/util.test.ts->isDirectory should return true if is directory", + "/testbed/test/unit/node/util.test.ts->isDirectory should return false if the path doesn't exist", + "/testbed/test/unit/node/util.test.ts->humanPath should return an empty string if no path provided", + "/testbed/test/unit/node/util.test.ts->humanPath should replace the homedir with ~", + "/testbed/test/unit/node/util.test.ts->isWsl on Linux (microsoft) should return true", + "/testbed/test/unit/node/util.test.ts->isWsl on Linux (non-microsoft) should return false", + "/testbed/test/unit/node/util.test.ts->isWsl on Win32 with microsoft in /proc/version should return false", + "/testbed/test/unit/node/util.test.ts->isWsl on Darwin should return false", + "/testbed/test/unit/node/util.test.ts->open should throw an error if address is a string", + "/testbed/test/unit/node/util.test.ts->constructOpenOptions should return options for darwin", + "/testbed/test/unit/node/util.test.ts->constructOpenOptions should return options for linux", + "/testbed/test/unit/node/util.test.ts->constructOpenOptions should return options for win32", + "/testbed/test/unit/node/util.test.ts->constructOpenOptions should return options for wsl", + "/testbed/test/unit/node/util.test.ts->splitOnFirstEquals should ${test.name}", + "/testbed/test/unit/node/util.test.ts->splitOnFirstEquals should ${test.name}", + "/testbed/test/unit/node/util.test.ts->splitOnFirstEquals should ${test.name}", + "/testbed/test/unit/node/util.test.ts->splitOnFirstEquals should ${test.name}", + "/testbed/test/unit/node/util.test.ts->splitOnFirstEquals should ${test.name}", + "/testbed/test/unit/node/update.test.ts->update should get the latest", + "/testbed/test/unit/node/update.test.ts->update should keep existing information", + "/testbed/test/unit/node/update.test.ts->update should force getting the latest", + "/testbed/test/unit/node/update.test.ts->update should get latest after interval passes", + "/testbed/test/unit/node/update.test.ts->update should check if it's the current version", + "/testbed/test/unit/node/update.test.ts->update should not reject if unable to fetch", + "/testbed/test/unit/node/update.test.ts->update should reject if response has status code 500", + "/testbed/test/unit/node/update.test.ts->update should reject if no location header provided", + "/testbed/test/unit/node/update.test.ts->update should resolve the request with response.headers.location", + "/testbed/test/unit/node/update.test.ts->update should reject if more than 10 redirects", + "/testbed/test/unit/node/proxy.test.ts->proxy should rewrite the base path", + "/testbed/test/unit/node/proxy.test.ts->proxy should not rewrite the base path", + "/testbed/test/unit/node/proxy.test.ts->proxy should rewrite redirects", + "/testbed/test/unit/node/proxy.test.ts->proxy should not rewrite redirects", + "/testbed/test/unit/node/proxy.test.ts->proxy should allow post bodies", + "/testbed/test/unit/node/proxy.test.ts->proxy should handle bad requests", + "/testbed/test/unit/node/proxy.test.ts->proxy should handle invalid routes", + "/testbed/test/unit/node/proxy.test.ts->proxy should handle errors", + "/testbed/test/unit/node/proxy.test.ts->proxy should pass origin check", + "/testbed/test/unit/node/proxy.test.ts->proxy should fail origin check", + "/testbed/test/unit/node/proxy.test.ts->proxy should proxy non-ASCII", + "/testbed/test/unit/node/proxy.test.ts->proxy (standalone) should return a 500 when proxy target errors ", + "/testbed/test/unit/node/proxy.test.ts->proxy (standalone) should proxy correctly", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getCandidatesForFile should prefer the last added socket path for a matching path", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getCandidatesForFile should return the last added socketPath if there are no matches", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getCandidatesForFile does not just directly do a substring match", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getConnectedSocketPath should return socket path if socket is active", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getConnectedSocketPath should return undefined if socket is inactive", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getConnectedSocketPath should return undefined given no matching active sockets", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getConnectedSocketPath should return undefined if there are no entries", + "/testbed/test/unit/node/vscodeSocket.test.ts->EditorSessionManager getConnectedSocketPath should return most recently used socket path available", + "/testbed/test/unit/node/app.test.ts->createApp should return an Express app, a WebSockets Express app and an http server", + "/testbed/test/unit/node/app.test.ts->createApp should handle error events on the server", + "/testbed/test/unit/node/app.test.ts->createApp should reject errors that happen before the server can listen", + "/testbed/test/unit/node/app.test.ts->createApp should change the file mode of a socket", + "/testbed/test/unit/node/app.test.ts->createApp should create an https server if args.cert exists", + "/testbed/test/unit/node/app.test.ts->ensureAddress should throw and error if no address", + "/testbed/test/unit/node/app.test.ts->ensureAddress should return the address if it's a string", + "/testbed/test/unit/node/app.test.ts->ensureAddress should construct URL with an IPv4 address", + "/testbed/test/unit/node/app.test.ts->ensureAddress should construct URL with an IPv6 address", + "/testbed/test/unit/node/app.test.ts->handleArgsSocketCatchError should log an error if its not an NodeJS.ErrnoException", + "/testbed/test/unit/node/app.test.ts->handleArgsSocketCatchError should log an error if its not an NodeJS.ErrnoException (and the error has a message)", + "/testbed/test/unit/node/app.test.ts->handleArgsSocketCatchError should not log an error if its a NodeJS.ErrnoException", + "/testbed/test/unit/node/app.test.ts->handleArgsSocketCatchError should log an error if the code is not ENOENT (and the error has a message)", + "/testbed/test/unit/node/app.test.ts->handleArgsSocketCatchError should log an error if the code is not ENOENT", + "/testbed/test/unit/node/app.test.ts->listen should throw an error if a directory is passed in instead of a file", + "/testbed/test/unit/node/routes/login.test.ts->login RateLimiter should allow one try ", + "/testbed/test/unit/node/routes/login.test.ts->login RateLimiter should pull tokens from both limiters (minute & hour)", + "/testbed/test/unit/node/routes/login.test.ts->login RateLimiter should not allow more than 14 tries in less than an hour", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return HTML with 'Missing password' message", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return HTML with 'Incorrect password' message", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return correct app-name", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return correct app-name when unset", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return correct welcome text", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return correct welcome text when none is set but app-name is", + "/testbed/test/unit/node/routes/login.test.ts->login /login should return correct welcome text when locale is set to non-English", + "/testbed/test/unit/node/socket.test.ts->SocketProxyProvider should work without a proxy", + "/testbed/test/unit/node/socket.test.ts->SocketProxyProvider should work with a proxy", + "/testbed/test/unit/node/socket.test.ts->SocketProxyProvider should close", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should provide the commit", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should return the package.json version", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should include embedded Code version information", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should return a human-readable version string", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined should return a machine-readable version string", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined getPackageJson should log a warning if package.json not found", + "/testbed/test/unit/node/constants.test.ts->constants with package.json defined getPackageJson should find the package.json", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json version should return 'development'", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json commit should return 'development'", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json should return a human-readable version string", + "/testbed/test/unit/node/constants.test.ts->constants with incomplete package.json should return a machine-readable version string", + "/testbed/test/unit/node/http.test.ts->http should construct a relative path to the root", + "/testbed/test/unit/node/http.test.ts->http origin -> [host: ]", + "/testbed/test/unit/node/http.test.ts->http origin -> [x-forwarded-host: ]", + "/testbed/test/unit/node/http.test.ts->http origin -> [x-forwarded-host: , ]", + "/testbed/test/unit/node/http.test.ts->http origin -> [forwarded: for=127.0.0.1, host=, proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin -> [forwarded: for=127.0.0.1;proto=http;host=]", + "/testbed/test/unit/node/http.test.ts->http origin -> [forwarded: proto=http;host=, for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [host: ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: , ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1, host=, proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1;proto=http;host=]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: proto=http;host=, for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [host: ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: , ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1, host= , proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1;proto=http;host= ]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: proto=http;host= , for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [host: localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: localhost:8080, localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1, host=localhost:8080, proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1;proto=http;host=localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: proto=http;host=localhost:8080, for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [host: localhost:8081]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: localhost:8081]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [x-forwarded-host: localhost:8081, localhost:8081]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1, host=localhost:8081, proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: for=127.0.0.1;proto=http;host=localhost:8081]", + "/testbed/test/unit/node/http.test.ts->http origin http://localhost:8080 -> [forwarded: proto=http;host=localhost:8081, for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http origin localhost:8080 -> [host: localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin localhost:8080 -> [x-forwarded-host: localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin localhost:8080 -> [x-forwarded-host: localhost:8080, localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin localhost:8080 -> [forwarded: for=127.0.0.1, host=localhost:8080, proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin localhost:8080 -> [forwarded: for=127.0.0.1;proto=http;host=localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin localhost:8080 -> [forwarded: proto=http;host=localhost:8080, for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http origin test.org -> [host: localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin test.org -> [x-forwarded-host: localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin test.org -> [x-forwarded-host: localhost:8080, localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin test.org -> [forwarded: for=127.0.0.1, host=localhost:8080, proto=http]", + "/testbed/test/unit/node/http.test.ts->http origin test.org -> [forwarded: for=127.0.0.1;proto=http;host=localhost:8080]", + "/testbed/test/unit/node/http.test.ts->http origin test.org -> [forwarded: proto=http;host=localhost:8080, for=127.0.0.1]", + "/testbed/test/unit/node/http.test.ts->http constructRedirectPath should preserve slashes in queryString so they are human-readable", + "/testbed/test/unit/node/http.test.ts->http constructRedirectPath should use an empty string if no query params", + "/testbed/test/unit/node/http.test.ts->http constructRedirectPath should append the 'to' path relative to the originalUrl", + "/testbed/test/unit/node/http.test.ts->http constructRedirectPath should append append queryParams after 'to' path", + "/testbed/test/unit/node/heart.test.ts->Heart should write to a file when given a valid file path", + "/testbed/test/unit/node/heart.test.ts->Heart should log a warning when given an invalid file path", + "/testbed/test/unit/node/heart.test.ts->Heart should be active after calling beat", + "/testbed/test/unit/node/heart.test.ts->Heart should not be active after dispose is called", + "/testbed/test/unit/node/heart.test.ts->Heart should beat twice without warnings", + "/testbed/test/unit/node/heart.test.ts->heartbeatTimer should call beat when isActive resolves to true", + "/testbed/test/unit/node/heart.test.ts->heartbeatTimer should log a warning when isActive rejects", + "/testbed/test/unit/node/plugin.test.ts->plugin /api/applications", + "/testbed/test/unit/node/plugin.test.ts->plugin /test-plugin/test-app", + "/testbed/test/unit/node/plugin.test.ts->plugin /test-plugin/test-app (websocket)", + "/testbed/test/unit/node/plugin.test.ts->plugin /test-plugin/error", + "/testbed/test/unit/helpers.test.ts->test helpers should return a temp directory", + "/testbed/test/unit/helpers.test.ts->useEnv should set and reset the env var", + "/testbed/test/unit/helpers.test.ts->useEnv should set and reset the env var where a value was already set", + "/testbed/test/unit/helpers.test.ts->getAvailablePort should return a valid port", + "/testbed/test/unit/helpers.test.ts->getAvailablePort should return different ports for different calls", + "/testbed/test/unit/helpers.test.ts->getMaybeProxiedPathname should return the route", + "/testbed/test/unit/helpers.test.ts->getMaybeProxiedPathname should strip proxy if env var set", + "/testbed/test/unit/common/emitter.test.ts->emitter should run the correct callbacks", + "/testbed/test/unit/common/emitter.test.ts->emitter should log an error if something goes wrong", + "/testbed/test/unit/node/routes/static.test.ts->/_static disabled authentication should return a 404 when a file is not provided", + "/testbed/test/unit/node/routes/static.test.ts->/_static disabled authentication should return a 404 for a nonexistent file", + "/testbed/test/unit/node/routes/static.test.ts->/_static disabled authentication should return a 200 and file contents for an existent file", + "/testbed/test/unit/node/settings.test.ts->settings with invalid JSON in settings file should log a warning", + "/testbed/test/unit/node/settings.test.ts->settings with invalid settings file path should log a warning", + "/testbed/test/unit/common/util.test.ts->util normalize should remove multiple slashes", + "/testbed/test/unit/common/util.test.ts->util normalize should remove trailing slashes", + "/testbed/test/unit/common/util.test.ts->util normalize should preserve trailing slash if it exists", + "/testbed/test/unit/common/util.test.ts->util plural should add an s if count is greater than 1", + "/testbed/test/unit/common/util.test.ts->util plural should NOT add an s if the count is 1", + "/testbed/test/unit/common/util.test.ts->util generateUuid should generate a unique uuid", + "/testbed/test/unit/common/util.test.ts->util generateUuid should generate a uuid of a specific length", + "/testbed/test/unit/common/util.test.ts->util logError should log an error with the message and stack trace", + "/testbed/test/unit/common/util.test.ts->util logError should log an error, even if not an instance of error", + "/testbed/test/unit/node/routes/health.test.ts->health /healthz", + "/testbed/test/unit/node/routes/health.test.ts->health /healthz (websocket)", + "/testbed/test/unit/common/http.test.ts->http HttpCode should return the correct HTTP codes", + "/testbed/test/unit/common/http.test.ts->http HttpError should work as expected", + "/testbed/test/unit/common/http.test.ts->http HttpError should have details if provided", + "/testbed/test/unit/node/routes/errors.test.ts->error page is rendered for text/html requests escapes any html in the error messages", + "/testbed/test/unit/node/routes/vscode.test.ts->vscode should fail origin check", + "/testbed/test/unit/node/wrapper.test.ts->wrapper isChild should return false for parent process", + "/testbed/test/unit/node/wrapper.test.ts->wrapper should return false for parent process" + ], + "failed_tests": [ + "/testbed/test/unit/node/vscodeSocket.test.ts->DEFAULT_SOCKET_PATH should be a unique path per user", + "/testbed/test/unit/node/vscodeSocket.test.ts->makeEditorSessionManagerServer warns if socket cannot be created", + "/testbed/test/unit/node/app.test.ts->createApp should unlink a socket before listening on the socket" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-106767_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-106767_result.json new file mode 100644 index 0000000..38004c9 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-106767_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-106767", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-108964_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-108964_result.json new file mode 100644 index 0000000..7a2ec56 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-108964_result.json @@ -0,0 +1,46 @@ +{ + "instance_id": "microsoft__vscode-108964", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "SnippetSession normalize whitespace", + "SnippetSession adjust selection (overwrite[Before|After])", + "SnippetSession text edits & selection", + "SnippetSession text edit with reversed selection", + "SnippetSession snippets, repeated tabstops", + "SnippetSession snippets, just text", + "SnippetSession snippets, selections and new text with newlines", + "SnippetSession snippets, newline NO whitespace adjust", + "SnippetSession snippets, selections -> next/prev", + "SnippetSession snippets, selections & typing", + "SnippetSession snippets, insert shorter snippet into non-empty selection", + "SnippetSession snippets, insert longer snippet into non-empty selection", + "SnippetSession snippets, don't grow final tabstop", + "SnippetSession snippets, don't merge touching tabstops 1/2", + "SnippetSession snippets, don't merge touching tabstops 2/2", + "SnippetSession snippets, gracefully move over final tabstop", + "SnippetSession snippets, overwriting nested placeholder", + "SnippetSession snippets, selections and snippet ranges", + "SnippetSession snippets, nested sessions", + "SnippetSession snippets, typing at final tabstop", + "SnippetSession snippets, typing at beginning", + "SnippetSession snippets, typing with nested placeholder", + "SnippetSession snippets, snippet with variables", + "SnippetSession snippets, merge", + "SnippetSession snippets, transform", + "SnippetSession snippets, multi placeholder same index one transform", + "SnippetSession snippets, transform example", + "SnippetSession snippets, transform with indent", + "SnippetSession snippets, transform example hit if", + "SnippetSession snippets, transform adjacent to previous placeholder", + "SnippetSession Snippet placeholder index incorrect after using 2+ snippets in a row that each end with a placeholder, #30769", + "SnippetSession Snippet variable text isn't whitespace normalised, #31124", + "SnippetSession Selecting text from left to right, and choosing item messes up code, #31199", + "Unexpected Errors & Loader Errors should not have unexpected errors" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-109750_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-109750_result.json new file mode 100644 index 0000000..921a856 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-109750_result.json @@ -0,0 +1,16 @@ +{ + "instance_id": "microsoft__vscode-109750", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "ConfigurationRegistry configuration override", + "ConfigurationRegistry configuration override defaults - merges defaults", + "ConfigurationRegistry configuration defaults - overrides defaults", + "Unexpected Errors & Loader Errors should not have unexpected errors" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-110094_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-110094_result.json new file mode 100644 index 0000000..7c6ff37 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-110094_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-110094", + "patch_applied": true, + "generation": true, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-113837_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-113837_result.json new file mode 100644 index 0000000..d787149 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-113837_result.json @@ -0,0 +1,47 @@ +{ + "instance_id": "microsoft__vscode-113837", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "Filters or", + "Filters PrefixFilter - case sensitive", + "Filters PrefixFilter - ignore case", + "Filters CamelCaseFilter", + "Filters CamelCaseFilter - #19256", + "Filters matchesContiguousSubString", + "Filters matchesSubString", + "Filters matchesSubString performance (#35346)", + "Filters WordFilter", + "Filters fuzzyScore, #23215", + "Filters fuzzyScore, #23332", + "Filters fuzzyScore, #23190", + "Filters fuzzyScore, #23581", + "Filters fuzzyScore, #23458", + "Filters fuzzyScore, #23746", + "Filters fuzzyScore", + "Filters fuzzyScore (first match can be weak)", + "Filters fuzzyScore, many matches", + "Filters Freeze when fjfj -> jfjf, https://github.com/microsoft/vscode/issues/91807", + "Filters fuzzyScore, issue #26423", + "Filters Fuzzy IntelliSense matching vs Haxe metadata completion, #26995", + "Filters Separator only match should not be weak #79558", + "Filters Cannot set property '1' of undefined, #26511", + "Filters Vscode 1.12 no longer obeys 'sortText' in completion items (from language server), #26096", + "Filters patternPos isn't working correctly #79815", + "Filters topScore - fuzzyScore", + "Filters Unexpected suggestion scoring, #28791", + "Filters HTML closing tag proposal filtered out #38880", + "Filters fuzzyScoreGraceful", + "Filters List highlight filter: Not all characters from match are highlighterd #66923", + "Filters Autocompletion is matched against truncated filterText to 54 characters #74133", + "Filters \"Go to Symbol\" with the exact method name doesn't work as expected #84787", + "Filters Wrong highlight after emoji #113404", + "Filters Suggestion is not highlighted #85826", + "Unexpected Errors & Loader Errors should not have unexpected errors" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-122991_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-122991_result.json new file mode 100644 index 0000000..cac3327 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-122991_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-122991", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-123294_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-123294_result.json new file mode 100644 index 0000000..acc2075 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-123294_result.json @@ -0,0 +1,25 @@ +{ + "instance_id": "microsoft__vscode-123294", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "Editor Modes - Link Computer Null model", + "Editor Modes - Link Computer Parsing", + "Editor Modes - Link Computer issue #7855", + "Editor Modes - Link Computer issue #62278: \"Ctrl + click to follow link\" for IPv6 URLs", + "Editor Modes - Link Computer issue #70254: bold links dont open in markdown file using editor mode with ctrl + click", + "Editor Modes - Link Computer issue #86358: URL wrong recognition pattern", + "Editor Modes - Link Computer issue #67022: Space as end of hyperlink isn't always good idea", + "Editor Modes - Link Computer issue #100353: Link detection stops at \uff06(double-byte)", + "Editor Modes - Link Computer issue #121438: Link detection stops at\u3010...\u3011", + "Unexpected Errors & Loader Errors should not have unexpected errors" + ], + "failed_tests": [ + "Editor Modes - Link Computer issue #121438: Link detection stops at\u300a...\u300b", + "Editor Modes - Link Computer issue #121438: Link detection stops at \u201c...\u201d" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-127071_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-127071_result.json new file mode 100644 index 0000000..9561751 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-127071_result.json @@ -0,0 +1,23 @@ +{ + "instance_id": "microsoft__vscode-127071", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "AsyncDataTree Collapse state should be preserved across refresh calls", + "AsyncDataTree issue #68648", + "AsyncDataTree issue #67722 - once resolved, refreshed collapsed nodes should only get children when expanded", + "AsyncDataTree resolved collapsed nodes which lose children should lose twistie as well", + "AsyncDataTree support default collapse state per element", + "AsyncDataTree issue #80098 - concurrent refresh and expand", + "AsyncDataTree issue #80098 - first expand should call getChildren", + "AsyncDataTree issue #78388 - tree should react to hasChildren toggles", + "AsyncDataTree issues #84569, #82629 - rerender", + "AsyncDataTree issue #127035 - tree should react to collapseByDefault toggles", + "Unexpected Errors & Loader Errors should not have unexpected errors" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-132628_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-132628_result.json new file mode 100644 index 0000000..4747189 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-132628_result.json @@ -0,0 +1,36 @@ +{ + "instance_id": "microsoft__vscode-132628", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "Inline Completions Does not trigger automatically if disabled", + "Inline Completions Ghost text is shown after trigger", + "Inline Completions Ghost text is shown automatically when configured", + "Inline Completions Ghost text is updated automatically", + "Inline Completions Unindent whitespace", + "Inline Completions Unindent tab", + "Inline Completions No unindent after indentation", + "Inline Completions Next/previous", + "Inline Completions Calling the provider is debounced", + "Inline Completions Backspace is debounced", + "Inline Completions Forward stability", + "Inline Completions Support forward instability", + "Inline Completions Support backward instability", + "Inline Completions No race conditions", + "Inline Completions inlineCompletionToGhostText Basic", + "Inline Completions inlineCompletionToGhostText Empty ghost text", + "Inline Completions inlineCompletionToGhostText Whitespace (indentation)", + "Inline Completions inlineCompletionToGhostText Whitespace (outside of indentation)", + "Inline Completions inlineCompletionToGhostText Unsupported cases", + "Inline Completions inlineCompletionToGhostText Multi Part Diffing", + "Inline Completions inlineCompletionToGhostText Multi Part Diffing 1", + "Unexpected Errors & Loader Errors should not have unexpected errors" + ], + "failed_tests": [ + "Inline Completions Do not reuse cache from previous session (#132516)" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-135197_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-135197_result.json new file mode 100644 index 0000000..f82e73c --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-135197_result.json @@ -0,0 +1,251 @@ +{ + "instance_id": "microsoft__vscode-135197", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Editor Controller - Cursor cursor initialized", + "Editor Controller - Cursor no move", + "Editor Controller - Cursor move", + "Editor Controller - Cursor move in selection mode", + "Editor Controller - Cursor move beyond line end", + "Editor Controller - Cursor move empty line", + "Editor Controller - Cursor move one char line", + "Editor Controller - Cursor selection down", + "Editor Controller - Cursor move and then select", + "Editor Controller - Cursor move left on top left position", + "Editor Controller - Cursor move left", + "Editor Controller - Cursor move left with surrogate pair", + "Editor Controller - Cursor move left goes to previous row", + "Editor Controller - Cursor move left selection", + "Editor Controller - Cursor move right on bottom right position", + "Editor Controller - Cursor move right", + "Editor Controller - Cursor move right with surrogate pair", + "Editor Controller - Cursor move right goes to next row", + "Editor Controller - Cursor move right selection", + "Editor Controller - Cursor move down", + "Editor Controller - Cursor move down with selection", + "Editor Controller - Cursor move down with tabs", + "Editor Controller - Cursor move up", + "Editor Controller - Cursor move up with selection", + "Editor Controller - Cursor move up and down with tabs", + "Editor Controller - Cursor move up and down with end of lines starting from a long one", + "Editor Controller - Cursor issue #44465: cursor position not correct when move", + "Editor Controller - Cursor move to beginning of line", + "Editor Controller - Cursor move to beginning of line from within line", + "Editor Controller - Cursor move to beginning of line from whitespace at beginning of line", + "Editor Controller - Cursor move to beginning of line from within line selection", + "Editor Controller - Cursor move to beginning of line with selection multiline forward", + "Editor Controller - Cursor move to beginning of line with selection multiline backward", + "Editor Controller - Cursor move to beginning of line with selection single line forward", + "Editor Controller - Cursor move to beginning of line with selection single line backward", + "Editor Controller - Cursor issue #15401: \"End\" key is behaving weird when text is selected part 1", + "Editor Controller - Cursor issue #17011: Shift+home/end now go to the end of the selection start's line, not the selection's end", + "Editor Controller - Cursor move to end of line", + "Editor Controller - Cursor move to end of line from within line", + "Editor Controller - Cursor move to end of line from whitespace at end of line", + "Editor Controller - Cursor move to end of line from within line selection", + "Editor Controller - Cursor move to end of line with selection multiline forward", + "Editor Controller - Cursor move to end of line with selection multiline backward", + "Editor Controller - Cursor move to end of line with selection single line forward", + "Editor Controller - Cursor move to end of line with selection single line backward", + "Editor Controller - Cursor issue #15401: \"End\" key is behaving weird when text is selected part 2", + "Editor Controller - Cursor move to beginning of buffer", + "Editor Controller - Cursor move to beginning of buffer from within first line", + "Editor Controller - Cursor move to beginning of buffer from within another line", + "Editor Controller - Cursor move to beginning of buffer from within first line selection", + "Editor Controller - Cursor move to beginning of buffer from within another line selection", + "Editor Controller - Cursor move to end of buffer", + "Editor Controller - Cursor move to end of buffer from within last line", + "Editor Controller - Cursor move to end of buffer from within another line", + "Editor Controller - Cursor move to end of buffer from within last line selection", + "Editor Controller - Cursor move to end of buffer from within another line selection", + "Editor Controller - Cursor select all", + "Editor Controller - Cursor expandLineSelection", + "Editor Controller - Cursor no move doesn't trigger event", + "Editor Controller - Cursor move eventing", + "Editor Controller - Cursor move in selection mode eventing", + "Editor Controller - Cursor saveState & restoreState", + "Editor Controller - Cursor Independent model edit 1", + "Editor Controller - Cursor column select 1", + "Editor Controller - Cursor grapheme breaking", + "Editor Controller - Cursor issue #4905 - column select is biased to the right", + "Editor Controller - Cursor issue #20087: column select with mouse", + "Editor Controller - Cursor issue #20087: column select with keyboard", + "Editor Controller - Cursor issue #118062: Column selection cannot select first position of a line", + "Editor Controller - Cursor column select with keyboard", + "Editor Controller - Regression tests issue microsoft/monaco-editor#443: Indentation of a single row deletes selected text in some cases", + "Editor Controller - Regression tests Bug 9121: Auto indent + undo + redo is funky", + "Editor Controller - Regression tests issue #23539: Setting model EOL isn't undoable", + "Editor Controller - Regression tests issue #47733: Undo mangles unicode characters", + "Editor Controller - Regression tests issue #46208: Allow empty selections in the undo/redo stack", + "Editor Controller - Regression tests bug #16815:Shift+Tab doesn't go back to tabstop", + "Editor Controller - Regression tests Bug #18293:[regression][editor] Can't outdent whitespace line", + "Editor Controller - Regression tests issue #95591: Unindenting moves cursor to beginning of line", + "Editor Controller - Regression tests Bug #16657: [editor] Tab on empty line of zero indentation moves cursor to position (1,1)", + "Editor Controller - Regression tests bug #16740: [editor] Cut line doesn't quite cut the last line", + "Editor Controller - Regression tests issue #128602: When cutting multiple lines (ctrl x), the last line will not be erased", + "Editor Controller - Regression tests Bug #11476: Double bracket surrounding + undo is broken", + "Editor Controller - Regression tests issue #1140: Backspace stops prematurely", + "Editor Controller - Regression tests issue #10212: Pasting entire line does not replace selection", + "Editor Controller - Regression tests issue #74722: Pasting whole line does not replace selection", + "Editor Controller - Regression tests issue #4996: Multiple cursor paste pastes contents of all cursors", + "Editor Controller - Regression tests issue #16155: Paste into multiple cursors has edge case when number of lines equals number of cursors - 1", + "Editor Controller - Regression tests issue #43722: Multiline paste doesn't work anymore", + "Editor Controller - Regression tests issue #46440: (1) Pasting a multi-line selection pastes entire selection into every insertion point", + "Editor Controller - Regression tests issue #46440: (2) Pasting a multi-line selection pastes entire selection into every insertion point", + "Editor Controller - Regression tests issue #3071: Investigate why undo stack gets corrupted", + "Editor Controller - Regression tests issue #12950: Cannot Double Click To Insert Emoji Using OSX Emoji Panel", + "Editor Controller - Regression tests issue #3463: pressing tab adds spaces, but not as many as for a tab", + "Editor Controller - Regression tests issue #4312: trying to type a tab character over a sequence of spaces results in unexpected behaviour", + "Editor Controller - Regression tests issue #832: word right", + "Editor Controller - Regression tests issue #33788: Wrong cursor position when double click to select a word", + "Editor Controller - Regression tests issue #12887: Double-click highlighting separating white space", + "Editor Controller - Regression tests issue #9675: Undo/Redo adds a stop in between CHN Characters", + "Editor Controller - Regression tests issue #23913: Greater than 1000+ multi cursor typing replacement text appears inverted, lines begin to drop off selection", + "Editor Controller - Regression tests issue #23983: Calling model.setEOL does not reset cursor position", + "Editor Controller - Regression tests issue #23983: Calling model.setValue() resets cursor position", + "Editor Controller - Regression tests issue #36740: wordwrap creates an extra step / character at the wrapping point", + "Editor Controller - Regression tests issue #110376: multiple selections with wordwrap behave differently", + "Editor Controller - Regression tests issue #98320: Multi-Cursor, Wrap lines and cursorSelectRight ==> cursors out of sync", + "Editor Controller - Regression tests issue #41573 - delete across multiple lines does not shrink the selection when word wraps", + "Editor Controller - Regression tests issue #22717: Moving text cursor cause an incorrect position in Chinese", + "Editor Controller - Regression tests issue #112301: new stickyTabStops feature interferes with word wrap", + "Editor Controller - Regression tests issue #44805: Should not be able to undo in readonly editor", + "Editor Controller - Regression tests issue #46314: ViewModel is out of sync with Model!", + "Editor Controller - Regression tests issue #37967: problem replacing consecutive characters", + "Editor Controller - Regression tests issue #15761: Cursor doesn't move in a redo operation", + "Editor Controller - Regression tests issue #42783: API Calls with Undo Leave Cursor in Wrong Position", + "Editor Controller - Regression tests issue #85712: Paste line moves cursor to start of current line rather than start of next line", + "Editor Controller - Regression tests issue #84897: Left delete behavior in some languages is changed", + "Editor Controller - Regression tests issue #122914: Left delete behavior in some languages is changed (useTabStops: false)", + "Editor Controller - Regression tests issue #99629: Emoji modifiers in text treated separately when using backspace", + "Editor Controller - Regression tests issue #99629: Emoji modifiers in text treated separately when using backspace (ZWJ sequence)", + "Editor Controller - Regression tests issue #105730: move left behaves differently for multiple cursors", + "Editor Controller - Regression tests issue #105730: move right should always skip wrap point", + "Editor Controller - Regression tests issue #123178: sticky tab in consecutive wrapped lines", + "Editor Controller - Cursor Configuration Cursor honors insertSpaces configuration on new line", + "Editor Controller - Cursor Configuration Cursor honors insertSpaces configuration on tab", + "Editor Controller - Cursor Configuration Enter auto-indents with insertSpaces setting 1", + "Editor Controller - Cursor Configuration Enter auto-indents with insertSpaces setting 2", + "Editor Controller - Cursor Configuration Enter auto-indents with insertSpaces setting 3", + "Editor Controller - Cursor Configuration removeAutoWhitespace off", + "Editor Controller - Cursor Configuration removeAutoWhitespace on: removes only whitespace the cursor added 1", + "Editor Controller - Cursor Configuration issue #115033: indent and appendText", + "Editor Controller - Cursor Configuration issue #6862: Editor removes auto inserted indentation when formatting on type", + "Editor Controller - Cursor Configuration removeAutoWhitespace on: removes only whitespace the cursor added 2", + "Editor Controller - Cursor Configuration removeAutoWhitespace on: test 1", + "Editor Controller - Cursor Configuration issue #15118: remove auto whitespace when pasting entire line", + "Editor Controller - Cursor Configuration issue #40695: maintain cursor position when copying lines using ctrl+c, ctrl+v", + "Editor Controller - Cursor Configuration UseTabStops is off", + "Editor Controller - Cursor Configuration Backspace removes whitespaces with tab size", + "Editor Controller - Cursor Configuration PR #5423: Auto indent + undo + redo is funky", + "Editor Controller - Cursor Configuration issue #90973: Undo brings back model alternative version", + "Editor Controller - Indentation Rules Enter honors increaseIndentPattern", + "Editor Controller - Indentation Rules Type honors decreaseIndentPattern", + "Editor Controller - Indentation Rules Enter honors unIndentedLinePattern", + "Editor Controller - Indentation Rules Enter honors indentNextLinePattern", + "Editor Controller - Indentation Rules Enter honors indentNextLinePattern 2", + "Editor Controller - Indentation Rules Enter honors intential indent", + "Editor Controller - Indentation Rules Enter supports selection 1", + "Editor Controller - Indentation Rules Enter supports selection 2", + "Editor Controller - Indentation Rules Enter honors tabSize and insertSpaces 1", + "Editor Controller - Indentation Rules Enter honors tabSize and insertSpaces 2", + "Editor Controller - Indentation Rules Enter honors tabSize and insertSpaces 3", + "Editor Controller - Indentation Rules Enter supports intentional indentation", + "Editor Controller - Indentation Rules Enter should not adjust cursor position when press enter in the middle of a line 1", + "Editor Controller - Indentation Rules Enter should not adjust cursor position when press enter in the middle of a line 2", + "Editor Controller - Indentation Rules Enter should not adjust cursor position when press enter in the middle of a line 3", + "Editor Controller - Indentation Rules Enter should adjust cursor position when press enter in the middle of leading whitespaces 1", + "Editor Controller - Indentation Rules Enter should adjust cursor position when press enter in the middle of leading whitespaces 2", + "Editor Controller - Indentation Rules Enter should adjust cursor position when press enter in the middle of leading whitespaces 3", + "Editor Controller - Indentation Rules Enter should adjust cursor position when press enter in the middle of leading whitespaces 4", + "Editor Controller - Indentation Rules Enter should adjust cursor position when press enter in the middle of leading whitespaces 5", + "Editor Controller - Indentation Rules issue microsoft/monaco-editor#108 part 1/2: Auto indentation on Enter with selection is half broken", + "Editor Controller - Indentation Rules issue microsoft/monaco-editor#108 part 2/2: Auto indentation on Enter with selection is half broken", + "Editor Controller - Indentation Rules onEnter works if there are no indentation rules", + "Editor Controller - Indentation Rules onEnter works if there are no indentation rules 2", + "Editor Controller - Indentation Rules bug #16543: Tab should indent to correct indentation spot immediately", + "Editor Controller - Indentation Rules bug #2938 (1): When pressing Tab on white-space only lines, indent straight to the right spot (similar to empty lines)", + "Editor Controller - Indentation Rules bug #2938 (2): When pressing Tab on white-space only lines, indent straight to the right spot (similar to empty lines)", + "Editor Controller - Indentation Rules bug #2938 (3): When pressing Tab on white-space only lines, indent straight to the right spot (similar to empty lines)", + "Editor Controller - Indentation Rules bug #2938 (4): When pressing Tab on white-space only lines, indent straight to the right spot (similar to empty lines)", + "Editor Controller - Indentation Rules bug #31015: When pressing Tab on lines and Enter rules are avail, indent straight to the right spotTab", + "Editor Controller - Indentation Rules type honors indentation rules: ruby keywords", + "Editor Controller - Indentation Rules Auto indent on type: increaseIndentPattern has higher priority than decreaseIndent when inheriting", + "Editor Controller - Indentation Rules type honors users indentation adjustment", + "Editor Controller - Indentation Rules bug 29972: if a line is line comment, open bracket should not indent next line", + "Editor Controller - Indentation Rules issue #36090: JS: editor.autoIndent seems to be broken", + "Editor Controller - Indentation Rules issue #115304: OnEnter broken for TS", + "Editor Controller - Indentation Rules issue #38261: TAB key results in bizarre indentation in C++ mode ", + "Editor Controller - Indentation Rules issue #57197: indent rules regex should be stateless", + "Editor Controller - Indentation Rules ", + "Editor Controller - Indentation Rules issue #111128: Multicursor `Enter` issue with indentation", + "Editor Controller - Indentation Rules issue #122714: tabSize=1 prevent typing a string matching decreaseIndentPattern in an empty file", + "ElectricCharacter does nothing if no electric char", + "ElectricCharacter indents in order to match bracket", + "ElectricCharacter unindents in order to match bracket", + "ElectricCharacter matches with correct bracket", + "ElectricCharacter does nothing if bracket does not match", + "ElectricCharacter matches bracket even in line with content", + "ElectricCharacter is no-op if bracket is lined up", + "ElectricCharacter is no-op if there is non-whitespace text before", + "ElectricCharacter is no-op if pairs are all matched before", + "ElectricCharacter is no-op if matching bracket is on the same line", + "ElectricCharacter is no-op if the line has other content", + "ElectricCharacter appends text", + "ElectricCharacter appends text 2", + "ElectricCharacter issue #23711: Replacing selected text with )]} fails to delete old text with backwards-dragged selection", + "autoClosingPairs issue #61070: backtick (`) should auto-close after a word character", + "autoClosingPairs open parens: default", + "autoClosingPairs open parens: whitespace", + "autoClosingPairs open parens disabled/enabled open quotes enabled/disabled", + "autoClosingPairs configurable open parens", + "autoClosingPairs auto-pairing can be disabled", + "autoClosingPairs auto wrapping is configurable", + "autoClosingPairs quote", + "autoClosingPairs multi-character autoclose", + "autoClosingPairs issue #72177: multi-character autoclose with conflicting patterns", + "autoClosingPairs issue #55314: Do not auto-close when ending with open", + "autoClosingPairs issue #27937: Trying to add an item to the front of a list is cumbersome", + "autoClosingPairs issue #25658 - Do not auto-close single/double quotes after word characters", + "autoClosingPairs issue #37315 - overtypes only those characters that it inserted", + "autoClosingPairs issue #37315 - stops overtyping once cursor leaves area", + "autoClosingPairs issue #37315 - it overtypes only once", + "autoClosingPairs issue #37315 - it can remember multiple auto-closed instances", + "autoClosingPairs issue #118270 - auto closing deletes only those characters that it inserted", + "autoClosingPairs issue #78527 - does not close quote on odd count", + "autoClosingPairs issue #85983 - editor.autoClosingBrackets: beforeWhitespace is incorrect for Python", + "autoClosingPairs issue #78975 - Parentheses swallowing does not work when parentheses are inserted by autocomplete", + "autoClosingPairs issue #78833 - Add config to use old brackets/quotes overtyping", + "autoClosingPairs issue #15825: accents on mac US intl keyboard", + "autoClosingPairs issue #90016: allow accents on mac US intl keyboard to surround selection", + "autoClosingPairs issue #53357: Over typing ignores characters after backslash", + "autoClosingPairs issue #84998: Overtyping Brackets doesn't work after backslash", + "autoClosingPairs issue #2773: Accents (\u00b4`\u00a8^, others?) are inserted in the wrong position (Mac)", + "autoClosingPairs issue #26820: auto close quotes when not used as accents", + "autoClosingPairs issue #82701: auto close does not execute when IME is canceled via backspace", + "autoClosingPairs issue #20891: All cursors should do the same thing", + "autoClosingPairs issue #41825: Special handling of quotes in surrounding pairs", + "autoClosingPairs All cursors should do the same thing when deleting left", + "autoClosingPairs issue #7100: Mouse word selection is strange when non-word character is at the end of line", + "Undo stops there is an undo stop between typing and deleting left", + "Undo stops there is an undo stop between typing and deleting right", + "Undo stops there is an undo stop between deleting left and typing", + "Undo stops there is an undo stop between deleting left and deleting right", + "Undo stops there is an undo stop between deleting right and typing", + "Undo stops there is an undo stop between deleting right and deleting left", + "Undo stops inserts undo stop when typing space", + "Undo stops can undo typing and EOL change in one undo stop", + "Undo stops issue #93585: Undo multi cursor edit corrupts document", + "Undo stops there is a single undo stop for consecutive whitespaces", + "Undo stops there is no undo stop after a single whitespace", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-135805_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-135805_result.json new file mode 100644 index 0000000..1cb3aa5 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-135805_result.json @@ -0,0 +1,32 @@ +{ + "instance_id": "microsoft__vscode-135805", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Multicursor issue #26393: Multiple cursors + Word wrap", + "Multicursor issue #2205: Multi-cursor pastes in reverse order", + "Multicursor issue #1336: Insert cursor below on last line adds a cursor to the end of the current line", + "Multicursor selection issue #8817: Cursor position changes when you cancel multicursor", + "Multicursor selection issue #5400: \"Select All Occurrences of Find Match\" does not select all if find uses regex", + "Multicursor selection AddSelectionToNextFindMatchAction can work with multiline", + "Multicursor selection issue #6661: AddSelectionToNextFindMatchAction can work with touching ranges", + "Multicursor selection issue #23541: Multiline Ctrl+D does not work in CRLF files", + "Multicursor selection AddSelectionToNextFindMatchAction starting with single collapsed selection", + "Multicursor selection AddSelectionToNextFindMatchAction starting with two selections, one being collapsed 1)", + "Multicursor selection AddSelectionToNextFindMatchAction starting with two selections, one being collapsed 2)", + "Multicursor selection AddSelectionToNextFindMatchAction starting with all collapsed selections", + "Multicursor selection AddSelectionToNextFindMatchAction starting with all collapsed selections on different words", + "Multicursor selection issue #20651: AddSelectionToNextFindMatchAction case insensitive", + "Multicursor selection Find state disassociation enters mode", + "Multicursor selection Find state disassociation leaves mode when selection changes", + "Multicursor selection Find state disassociation Select Highlights respects mode ", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-136347_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-136347_result.json new file mode 100644 index 0000000..f9535cc --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-136347_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-136347", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-148971_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-148971_result.json new file mode 100644 index 0000000..b6d7058 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-148971_result.json @@ -0,0 +1,44 @@ +{ + "instance_id": "microsoft__vscode-148971", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "MarkdownRenderer npm Hover Run Script not working #90855", + "MarkdownRenderer Sanitization Should not render images with unknown schemes", + "MarkdownRenderer Images image rendering conforms to default", + "MarkdownRenderer Images image rendering conforms to default without title", + "MarkdownRenderer Images image width from title params", + "MarkdownRenderer Images image height from title params", + "MarkdownRenderer Images image width and height from title params", + "MarkdownRenderer Images image with file uri should render as same origin uri", + "MarkdownRenderer Code block renderer asyncRenderCallback should be invoked for code blocks", + "MarkdownRenderer Code block renderer asyncRenderCallback should not be invoked if result is immediately disposed", + "MarkdownRenderer Code block renderer asyncRenderCallback should not be invoked if dispose is called before code block is rendered", + "MarkdownRenderer ThemeIcons Support On render appendText", + "MarkdownRenderer ThemeIcons Support On render appendMarkdown", + "MarkdownRenderer ThemeIcons Support On render appendMarkdown with escaped icon", + "MarkdownRenderer ThemeIcons Support Off render appendText", + "MarkdownRenderer ThemeIcons Support Off render appendMarkdown with escaped icon", + "MarkdownRenderer PlaintextMarkdownRender test code, blockquote, heading, list, listitem, paragraph, table, tablerow, tablecell, strong, em, br, del, text are rendered plaintext", + "MarkdownRenderer PlaintextMarkdownRender test html, hr, image, link are rendered plaintext", + "MarkdownRenderer supportHtml supportHtml is disabled by default", + "MarkdownRenderer supportHtml Renders html when supportHtml=true", + "MarkdownRenderer supportHtml Should not include scripts even when supportHtml=true", + "MarkdownRenderer supportHtml Should not render html appended as text", + "MarkdownRenderer supportHtml Should render html images", + "MarkdownRenderer supportHtml Should render html images with file uri as same origin uri", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [ + "MarkdownRenderer Should not render command links by default", + "MarkdownRenderer Should render command links in trusted strings", + "MarkdownRenderer ThemeIcons Support On render icon in link", + "MarkdownRenderer ThemeIcons Support On render icon in table" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-149380_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-149380_result.json new file mode 100644 index 0000000..fc1e383 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-149380_result.json @@ -0,0 +1,22 @@ +{ + "instance_id": "microsoft__vscode-149380", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Debug - prepareCommand cmd", + "Debug - prepareCommand cmd - do not escape > and <", + "Debug - prepareCommand powershell", + "Debug - prepareCommand powershell - do not escape > and <", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [ + "Debug - prepareCommand bash", + "Debug - prepareCommand bash - do not escape > and <" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-153121_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-153121_result.json new file mode 100644 index 0000000..77103b5 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-153121_result.json @@ -0,0 +1,31 @@ +{ + "instance_id": "microsoft__vscode-153121", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Editor ViewModel - MonospaceLineBreaksComputer MonospaceLineBreaksComputer incremental 1", + "Editor ViewModel - MonospaceLineBreaksComputer issue #95686: CRITICAL: loop forever on the monospaceLineBreaksComputer", + "Editor ViewModel - MonospaceLineBreaksComputer issue #110392: Occasional crash when resize with panel on the right", + "Editor ViewModel - MonospaceLineBreaksComputer MonospaceLineBreaksComputer - CJK and Kinsoku Shori", + "Editor ViewModel - MonospaceLineBreaksComputer MonospaceLineBreaksComputer - WrappingIndent.Same", + "Editor ViewModel - MonospaceLineBreaksComputer issue #16332: Scroll bar overlaying on top of text", + "Editor ViewModel - MonospaceLineBreaksComputer issue #35162: wrappingIndent not consistently working", + "Editor ViewModel - MonospaceLineBreaksComputer issue #75494: surrogate pairs", + "Editor ViewModel - MonospaceLineBreaksComputer issue #75494: surrogate pairs overrun 1", + "Editor ViewModel - MonospaceLineBreaksComputer issue #75494: surrogate pairs overrun 2", + "Editor ViewModel - MonospaceLineBreaksComputer MonospaceLineBreaksComputer - WrappingIndent.DeepIndent", + "Editor ViewModel - MonospaceLineBreaksComputer issue #33366: Word wrap algorithm behaves differently around punctuation", + "Editor ViewModel - MonospaceLineBreaksComputer issue #152773: Word wrap algorithm behaves differently with bracket followed by comma", + "Editor ViewModel - MonospaceLineBreaksComputer issue #112382: Word wrap doesn't work well with control characters", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [ + "Editor ViewModel - MonospaceLineBreaksComputer MonospaceLineBreaksComputer" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-153857_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-153857_result.json new file mode 100644 index 0000000..dfb5412 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-153857_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-153857", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-157682_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-157682_result.json new file mode 100644 index 0000000..a799b80 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-157682_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-157682", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-160342_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-160342_result.json new file mode 100644 index 0000000..fef7f1d --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-160342_result.json @@ -0,0 +1,18 @@ +{ + "instance_id": "microsoft__vscode-160342", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Files - ExplorerView getContext", + "Files - ExplorerView decoration provider", + "Files - ExplorerView compressed navigation controller", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-164396_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-164396_result.json new file mode 100644 index 0000000..85f9b1e --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-164396_result.json @@ -0,0 +1,39 @@ +{ + "instance_id": "microsoft__vscode-164396", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "ModelService EOL setting respected depending on root", + "ModelService _computeEdits no change", + "ModelService _computeEdits first line changed", + "ModelService _computeEdits EOL changed", + "ModelService _computeEdits EOL and other change 1", + "ModelService _computeEdits EOL and other change 2", + "ModelService generated1", + "ModelService generated2", + "ModelService generated3", + "ModelService generated4", + "ModelService does insertions in the middle of the document", + "ModelService does insertions at the end of the document", + "ModelService does insertions at the beginning of the document", + "ModelService does replacements", + "ModelService does deletions", + "ModelService does insert, replace, and delete", + "ModelService maintains undo for same resource and same content", + "ModelService maintains version id and alternative version id for same resource and same content", + "ModelService does not maintain undo for same resource and different content", + "ModelService setValue should clear undo stack", + "ModelSemanticColoring DocumentSemanticTokens should be fetched when the result is empty if there are pending changes", + "ModelSemanticColoring issue #149412: VS Code hangs when bad semantic token data is received", + "ModelSemanticColoring issue #161573: onDidChangeSemanticTokens doesn't consistently trigger provideDocumentSemanticTokens", + "ModelSemanticColoring DocumentSemanticTokens should be pick the token provider with actual items", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-168752_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-168752_result.json new file mode 100644 index 0000000..0756a75 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-168752_result.json @@ -0,0 +1,30 @@ +{ + "instance_id": "microsoft__vscode-168752", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Editor Modes - Link Computer Null model", + "Editor Modes - Link Computer Parsing", + "Editor Modes - Link Computer issue #7855", + "Editor Modes - Link Computer issue #62278: \"Ctrl + click to follow link\" for IPv6 URLs", + "Editor Modes - Link Computer issue #70254: bold links dont open in markdown file using editor mode with ctrl + click", + "Editor Modes - Link Computer issue #86358: URL wrong recognition pattern", + "Editor Modes - Link Computer issue #67022: Space as end of hyperlink isn't always good idea", + "Editor Modes - Link Computer issue #100353: Link detection stops at \uff06(double-byte)", + "Editor Modes - Link Computer issue #121438: Link detection stops at\u3010...\u3011", + "Editor Modes - Link Computer issue #121438: Link detection stops at\u300a...\u300b", + "Editor Modes - Link Computer issue #121438: Link detection stops at \u201c...\u201d", + "Editor Modes - Link Computer issue #150905: Colon after bare hyperlink is treated as its part", + "Editor Modes - Link Computer issue #156875: Links include quotes ", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [ + "Editor Modes - Link Computer issue #119696: Links shouldn't include commas" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-173585_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-173585_result.json new file mode 100644 index 0000000..1a6ea6a --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-173585_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-173585", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-177084_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-177084_result.json new file mode 100644 index 0000000..e9f86b2 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-177084_result.json @@ -0,0 +1,11 @@ +{ + "instance_id": "microsoft__vscode-177084", + "patch_applied": false, + "generation": false, + "with_logs": false, + "all_f2p_passed": false, + "no_p2p_failed": false, + "resolved": false, + "passed_tests": [], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-189223_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-189223_result.json new file mode 100644 index 0000000..3e72782 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/microsoft__vscode-189223_result.json @@ -0,0 +1,40 @@ +{ + "instance_id": "microsoft__vscode-189223", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "Tests are using suiteSetup and setup correctly assertCleanState - check that registries are clean at the start of test running", + "Workbench - TerminalWordLinkDetector should support multiple link results", + "Workbench - TerminalWordLinkDetector should remove trailing colon in the link results", + "Workbench - TerminalWordLinkDetector should support wrapping", + "Workbench - TerminalWordLinkDetector should support wrapping with multiple links", + "Workbench - TerminalWordLinkDetector does not return any links for empty text", + "Workbench - TerminalWordLinkDetector should support file scheme links", + "Workbench - TerminalWordLinkDetector should link words as defined by wordSeparators \" ()[]\"", + "Workbench - TerminalWordLinkDetector should link words as defined by wordSeparators \" \"", + "Workbench - TerminalWordLinkDetector should link words as defined by wordSeparators \" []\"", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b0", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b1", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b2", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b3", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b4", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b5", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b6", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b7", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b8", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0b9", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0ba", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0bb", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0bc", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0bd", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0be", + "Workbench - TerminalWordLinkDetector should ignore powerline symbols \\ue0bf", + "Unexpected Errors & Loader Errors should not have unexpected errors", + "Unexpected Errors & Loader Errors assertCleanState - check that registries are clean and objects are disposed at the end of test running" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11451_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11451_result.json new file mode 100644 index 0000000..2f8ac63 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11451_result.json @@ -0,0 +1,27 @@ +{ + "instance_id": "mui__material-ui-11451", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "packages/material-ui/src/ListItem/ListItem.test.js-> should render a div", + "packages/material-ui/src/ListItem/ListItem.test.js-> should render a li", + "packages/material-ui/src/ListItem/ListItem.test.js-> should render with the user, root and gutters classes", + "packages/material-ui/src/ListItem/ListItem.test.js-> should disable the gutters", + "packages/material-ui/src/ListItem/ListItem.test.js-> should use dense class when ListItemAvatar is present", + "packages/material-ui/src/ListItem/ListItem.test.js-> prop: button should render a div", + "packages/material-ui/src/ListItem/ListItem.test.js-> prop: component should change the component", + "packages/material-ui/src/ListItem/ListItem.test.js-> prop: component should change the component", + "packages/material-ui/src/ListItem/ListItem.test.js-> context: dense should forward the context", + "packages/material-ui/src/ListItem/ListItem.test.js-> secondary action should wrap with a container", + "packages/material-ui/src/ListItem/ListItem.test.js-> secondary action should accept a component property", + "packages/material-ui/src/ListItem/ListItem.test.js-> secondary action should accet a button property", + "packages/material-ui/src/ListItem/ListItem.test.js-> secondary action should accept a ContainerComponent property", + "packages/material-ui/src/ListItem/ListItem.test.js-> secondary action should allow customization of the wrapper", + "packages/material-ui/src/ListItem/ListItem.test.js-> prop: focusVisibleClassName should merge the class names" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11858_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11858_result.json new file mode 100644 index 0000000..b98a4ae --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11858_result.json @@ -0,0 +1,30 @@ +{ + "instance_id": "mui__material-ui-11858", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should render a div", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should render with the user and root classes", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should render with inset class", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should render with no children", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should render primary and secondary text", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should render primary and secondary text with customisable classes", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should not re-wrap the element", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should pass primaryTypographyProps to primary Typography component", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> should pass secondaryTypographyProps to secondary Typography component", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: primary should render primary text", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: primary should use the primary node", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: primary should use the children prop as primary node", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: primary should read 0 as primary", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: secondary should render secondary text", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: secondary should use the secondary node", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: secondary should read 0 as secondary", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: disableTypography should wrap children in `` by default", + "packages/material-ui/src/ListItemText/ListItemText.test.js-> prop: disableTypography should render JSX children" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11987_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11987_result.json new file mode 100644 index 0000000..cc33990 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-11987_result.json @@ -0,0 +1,24 @@ +{ + "instance_id": "mui__material-ui-11987", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> renders children by default", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> should render an svg", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> should spread props on svg", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: titleAccess should be able to make an icon accessible", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: color should render with the user and SvgIcon classes", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: color should render with the secondary color", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: color should render with the action color", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: color should render with the error color", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: color should render with the primary class", + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: fontSize should be able to change the fontSize" + ], + "failed_tests": [ + "packages/material-ui/src/SvgIcon/SvgIcon.test.js-> prop: component should render component before path" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12236_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12236_result.json new file mode 100644 index 0000000..303e6c5 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12236_result.json @@ -0,0 +1,31 @@ +{ + "instance_id": "mui__material-ui-12236", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth server side rendering should not render the children as the width is unknown", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth prop: width should be able to override it", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth prop: innerRef should provide a ref on the inner component", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth browser should provide the right width to the child element", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth isWidthUp should work as default inclusive", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth isWidthUp should work as exclusive", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth isWidthDown should work as default inclusive", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth isWidthDown should work as exclusive", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth width computation should work as expected", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth handle resize should handle resize event", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth prop: initialWidth should work as expected", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth option: initialWidth should work as expected", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth theme prop: MuiWithWidth.initialWidth should use theme prop", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth option: withTheme should inject the theme", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth option: withTheme should forward the theme", + "packages/material-ui/src/withWidth/withWidth.test.js->withWidth option: noSSR should work as expected", + "packages/material-ui/src/styles/withTheme.test.js->withTheme should use the theme provided by the context", + "packages/material-ui/src/styles/withTheme.test.js->withTheme should rerender when the theme is updated", + "packages/material-ui/src/styles/withTheme.test.js->withTheme prop: innerRef should provide a ref on the inner component" + ], + "failed_tests": [] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12303_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12303_result.json new file mode 100644 index 0000000..dc9c3c5 --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12303_result.json @@ -0,0 +1,24 @@ +{ + "instance_id": "mui__material-ui-12303", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": false, + "no_p2p_failed": true, + "resolved": false, + "passed_tests": [ + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> should render the label text inside an additional element", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> should mount without issue", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> should not inject extra properties", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> should forward some properties", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> prop: disabled should disable everything 1", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> prop: disabled should disable everything 2", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> with muiFormControl context enabled should not have the disabled class", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> with muiFormControl context enabled should be overridden by props", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> with muiFormControl context disabled should have the disabled class", + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> with muiFormControl context disabled should honor props" + ], + "failed_tests": [ + "packages/material-ui/src/FormControlLabel/FormControlLabel.test.js-> prop: labelPlacement should disable have the `start` class" + ] +} \ No newline at end of file diff --git a/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12406_result.json b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12406_result.json new file mode 100644 index 0000000..09b24fb --- /dev/null +++ b/evaluation/PBVerified/20260312_pando_gpt-5.2-codex/logs/mui__material-ui-12406_result.json @@ -0,0 +1,21 @@ +{ + "instance_id": "mui__material-ui-12406", + "patch_applied": true, + "generation": true, + "with_logs": true, + "all_f2p_passed": true, + "no_p2p_failed": true, + "resolved": true, + "passed_tests": [ + "packages/material-ui/src/Input/Textarea.test.js->