Why a recap
It is 15 December. A year ago I closed the year with the sentence that AI had entered the draft and the editor, not ownership, and that Copilot Chat on 15 December 2023 was still not GA. Today Chat has been generally available since 29 December. This year’s question is different: did the new channels change who signs the merge.
The answer is narrow. I got more places for a sketch: chat in stable VS Code, a comment on a PR, a description of a screenshot, a draft of a nightly report, an assistant instruction. I did not get merge ownership. I did not cure CI flake with “self-healing”. On 15 December Copilot code review is still not GA. The pyramid from 2021, 2022 and 2023 stays.
This text is a reckoning, not a twelfth tutorial. You will not find a new YAML here.
Three years of foundation
The 2021 axis stands. Isolation: a container instead of an install, a stub instead of someone else’s environment. Local Testcontainers from April 2021 is still the runtime canon, even when in July I offload containers to the cloud.
The 2022 axis too. Copilot GA on 21 June 2022 was ghost text for me through all of 2024. Playwright, the trigger strategy and visual did not get a fifth “LLM” basket.
The 2023 axis: ChatGPT, GPT-4, Copilot Chat on preview. The pyramid did not flatten. Flake triage stayed a microscope, not a gate. 2024 starts from Chat GA, not from new ownership.
Headlines that did not enter the process
In January agents were a headline, not a suite owner. Auto-GPT from 2023 does not commit tests for me. Devin from 12 March stays press.
In February locator healing (Healenium, Testim, Mabl) was older than the hype. Environment flake is not cured by swapping a selector. Playwright has no official self-healing GA and did not replace 2023 triage.
In March @workspace in Chat (changelog 30 November 2023) is not the Copilot Workspace product. Workspace has been a technical preview on a waitlist since 29 April. It is not a daily tool and it is not GA.
The suite has no autonomous owner. That January sentence still closes those three months.
IDE and pairing on E2E
Ghost text from 2022 stays. Chat in stable VS Code is GA all year. In April pairing on E2E looked like this: Chat sketches a scenario, runner 1.43.1 says whether it is green. I stayed the owner of the assertion.
@workspace gathers references from several files. It does not drive a change from issue to PR. That March distinction did not soften by December.
Cursor exists. I did not move the year onto it and I am not making it the tool of the year.
Eyes and gates
In May a vision model described a PNG. The gate stayed toHaveScreenshot and the tools from November 2022. GPT-4o was two days old and not the core. An LLM on a screenshot did not replace the pixel gate.
In August I added AxeBuilder 4.9 and toHaveAccessibleName on Playwright 1.46. That is not a WCAG 2.2 certificate. Visual catches layout. The tree catches a name. On 18 November, in 1.49.0, toMatchAriaSnapshot appeared. It was not in the August tutorial. The recap may name it. The pin I close the year on is Playwright 1.49.1 from 10 December. Component testing is still experimental.
CI and runtime
In June “AI review” was a job or a card on the PR: a Copilot Enterprise summary, a bot such as CodeRabbit or PR-Agent. That is not ghost text from April 2023. Copilot Autofix for CodeQL has been GA since 14 August and it is security, not a review of tests. Copilot code review as an auto-review product is still not GA on 15 December.
In July I offloaded container runtime to Docker’s cloud after the AtomicJar acquisition. The public beta was 25 January 2023. I am not inventing a GA date the pack did not find. The local daemon from 2021 stays canon. On 10 December Docker announced updated plans; that is a December pricing change, not a description of July.
The required check on main did not get an AI job. The 2022 strategy has no fifth basket.
Load, report, assistant
In September k6 0.53 with k6/browser measured load. Playwright 1.47 stayed the functional suite. Load on nightly, not instead of E2E. o1-preview from 12 September stayed a headline, not the pin of a scenario.
In October GPT-4o mini assembled a sketch from nightly JUnit. A human publishes. The gate stays on the runner. That is a follow-up to 2023 triage: there a microscope of one failure, here a map of the night.
In November I assembled a narrow GPT / Assistants helper on synthetic notes. The prior art is DevDay on 6 November 2023, not this month. There are no client names and no product launch. .NET 9 has been GA since 12 November; this year’s tutorials often stayed on 8. Claude computer use from 22 October stayed a headline, not an agent clicking the IDE.
The 2021 Completions experiment and Chat from May 2023 still describe the nature of a sketch: the model speeds up the first version, review stays.
What I deliberately leave for 2025
Copilot code review as a GA product. The changelog I know sits outside this year. I am not pretending I have it on 15 December.
An agent-owner that maintains the suite and merges by itself. I do not have one and I do not want one until I can say who signs the diff.
Testcontainers Cloud as GA with a date, if a URL ever exists. Today I have a Docker product and a local daemon.
Cursor as a daily driver. It exists. I did not move the workshop.
toMatchAriaSnapshot as the a11y canon. It is in 1.49. The August automat stayed with axe and accessible name, because that is what I wrote on 15 August.
Metrics
I do not measure the number of models. I measure flake, gate wall-clock, and whether an assertion checks something.
Required-check wall-clock on a PR did not return to the thirty-four minutes from before the 2022 split. Nightly E2E I still pay in time. k6 did not enter that gate. A report from mini is not required.
A sentence for 2025: I want the answer to “where in this process is AI” to still contain the verb “I review”. In 2024 I reviewed more channels. Ownership did not change address.
See you in January.

