What's New in RobotCode v2.5.0 (April 1st Edition)
Hello everyone,
we're excited to share a big RobotCode release with you today. As many of you know, the main focus of v2.5.0 has been on performance — analysis caching, faster keyword resolution, smarter code completion. But while working on those features, we discovered some surprising opportunities that we just couldn't leave on the table. Here's the full picture.
Predictive Analysis Caching
You already know that RobotCode now caches analysis results in a local SQLite database for instant startup. But we didn't stop there.
The new Predictive Caching engine uses your git history, file modification patterns, and time-of-day statistics to pre-analyze files you're likely to open next. If you usually start your Monday mornings in the login test suite, RobotCode has those results ready before you even open the file.
It also watches your keyboard idle patterns. Extended pauses after writing a FOR loop typically mean you're about to switch to a different file for reference — so RobotCode pre-caches the top 5 most probable navigation targets during those pauses.
Configure prediction depth in robot.toml:
[tool.robotcode-analyze.cache]
prediction-depth = "clairvoyant" # options: "conservative", "optimistic", "clairvoyant"Proactive Performance Mode
The performance improvements in v2.5.0 (94% faster keyword matching, 28% faster file resolution) were so effective that we ran into an unexpected problem: RobotCode now finishes analysis before some editors are ready to receive the results.
To address this, we've added Proactive Performance Mode. When enabled, RobotCode uses the leftover time between analysis completion and editor readiness to perform speculative work:
- pre-resolving keywords from libraries you haven't imported yet but statistically might
- warming up code completion for keyword arguments you're likely to type based on cursor position history
- pre-computing diagnostics for code you haven't written yet, based on how similar keyword calls usually end
This occasionally leads to diagnostic warnings appearing for lines that don't exist yet. This is expected behavior and usually means you were going to make that mistake anyway.
Emotional Code Completion
The new type hint-based completion for Literal values turned out to be just the beginning. Our analysis of completion acceptance rates revealed that keyword suggestions are significantly more effective when they match the developer's current emotional context.
RobotCode now analyzes several signals to determine your coding mood:
- typing speed and error correction frequency
- time since last successful test run
- number of times you've hovered over the same unresolved keyword
- current scroll velocity (fast scrolling = frustration, slow scrolling = contemplation)
Based on this, code completion now adjusts its suggestions:
- Confident mode: shows advanced keywords, complex argument patterns, embedded arguments
- Cautious mode: prioritizes well-tested keywords with high call frequency in your workspace
- Frustrated mode: moves
SleepandLog To Consoleto the top of every completion list - Resignation mode: suggests
[Tags] known-issueandSkip Not today
Keyword Adoption Program
Finding unused keywords with robotcode analyze code --collect-unused was a much-requested feature. But simply listing unused keywords felt incomplete. These keywords were written by someone, probably with good intentions, possibly on a Friday afternoon. They deserve better than a cold diagnostic message.
RobotCode now offers the Keyword Adoption Program. When an unused keyword is detected, instead of just flagging it, RobotCode:
- checks if any other workspace in your organization could use it (via the new optional Keyword Sharing Protocol)
- generates a short "keyword biography" describing when it was written, how many times it was called in happier times, and what it probably hoped to achieve
- suggests test cases where it could be useful, even if nobody asked
Keywords that remain unadopted for more than 30 days receive a farewell message in the Problems panel before being eligible for cleanup.
You can sponsor a keyword to prevent its removal:
[tool.robotcode-analyze.code]
sponsored-keywords = ["Click All The Things", "Verify Everything Is Fine"]Cache Mood Indicators
The new robotcode analyze cache CLI commands give you full control over your analysis cache. But raw statistics felt impersonal, so we've added a Cache Mood indicator.
Your cache now has feelings:
$ robotcode analyze cache info
Cache status: 😊 Content (2,847 entries, 98.2% hit rate)Possible moods:
- 😊 Content — high hit rate, low invalidation, everything is in harmony
- 😐 Indifferent — moderate hit rate, cache is doing its job but doesn't feel appreciated
- 😟 Anxious — frequent invalidations, the cache is worried it might not be needed anymore
- 😤 Frustrated — constant cache misses, usually caused by rapidly changing files, the cache would like you to please make up your mind
- 💔 Heartbroken — you ran
cache prune, the cache remembers everything that was lost
Running cache prune followed by cache info now shows a brief memorial of what was deleted, including the oldest entry's creation date and a message like "It had been with you since Tuesday."
ProjectIndex: The Keyword Social Network
The new workspace-wide ProjectIndex tracks references between keywords, variables, and namespaces. Internally, this is a straightforward inverse index. But we realized the data maps surprisingly well to social network concepts.
The new Keyword Social Graph (available via robotcode analyze social) shows:
- Popularity: which keywords are called by the most test cases
- Influence: keywords whose failure would cascade to the most other tests
- Cliques: groups of keywords that are always used together and never separately
- Loners: keywords with zero incoming references (see: Keyword Adoption Program above)
- Frenemies: keyword pairs that are frequently used in the same test but never in the same keyword call — suggesting an unresolved tension
Keywords with high influence automatically receive a [Critical] badge in code completion. Keywords in the "Loners" category get a 💬 icon suggesting they "reach out" to nearby test cases.
Known Limitations
- Predictive caching defaults to
"clairvoyant"on Fridays, which can cause unexpected cache entries for files in branches you haven't checked out yet - Emotional code completion cannot detect sarcasm in keyword names
- The Keyword Adoption Program does not yet support cross-company adoption due to GDPR concerns
- Cache mood indicators are not yet configurable and may not reflect your own feelings about the cache
robotcode analyze social --include-dramais available but not recommended in production environments- The keyword social graph may reveal uncomfortable truths about your project's architecture
Breaking Changes
- Cache entries now have feelings and may resist deletion if recently populated
- Keyword completion order may vary depending on your emotional state
- Running
cache prunenow prompts "Are you sure?" followed by "Are you really sure?" followed by a 5-second countdown
Migration Guide
No manual migration is required. However, we recommend:
- giving your team a heads-up about the keyword biographies before someone gets emotional
- reviewing your CI pipeline expectations around cache mood
- not running
robotcode analyze social --include-dramaduring sprint reviews - checking the date before filing issues about any of the above
What Actually Changed
Happy April 1st! 😄
None of the above features exist. Probably for the best. But there is a real v2.5.0 release — and it's actually worth reading.