Repository navigation
feat(java): Spring runtime loads the committed dependency snapshot; verify gains the deps mode (FR-023 S4+S5) - #536
Merged
Merged
Conversation
…erify gains the deps mode FR-023 Phase 2 slices S4 and S5. metaobjects:generate ships the lock and snapshot on the classpath, the Spring application loader loads them with build-time scoping and error codes, and metaobjects:verify -Dmeta.verify.mode=deps runs the shared expectCheck corpus arm.
…and Spring snapshot load; one gap left in agent-context skills.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FR-023 Phase 2 slices S4 and S5 (#482): a Spring app loads a shared model's committed snapshot at runtime, and
metaobjects:verifygains a dependency-drift mode in Java and Kotlin.metaobjects:generateships.metaobjects/deps.lock.jsonand.metaobjects/deps/**on the classpath (config.jsonis deliberately not shipped). Whenclasspath:.metaobjects/deps.lock.jsonexists, the Spring application loader loads each snapshot before the configured sources, with the same imported-is-load-only scoping and the same error codes as the build-time path (ERR_DEPENDENCY_SNAPSHOT_STALE, andERR_DEPENDENCY_PACKAGE_NOT_OWNEDraised after the loader's own errors). An app with no metadata of its own still loads its snapshot. With no lock and nothing declared, behaviour is unchanged; a classpath config that declares dependencies with no lock fails boot as stale.mvn metaobjects:verify -Dmeta.verify.mode=depsis the Java/Kotlin counterpart ofmeta deps check:current/drifted/unresolved(missing path, bad manifest, hash mismatch, or not yet in the lock).driftedandunresolvedfail withERR_DEPENDENCY_UPSTREAM_DRIFT. It resolves thepathtransport only, loads no model and writes nothing. It is opt-in and not part of the default gate set, because it needs the publisher reachable.meta deps syncstays the only writer of snapshots and the lock. Kotlin uses the same Maven goal and loader.New public API in
metadata:Dependencies.check,Dependencies.SnapshotReader,DependencySet.ofSnapshot, and aMetaDataLoader.fromUrisoverload that takes aDependencySet.Tests
expectCheckcorpus arm runs in Java (DependencyCheckConformanceTest), and the resolution and load-error arms run again through the Spring runtime's classpath reader (DependencySnapshotRuntimeConformanceTest).NodeSyncedDependencySnapshotTestconsumes a lock and snapshot written by the real Nodemeta deps sync.javaandgateslanes were green. One unrelated 5s site test timed out under heavy machine load and passed on rerun.Validation
--skip ci).Dependencies.checkread the artifact twice.test-1: the live check was inconclusive (the Spring and corpus scenarios are covered by automated tests rather than a standalone running product). It was accepted once the uncovered scenarios each had a passing automated test, which added the lock-entry-not-declared Spring case and the Node-synced end-to-end test.agent-context-verify-tables: teaching the deps verify mode inagent-context/skills(the verify skill table, the audit Java/Kotlin references and the capability sheet, with their pinned fixture copies) is deferred to slice S10, which updates them together.Out of scope
Publishing (S8), C# (S7, S9), the maven/nuget transports in the Node sync, and the S10 close-out doc rewrite.