- Add latdx validate command (deploy delta + affected tests + coverage gate)
- Add usage metrics reporting and opt-out telemetry
- Mark internal dev and CI telemetry so it filters out of analytics
- Keep telemetry inert until a real PostHog key, add dev env routing
- Re-enable shadow runs as run-piggybacked cache validation
- Resolve test impact for namespaced workspaces
- Add
--dry-runto latdx test run
- Add latci cli-bench, offline CLI performance benchmark harness
- Deflake ensureFreshDaemon restart tests by injecting process deps
- Flush watcher-fed caches when the daemon file watcher restarts
- Skip .claude agent worktrees in the Phase 4 closure walk
- Stop apex-ls bridge Org leak and full reloads on watcher events
- Arm the daemon file watcher via one recursive fs.watch on macOS
- Render CLI warnings as amber warning-glyph headline
- Replace plain-renderer logfmt chrome with human phrasing
- Unfold GitHub Actions test output and drop the success notice
- Print the org-wait phase line above the cached cascade
- Suppress test-run heartbeat repeats when progress display is off
- Throttle CLI update checks to hourly and report GitHub rate-limit resets
- Hide test-run progress in CI by default, add
--progressflag - Run CI test runs on any plan, capping non-TEAM/CI plans at the free-tier limit
- Tidy latdx auth login success output
- Drop skipped-tests clause from free-tier cap message
- Add subscription group and auth-aware free-tier cap CTA
- Redesign latdx auth login terminal output
- Accept loopback Host headers in CLI auth callback
- Trigger CLI release after staging host support
- Check for CLI updates on every invocation instead of once per 24h
- Render upgrade with the polished installer UI
- Reject unsigned license tokens
- Resolve live CLI access and billing state
- Issue a free-tier identity license on sign-in
- Reactive licensing (background poll, keep-token re-grant, verdict-driven display)
- Reflect plan changes live and check access on every CLI invocation
- Refresh license non-interactively so plan changes apply without re-login
- Add global
-C/--cwdflag to run from outside the project dir - Add opt-in fail-fast to test runs
- Dedupe SF live test results per method so no-cache matches cache count
- Daemon-driven hourly CLI auto-update
- Route MCP test runs through the CLI default engine and db mode
- Drop license signature verify, heartbeat is sole trust gate
- Add MCP server (latdx mcp serve) for AI agents
- Op-style help columns, user label, simpler tagline
- Render CLI auth login result pages in the branded site card
- Include stable releases on the latest upgrade channel and pick highest version
- Add account/plan row to banner and remove redundant license commands
- Nest auth commands under
latdx auth - Secure OSS auto-license via GitHub OIDC exchange
- Add latdx login + progress-bar license limit message
- Pre-compute workspace cache keys at daemon startup
- Drop flag-echo and defaults from test run intro header
- Route test run
--affectedreach through daemon bridge - Drop redundant Unsupported API prefix from skipped row detail
- Left-align time and chip columns in test output
- Silence confirmation prompts under
--jsonso machine output stays parseable - Free for OSS: GitHub Actions public-repo cap bypass
- Share account dropdown across dashboard with License entry
- Bottom progress status line for test run
- ES256 license keys, GH Action, free-tier cap
- Pad LATdx splash banner with leading blank line
- Count late-discovery suites as done in the suites N/M counter
- Flush phase rows at natural time instead of end of run
- Add
--affected,--failed-only,--forceflags to test run
- Inline test failure detail and skip log hint on test failure
- Collapse setup phases under Preparing test run umbrella
- Optimistic queue check + quiet test-run phases
- Resolve test classes from workspace via apex-ls (
--sourceflag) - Bound daemon shutdown + guard cross-binary restart loop
- Drop noisy async-poll log and add gap before RUNS chip
- Stop dropping trailing async test rows and hide @TestSetup
- Instant-commit fully cached class blocks
- Unwedge daemon shutdown after binary rebuild
- Make silent CLI/daemon phases observable
- Add
--classes-onlyflag to test list - Add
-nshort flag for test list--classes-only - CLI-scope wall + daemon shutdown-race retry
- Silent background self-update like Claude Code
- Incremental Org.refresh for watch flush
- Skip workspace update when no tests reach the edit
- Stop double-firing onTestQueued in async streamer
- Parallelize partitionMethods cache + hash batches
- Preserve AST cache across full reload via mtime gating
- Phase-B saved-time model via observed parallelism
- Introduce Renderer abstraction seam
- Smart pre-flight cancel for ApexTestQueueItem conflicts
- Swap prompts for clack and add
--yesflag - Wire renderer rhythm into latdx test run
- Stub GHA env in CLILogger renderer-cache tests
- Default LATDX_CACHE_PHASE to 4 when unset
- Default LATDX_CACHE_SHADOW_RATE to 0 when unset
- Jest-style plain output with per-test cache marker
- Make
--coverageopt-in to keep per-method cache replay viable - Format cache sizes >=1 GB in GB/TB instead of inflated MB
- Cut watch-mode flush latency to next tick in test-impact
- Preserve spinner timer across progress ticks in test-impact watch
- Ignore .claude / .latdx / .sfpowerscripts in metadata watcher
- Swallow stdin EPIPE on JVM exit in ApexLsBridge
- Migrate metadata watchers to chokidar v4 (FSEvents-native, no polling)
- Bake elapsed counter + non-TTY heartbeat into CLISpinner
- Add
--latest/--stableto upgrade andupdatealias - Fast-feedback banner + plain-mode test progress
- Drop ‘querying SymbolTable’ label from test list spinner
- Single-pass convertMultiLineSOQLToString
- Floor fractional seconds in formatTimer
- Use stored map key in LiveTestRenderer running-set check (4.8x)
- Propagate BaseRegistry.load I/O errors
- Propagate BaseRegistry.save storage errors instead of swallowing
- Warn when explicit LATDX_CACHE_PHASE=4 factory throws
- Batch CachingTestRunner closure source lookups (1.16x on 500-dep)
- IndexOf-walk DeployedComponentsRegistry.deriveApexClassName (2.4x)
- IndexOf-walk DynamicSiteDetector.lineStartOffsets (5.5x faster on 800KB)
- Substring-scan FileWatcher.isSchemaPath (2.2x)
- Remove stale validation marker files
- Accept Phase 4 in LATDX_CACHE_PHASE clamp
- Keep 0ms duration cell on compact in-flight passed rows
- Lowercase method names in CachingTestRunner cache lookup
- Skip empty err.message when locking firstMessage in sfErrorSummary
- Widen @disable-cache lookback to five lines above the class
- Surface runner-access disk-cache write failures at warn level
- O(1) Set lookup for @dynamic-ignore site annotations
- Parallelize updateAfterDeployment per-file IO
- Single-scan hasLatdxOrigMarkers
- Memoize per-source sha256 in TestInputHasher
- Surface non-ENOENT readdir failures in Phase 4 workspace walk
- Surface non-ENOENT readFileSafely failures in Phase 4 manifest hash
- Surface non-ENOENT closure read failures in Phase 4 workspace walk
- Default
--truncateto 50 when value is non-numeric - Report actual dropped-line count in live renderer cap notice
- Match Apex case-insensitivity in ProblematicTestsRegistry methodName
- Parallel fs.readFile in hashWorkspaceClosures (-26% on medium orgs)
- Parallelize independent reads in defaultManifestHash
- Parallelize sibling-dir descent in walkWorkspace
- Detect Java 11+ at startup with friendly install hint
- Invalidate cache on Apex Flow changes
- Invalidate cache on Apex trigger changes
- Invalidate cache on Custom Labels changes
- Invalidate cache on Custom Metadata record changes
- Invalidate cache on permission set + profile changes
- Invalidate cache on Record Type changes
- Invalidate cache on Sharing Rules changes
- Invalidate cache on Validation Rule changes
- Invalidate cache on Workflow rule changes
- Invalidate cache on schema and project manifest changes
- Fix stray Salesforce CLI log file write in compiled binary
- Add
sfandflightlive test renderers behind--render-style - Add
--engineand--dbflags for test runs - Add plain CI render mode with timestamped event stream and heartbeat
- Detect
upgradecommand from positional argument - Treat flag-like value as missing org alias in version path
- Honor
--plainflag in spinner and color output - Surface daemon shutdown failures in
latdx cache clear --daemonexit code - Surface per-entry scan failures in
latdx cache status - Honor
LATDX_DEBUG=1for temp directory retention - Count skipped tests separately from failed in test run summary
- Surface
latdx.config.jsonparse errors instead of swallowing them
- Isolate daemon and caches per git worktree
- Cache generated mock classes to skip unchanged redeploys
- Retry anonymous Apex on
ConcurrentPerOrgLongTxnlimit - Widen
latdx cleanto catch legacy LATdx artifacts
- Add
latdx cleancommand to remove deployed artifacts from org - Add
latdx restoreandlatdx uninstallcommands for boost-mode reversal - Add managed package namespace support for generated Apex
- Auto-bootstrap dbsim for the standard Test API
- Auto-clean debug logs in CI instead of prompting
- Rename misspelled
latdxStatmentsconfig option tolatdxStatements - Correct operator precedence in Apex parse error message
- Forward daemon logs to CLI in verbose mode
- Exit with non-zero status when
latdx uninstallrestore fails
- Add
latdx restoreandlatdx uninstallcommands for boost-mode reversal - Add
latdx configcommand - Expose
latdx cacheandlatdx daemonmanagement commands - Forward daemon logs to CLI in verbose mode
- Auto-bootstrap dbsim for the standard Test API
- Auto-clean debug logs in CI instead of prompting
- Add
latdx upgradecheck command
- Pass setup object queries through to the real org from dbsim
- Add compound field support in dbsim
- Resolve parent lookups and relationships in dbsim WHERE clauses
- Handle reified generics in IN clause evaluation
- Support inline string literal bind syntax in dbsim SOQL
- Add
latdx cleancommand to remove deployed artifacts from org - Preserve test results when emitting JSON output
- Add background daemon for persistent org caching
- Add
LATDX_KEEP_SF_LOGSenv var to preserve debug logs - Run all tests in org when no tests specified
- Support running multiple test classes in one run
- Add coverage mode support
- Default to turbo batch mode and pass coverage flag through
- Handle debug log storage exceeded with auto-cleanup
Last updated on