just fixed 65,000+ warnings/errors to adopt swift strict concurrency in the @tradera ios app. done with @cursor and plenty(!) of agents + subagents. each subagent was focused on a single warning/error.
not by adding main actor to everything, but by actually doing the migration properly.
rolling out to production next week.
Tech story: We rebuilt our internal feature toggle UI. It looks simple in the screenshot, but hides a lot of targeting and internal logic.
Biggest takeaway: with AI agents, a single developer got this done in under 5 hours.
AI agents are fantastic at handling the “boring” parts of internal tooling.
commit and create a pr is my favourite custom slash commands in @cursor_ai:
- commit: checks out to a feature branch if needed and creates the commit message with a ticket id included
- pr: uses the github cli to create a pr with a title and description based on the commits + context from the agent chat
keeps me locked in
day 3: 58 PRs merged to production – still 0 bugs introduced!
now all of the nextjs backend is typescript. looking into components next (around 300 left to do)
855 javascript files when i began. now 560 left.
doing another big refactor with @cursor_ai background agents. this time converting all of https://t.co/XCSuJiZXpn to typescript - including all the legacy stuff from 15+ years ago
i guess it will be around 700 PRs in total
goal to complete it within a week with 0 production issues yet again
@WilliamHolmbe19 thanks! before each release we ran the basic pipeline with tsc, linting, unit tests and e2e tests. this caught a few issues that the agents missed.
it's been a few weeks now since this was released and still no reports that this migration has caused any bugs in production
basic stuff: tsc, linting (with some custom rules to require it to follow our design patterns), unit tests and just a few e2e tests on critical core flows
@cursor_ai bugbot but also human review
the only misstake the agent did was adding inline comments like ”replaced with named export”. we updated the rules and close those PRs and ran it again which fixed it
did a workshop session this week where we used @cursor_ai Cloud Agents to refactor away all default exports in the web of @Tradera
all done within 3 hours (300 default exports removed)
1. launch a bunch of agents via the API
2. each agent is in charge of a set of files to refactor
3. PR is created and verification steps are run
4. release to prod
no bugs introduced and all legacy gone
@SvenMeyer only @cursor_ai bugbot (with no custom rules) on this one. these PRs was really small and easy to review. i think that was a big deal in making it fast to review
hit a new record with +100 PRs in one single day.
almost done with this refactoring. more details coming later this week. (still 0 bugs introduced which is insane!)
my github contributions is ruined though lol
doing another big refactor with @cursor_ai background agents. this time converting all of https://t.co/XCSuJiZXpn to typescript - including all the legacy stuff from 15+ years ago
i guess it will be around 700 PRs in total
goal to complete it within a week with 0 production issues yet again