- Persisted min/max/mean/stddev in a new sample_statistics SQLite table; added StatsCommand and made InstantCommand/StatsCommand use per-metric latest timestamp.
- Fixed lost activity metrics on short runs: ActivityExecutor now triggers a bypass-bucket snapshot before op dispensers detach; SQLite reporter is silent under post-close ticks.
- New stress-report bundled app + dummy_session.yaml workload with two new diag op-tasks (cycledelay, errormodulo); c-stress-shaped per-op output, A/B equivalence mode, comparability warning at the top.
- removed NBCLI's foundational-label re-injection.
1. Provided parameter - always takes precedence
2. Current TEMPLATE's default - used if present (even if a previous TEMPLATE set a different default)
3. Previous TEMPLATE's default - only used when current TEMPLATE has no default (e.g., TEMPLATE(var) or ${var})
Added 9 new benchmark classes in nb-engine-core/.../sysperf/engineflow/ for measuring engine flow performance
(stride context, op flow, space mapping, motor operations, etc.)
JMH documentation: Added devdocs/devguide/jmh_engineflow.md
Testing tags:
POM updates: Added test profiles
CONVENTIONS.md updates around test tags
Test annotations: Added 2-3 lines to ~280 test files
Split tests classes to allow one tag set per class (no mixed methods)
- Ops can accept flow context via FlowContextAwareOp.
- StandardAction manages per-stride StrideContext and passes flow context to ops.
- CapturingOp now writes captured values into the flow context.
- Dispensers/adapters expose cycle→space index/name for binding.
- Space mapping logic cleaned up; BaseSpace retains original names.
- Sync motor path replaced by StrideAction plus StrideMotor/dispenser.
- CoreMotor/SyncAction removed; loaders/tests moved to stride motor.
- CycleResultSegmentBuffer adds reset().
- StringCompositor skips local/global refs when deduping specs.
- Planning docs lightly edited.
- Fix SQL syntax error in SelectorTransformer: Move LEFT JOINs before WHERE clause
- Support nested {{...}} expressions in TEMPLATE() defaults
- Fix CMD_await to correctly use activity= parameter instead of alias
- Add available activities list to missing activity error messages
- Add getUnit() method to NBMetric interface
- Update all NBMetric implementations (Counter, Timer, Histogram, Meter, Gauge variants) with unit field
- Update MetricsView to use metric.getUnit() instead of extracting from labels
- Fix InstantCommand SQL join order bug (use joinAllLabelsWithSampleName())
- Update NBCreators with default units (nanoseconds, operations, empty)
- Fix test compilation errors in nb-api, nb-mql-api, and nb-engine-core (12 test files)
- Regenerate all test databases with updated metric constructors
- Move grammar files from src/main/antlr4 to src/main/java/.../grammars following conventions in adapter-cqld4 and
virtdata-lang modules
- Update ANTLR generated output to src/main/java/.../generated with explicit package configuration (-package
argument)
- Add imports for generated MetricsQLLexer/Parser classes in 11 parser and test files; all 285 tests passing
- Replace FEATURE_TRADEOFF_ANALYSIS.md with user-focused METRICSQL_DIFFERENCES.md guide (~40% shorter, removes
internal decision-making)
- Add session metadata (nb.version, nb.commandline, nb.hardware) to all 5 test database generators
- Update TEST_DATABASES.md with metadata documentation and correct regeneration instructions from project root
- Add LabelSetTree (canonical layer): Algebraic tree maintaining strict label set containment relationships with support for merging trees
- Add DisplayTree (display layer): Derived tree with three-pass reduction algorithm:
- Differential label rendering (show only labels differing from parent)
- Sibling condensation (merge siblings differing by single label with comma-separated values)
- Identical label set consolidation (combine nodes with same labels)
- Update MetricsCommand: Use canonical→display tree pipeline for --group-by labelset output
- Fix SummaryCommand: Build single shared canonical tree for all metrics instead of per-metric trees, enabling proper consolidation of metrics with identical label sets
- Add LabelSetTreeTest: 10 tests verifying containment relationships, merging, and rendering
- Result: Metrics with identical label sets now properly consolidated under single parent node (e.g., 20+ separate session=oDChioC entries → 1 node with 20+ child metrics)
- BundledApp integration (@Service selector="mql") accessible via nb5 CLI
- 6 output formats (table, csv, tsv, json, jsonl, markdown) with enum-based architecture
- 107 passing tests with self-validating documentation and 5 test databases
- Add sqlite-jdbc to dependency management and nb-mql-api to nb-engine-all
- Add shutdown hook to update symlink mtimes on session end
Metric filters upgraded: include/exclude clauses, deny-by-default option, cached lookups; Log4J reporter imports simplified.
Help topics fixed end-to-end: classpath scanning handles jars/denied paths, nb help topics prints list, markdown finder hardened.
AppImage launcher opts into --enable-native-access=ALL-UNNAMED to silence JNA warnings.
New metrics_reporting.md gives a concise CLI reporter/filter cheat-sheet.
- expose encodable histogram snapshots, reuse prepared statements, and Base64-encode histogram payloads directly
- propagate histograms flag through CLI/session wiring and document usage in local/sqlite_metrics.md
- expand integration tests to cover histogram capture and ensure SQLite reporter behaviour is exercised
* Update nodewalk parsing/rendering for vectordata 0.1.10
- swap nbvectors predicate imports for vectordata.spec.predicates and make the renderers Function<PNode<?>, String> wrappers with explicit fallback handling
- drive NodewalkParser through PNode.fromBuffer and case-insensitive renderer selection so both CQL and JSON views work with the new API
- refresh predicate-focused tests to use the vectordata types and confirm with targeted Maven test runs
* update to groovy 5 for exprs
* groovy 5 expr support checkpoint
* basic expression libraries and lvar support
* add preprocedssor expr layer to support autoconfig of vector params
* added lvar expr integrated tests
* fixed eventing leak