Repository navigation
2.0.0-beta.1
Pre-release
Pre-release
·
41 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
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_operationsfolds repeat calls into one row - by name, bycallerNamespace, 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_operationssorts by an operation's net heap allocation, not only time (sortBy: "heapSelfNetBytes") ([#99], [#127], [#138])apexlog_list_slow_operationsreturns the query optimiser's plan for each query it ranked ([#120])apexlog_list_slow_operationsreturnsmatchedCount, so you can tell whether the page hid rows ([#63])apexlog_list_slow_operationsandapexlog_list_limit_risksreport the level each debug log category was logged at ([#102], [#138])apexlog_execute_anonymousreports progress, and says when the org logged at levels other than the ones asked for ([#65])--no-apex-executionstopsapexlog_execute_anonymousrunning Apex, while the log analysis tools keep working ([#52])
Changed
- Breaking: rename every tool with an
apexlog_prefix:analyze_apex_log_performanceis nowapexlog_list_slow_operations. Full mapping in Migrating from 1.x ([#107]) - Breaking:
apexlog_execute_anonymousrefuses a production org, or one it cannot classify, unless you confirm the run or set--allow-production-orgs([#52], [#93]) apexlog_list_slow_operationsranks 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 ofanalyze_apex_log_performance([#86], [#97], [#108], [#126])apexlog_get_summaryreports 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_summaryandapexlog_list_limit_risksreport each governor limit's peak, not the figure the transaction ended on ([#97])apexlog_list_limit_risksreturns one table of the limits nearest their ceiling, covering thirteen wherefind_performance_bottleneckscovered six ([#108])apexlog_get_summarysays whether the log was truncated, by what, and how much it skipped ([#100])apexlog_list_slow_operationsrenames its parameters and row fields -topMethodsis nowlimit,minDurationisminSelfMs, andkindis 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_anonymousrenamessuccesstosucceeded, and reports a duration that agrees withapexlog_get_summary([#65], [#109])apexlog_list_slow_operationscaps 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_risksby 54%,apexlog_execute_anonymousby 30%.apexlog_get_summarycosts 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_operationscosts 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_anonymousreturns the log for the Apex you ran, not the newest log for the user ([#65])apexlog_execute_anonymousreturns an absolute log path, and warns whenoutputDirlands 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_anonymousis marked destructive, so clients stop running it unprompted ([#52])
Removed
- Breaking: remove
--allowed-orgsand 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
- @lukecotter made their first contribution in #84
Full Changelog: 1.0.0...2.0.0-beta.0