Skip to content

2.0.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@lcottercertinia lcottercertinia released this 08 Sep 00:20
· 41 commits to main since this release
Immutable release. Only release title and notes can be modified.
c045f53

What's Changed

Upgrading from 1.x? Every tool is renamed, and --allowed-orgs is gone. See Migrating from 1.x.

Added

  • apexlog_list_slow_operations folds repeat calls into one row - by name, by callerNamespace, or by debug log category - each row totalling what the transaction saves if the group never runs, so the rows do not add up ([#101], [#126], [#127], [#131], [#138])
  • apexlog_list_slow_operations sorts by an operation's net heap allocation, not only time (sortBy: "heapSelfNetBytes") ([#99], [#127], [#138])
  • apexlog_list_slow_operations returns the query optimiser's plan for each query it ranked ([#120])
  • apexlog_list_slow_operations returns matchedCount, so you can tell whether the page hid rows ([#63])
  • apexlog_list_slow_operations and apexlog_list_limit_risks report the level each debug log category was logged at ([#102], [#138])
  • apexlog_execute_anonymous reports progress, and says when the org logged at levels other than the ones asked for ([#65])
  • --no-apex-execution stops apexlog_execute_anonymous running Apex, while the log analysis tools keep working ([#52])

Changed

  • Breaking: rename every tool with an apexlog_ prefix: analyze_apex_log_performance is now apexlog_list_slow_operations. Full mapping in Migrating from 1.x ([#107])
  • Breaking: apexlog_execute_anonymous refuses a production org, or one it cannot classify, unless you confirm the run or set --allow-production-orgs ([#52], [#93])
  • apexlog_list_slow_operations ranks every timed operation by self time - a callout or a query as well as a method - in place of the five lists and the prose advice of analyze_apex_log_performance ([#86], [#97], [#108], [#126])
  • apexlog_get_summary reports all thirteen governor limits, zeros included, plus time by category and limits by namespace, so a managed package spending your CPU time is visible ([#62], [#86], [#108])
  • apexlog_get_summary and apexlog_list_limit_risks report each governor limit's peak, not the figure the transaction ended on ([#97])
  • apexlog_list_limit_risks returns one table of the limits nearest their ceiling, covering thirteen where find_performance_bottlenecks covered six ([#108])
  • apexlog_get_summary says whether the log was truncated, by what, and how much it skipped ([#100])
  • apexlog_list_slow_operations renames its parameters and row fields - topMethods is now limit, minDuration is minSelfMs, and kind is the platform's debug log category and event type, database,SOQL_EXECUTE_BEGIN - and takes a list in every filter ([#86], [#97], [#108], [#138])
  • apexlog_execute_anonymous renames success to succeeded, and reports a duration that agrees with apexlog_get_summary ([#65], [#109])
  • apexlog_list_slow_operations caps a response by size, not by row count, so one huge log cannot flood the reply: the biggest of 124 real logs returns 15,511 tokens, down from 35,520 ([#108])
  • Cut tool responses with no fact lost - apexlog_list_limit_risks by 54%, apexlog_execute_anonymous by 30%. apexlog_get_summary costs 24% more, for the two tables it gained ([#62], [#86], [#97], [#108], [#109], [#120], [#138])
  • Cut the cost of having the server connected by 9%, and let a client cache the tool definitions for an hour, though apexlog_list_slow_operations costs 145% more for what it now selects and ranks ([#87], [#94], [#99], [#101], [#103], [#126], [#127], [#138])
  • The server starts in 55 ms, down from 290 ms, and reuses the log it parsed, so a second question about the same file skips the parse ([#88], [#165])

Fixed

  • apexlog_execute_anonymous returns the log for the Apex you ran, not the newest log for the user ([#65])
  • apexlog_execute_anonymous returns an absolute log path, and warns when outputDir lands outside the folders the client opened ([#109])
  • The log analysis tools name the real reason a log file cannot be opened. A permission error used to read as "Log file not found" ([#109])
  • apexlog_execute_anonymous is marked destructive, so clients stop running it unprompted ([#52])

Removed

  • Breaking: remove --allowed-orgs and its special tokens. The flag is accepted, ignored and warns, and the org's type decides instead ([#52])
  • Breaking: drop Node.js 20 (end of life April 2026). Minimum node version is 22

New Contributors

Full Changelog: 1.0.0...2.0.0-beta.0