# Changelog

## Score

- CAI 44 → 50 (+6.5)
- Rubric changed (rubric-2026.10.1 → rubric-2026.10.5) — scores are not directly comparable.

## Lenses

- Code Health 51 → 78 (+27.1)
- Architecture 80 → 86 (+5.9)
- Maturity 37 → 61 (+23.7)
- Readiness 37 → 34 (-3.4)
- Security 100 → 100 (+0.0)
- Domain Modelling 63 → 63 (+0.0)
- Performance 60 → 60 (+0.0)

## Resolved (3579)

- AbstractDataSetIterator.fillQueue (cognitive 49) (deeplearning4vb/deeplearning4j/deeplearning4j-data/deeplearning4j-utility-iterators/src/main/java/org/deeplearning4j/datasets/iterator/AbstractDataSetIterator.vb)
- AbstractDataSetIterator.fillQueue (cyclomatic 19) (deeplearning4vb/deeplearning4j/deeplearning4j-data/deeplearning4j-utility-iterators/src/main/java/org/deeplearning4j/datasets/iterator/AbstractDataSetIterator.vb)
- AbstractDependencyTracker.checkAndUpdateIfAllSatisfied (cognitive 25) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractDependencyTracker.vb)
- AbstractDependencyTracker.isAllSatisfied (cognitive 17) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractDependencyTracker.vb)
- AbstractDependencyTracker.markSatisfied (cognitive 82) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractDependencyTracker.vb)
- AbstractDependencyTracker.markSatisfied (cyclomatic 27) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractDependencyTracker.vb)
- AbstractDependencyTracker.removeDependency (cognitive 31) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractDependencyTracker.vb)
- AbstractDependencyTracker.removeDependency (cyclomatic 16) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractDependencyTracker.vb)
- AbstractFileResolvingResource.exists (cognitive 17) (deeplearning4vb/nd4j/nd4j-common/src/main/java/org/nd4j/common/io/AbstractFileResolvingResource.vb)
- AbstractSession.getExecStepForVar (cognitive 44) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AbstractSession.initSubgraph (cognitive 54) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AbstractSession.initSubgraph (cyclomatic 19) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AbstractSession.output (cognitive 161) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AbstractSession.output (cyclomatic 68) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AbstractSession.updateDescendantDeps (cognitive 71) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AbstractSession.updateDescendantDeps (cyclomatic 24) (deeplearning4vb/nd4j/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/autodiff/samediff/internal/AbstractSession.vb)
- AdaptiveThresholdAlgorithm.calculateThreshold (cognitive 18) (deeplearning4vb/deeplearning4j/deeplearning4j-nn/src/main/java/org/deeplearning4j/optimize/solvers/accumulation/encoding/threshold/AdaptiveThresholdAlgorithm.vb)
- AeronNDArrayPublisher.publish (cognitive 20) (deeplearning4vb/nd4j/nd4j-serde/nd4j-aeron/src/main/java/org/nd4j/aeron/ipc/AeronNDArrayPublisher.vb)
- AeronUdpTransport.sendMessage (cognitive 29) (deeplearning4vb/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server-node/src/main/java/org/nd4j/parameterserver/distributed/v2/transport/impl/AeronUdpTransport.vb)
- AeronUdpTransport.sendMessage (cyclomatic 21) (deeplearning4vb/nd4j/nd4j-parameter-server-parent/nd4j-parameter-server-node/src/main/java/org/nd4j/parameterserver/distributed/v2/transport/impl/AeronUdpTransport.vb)
- …and 3559 more

## New (245)

