Repository navigation
Conversation
Reject zero-rate transfer reconstructions as recoverable parse failures, cover manager recovery, and format schema compatibility tests.
Thread known profiles through every investment construction path and reject ambiguous schemas without guessing stale aliases.
Model holding and transaction share columns independently and preserve canonical stored amounts for rounded transfers.
- Introduced tests for entity source coverage to validate manager behavior with unknown descendants and unclassifiable entities. - Added transaction lifecycle tests to ensure correct loading and mutation of transaction data. - Enhanced investment values tests to verify proper handling of profiled investment records. - Created tests for read completeness to check for duplicate and unknown rows during loading. - Implemented relationship completeness tests to validate handling of relationships in various scenarios. - Developed schema cache binding tests to ensure proper handling of schema changes and metadata remapping. - Added transaction compatibility tests to verify correct behavior with different transaction types.
… with MappingProxyType
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Assert optional manager lookups before accessing their fields in scoped-load and schema-cache tests. Cast the intentionally mutated report mappings so the runtime immutability checks remain valid under mypy src tests.
Reject malformed record identity and boolean values before publishing a complete read report. Preserve nullable transaction descriptions and classify invalid descriptions as per-row skips.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3537b9d4b6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Use the existing read admission for record lookups so cached aliases cannot be applied after a schema change. Preserve the scale of finite zero holding quantities and keep record identity validation aligned with the prior contract.
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
3861a8c to
c9a257d
Compare
Scoped read completeness
Problem
The API used best-effort parsing and exposed limited record load errors, but did not account for source versus parsed rows or transaction relationship storage. A caller could mistake a partial read for a complete one. Separate manager reloads could also represent different SQLite generations.
What changed
Why this approach
The change keeps the existing managers, model constructors, and supported schema-profile mappings. It adds evidence around their existing best-effort parsing instead of replacing the parsing path. Entity metadata identifies transaction tag storage, avoiding a fixed numeric join-table name; ambiguous layouts fail closed. Existing category and refund table names remain limited to their known layouts. This PR does not add writes or consumer-specific snapshot policy.
This PR targets
feat/moneywiz-read-compatibility, the branch behind PR #37, so its diff shows only the read-completeness changes. The latest v1.1.0 release notes include the earlier schema-version work from PR ileodo#40.Validation
get()results needed existence assertions, and intentional runtime mutation checks needed an explicit type cast. The follow-up changes only those tests.mypy src testsand the CI unit-test command pass on Python 3.10 and 3.11: 105 tests on each version.