Adapt jvagent to secure jvspatial entity fields - #249
Merged
Merged
Conversation
added 7 commits
September 27, 2026 08:36
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
Adapts jvagent to the stricter entity attribute contract in jvspatial PR #49. Runtime-only fields on actions and walkers are declared with Pydantic
PrivateAttr. The substrate fix permits instance replacement of private helpers that are already declared on the class, preserving test doubles without allowing arbitrary underscore fields. Stale interview mocks for a removed helper and invalidMagicMockJsonDB IDs are corrected.The release candidate is
0.1.8rc19and pins publishedjvspatial==0.1.0inpyproject.toml,requirements.txt, andrequirements-all.txt. Until that substrate version is published, local tests use an editable build from jvspatial PR #49; the PR remains draft through the fresh-install gate.Verification
948635b8e080e37da45a0c3f6b6a149533b76d3bindirect_url.json.pytest tests/ --ignore=tests/wirepassed from that fresh install.jvagent.cli validate examples/jvagent_apppassed.pre-commit run --all-filespassed; push hook also completed.Release gate
The six previously failing wire prompt assertions were caused by direct test bootstrap skipping jvagent's UTF-8 persistence default. The fixture now applies that default; all 18 wire tests and the full non-wire suite pass locally. The push hook's full
pytest tests/gate also passed. Await reviewed jvspatial 0.1.0 publication, then rerun CI from the published dependency before merging intodevand promoting tomain.Agent guide migration
Root and eight scoped AGENTS.md files now contain the former CLAUDE.md guidance; all nine CLAUDE.md files are removed. Contributor docs, package guides, and the planning config path point to AGENTS.md. Historical changelog entries remain intact.
Final dependency check
The full local
pytest tests/suite passes in the Python 3.14 virtual environment after installing jvspatial PR #49's761b8ceGit candidate. Its laterfe54330commit changes only a SQLite test assertion. No jvagent source changes were needed in this pass. The PR's test, conformance, isolation, load, and pre-commit jobs currently stop at dependency installation becausejvspatial==0.1.0is not yet in the registry. Keep this PR draft until jvspatial is reviewed and published, then rerun those jobs against the released wheel.