- BarePragmaDisable (src/DeepLearning4VB/org/nd4vb/common/util/ObjectGraphSerializer.vb)
- BarePragmaDisable (src/DeepLearning4VB/org/nd4vb/linalg/util/FeatureUtil.vb)
- BarePragmaDisable (src/DeepLearning4VB/org/nd4vb/linalg/util/FeatureUtil.vb)
- Deprecated: MSTest.TestAdapter (tests/DeepLearning4VB.Tests/DeepLearning4VB.Tests.vbproj)
- Deprecated: MSTest.TestFramework (tests/DeepLearning4VB.Tests/DeepLearning4VB.Tests.vbproj)
- Documentation: no architecture or design documentation (README.md)
- Duplicated block (10 lines × 2) (src/DeepLearning4VB/org/nd4vb/common/util/ArrayUtil.vb)
- Duplicated block (10 lines × 2) (src/DeepLearning4VB/org/nd4vb/common/util/ArrayUtil.vb)
- Duplicated block (10 lines × 2) (src/DeepLearning4VB/org/nd4vb/linalg/api/ops/impl/layers/convolution/DepthwiseConv2D.vb)
- Duplicated block (10 lines × 2) (src/DeepLearning4VB/org/nd4vb/linalg/api/shape/Shape.vb)
- Duplicated block (11 lines × 2) (src/DeepLearning4VB/org/datavec/api/transform/metadata/IntegerMetaData.vb)
- Duplicated block (11 lines × 2) (src/DeepLearning4VB/org/datavec/api/transform/schema/Schema.vb)
- Duplicated block (11 lines × 2) (src/DeepLearning4VB/org/datavec/api/transform/schema/SequenceSchema.vb)
- Duplicated block (11 lines × 2) (src/DeepLearning4VB/org/datavec/api/transform/ui/components/RenderableComponentHistogram.vb)
- Duplicated block (11 lines × 2) (src/DeepLearning4VB/org/nd4vb/common/util/ArrayUtil.vb)
- Duplicated block (11 lines × 3) (src/DeepLearning4VB/org/nd4vb/linalg/managed/kernels/ElementWiseKernels.vb)
- Duplicated block (12 lines × 2) (src/DeepLearning4VB/org/datavec/api/transform/analysis/quality/categorical/CategoricalQualityAddFunction.vb)
- Duplicated block (12 lines × 2) (src/DeepLearning4VB/org/datavec/api/transform/ops/AggregatorImpls.vb)
- Duplicated block (12 lines × 2) (src/DeepLearning4VB/org/nd4vb/linalg/api/ops/impl/layers/convolution/config/Conv2DConfig.vb)
- Duplicated block (12 lines × 2) (src/DeepLearning4VB/org/nd4vb/linalg/api/ops/impl/layers/convolution/config/Conv3DConfig.vb)
- …and 225 more

## Changes since last survey

- 30 commits — 30 feature/other, 0 fixes

## By area

- src/DeepLearning4VB — 20 commits
- tests/DeepLearning4VB.Tests — 4 commits
- (root) — 2 commits
- deeplearning4vb/nd4j — 1 commit
- docs/PHASE2_DESIGN.md — 1 commit
- unported/datavec — 1 commit
- unported/deeplearning4j — 1 commit

## Notable commits

- change: Add Java DataInput/DataOutput stream shim to JavaCompat
- change: Add MSTest suite, migrate solution to slnx, document the port
- change: Document the datavec-api wave A port and the Joda/t-digest/TimeUnit stand-ins
- change: Drop the platform modules that have no .NET counterpart
- change: Enable the JSON checks in TestUI and refresh stale test comments
- change: Finish datavec-api wave B: tests for records, formats and the transform core
- change: Multi-target .NET Framework 4.8.1 and .NET 10; replace BinaryFormatter
- change: PORTING_STATUS: count only git-tracked source and test files
- change: Phase 1 complete: port datavec-local and update the docs
- change: Phase 2 M1 wave 1: ND4VB foundation API, op math registry, managed kernels
- change: Phase 2 M1 wave 2 (buffers part): data buffers, memory, workspaces, caches
- change: Phase 2 M1 wave 2 (ops part): op base classes and the 173 legacy op classes
- change: Phase 2 M1 wave 2 (shape part): Shape, indexing, linalg.util
- change: Phase 2 design: the managed ND4VB tensor engine
- change: Port Java compatibility helpers, Preconditions and Pair
- change: Port datavec-api wave A (writable, io, conf, split, metadata) and add Joda/t-digest shims
- change: Port deeplearning4j-common and the rest of nd4j-common
- change: Port the nd4j-common core so the library compiles with zero errors
- change: Remove raw unported copies of the datavec tests that are already ported
- change: Rename the components from 4j to 4vb
- …and 10 more

## Architecture

- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
