You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(core): remove unused CoreResult type alias, standardize on LintResult (#477) (#520)
* fix(core): remove unused CoreResult type alias, standardize on LintResult (#477)
CoreResult<T> was defined and re-exported but never used anywhere in the
codebase. LintResult<T> is the established convention used in 40+ locations.
Since LintError is already an alias for CoreError, both aliases resolved to
the same type - CoreResult was pure dead code.
Closes#477
* test(core): strengthen lint_result_is_sole_result_alias with functional assertions
Replace trivially-true type_name checks with concrete Err construction
using CoreError::Validation variants, verifying the LintResult<T> =
Result<T, LintError> = Result<T, CoreError> chain end-to-end.
* fix(core): address review feedback on CoreResult removal (#477)
- Add CoreError to public_types_are_importable contract test
- Replace panic! with unreachable! in test catch-all arm
- Upgrade LintError alias comment to rustdoc (/// style)
- Expand CHANGELOG migration note to clarify LintError/CoreError relationship
* test(core): exhaustively match all CoreError variants in lint_result_is_sole_result_alias
Replace wildcard arm with explicit File/Validation/Config arms so the match
is truly exhaustive. A new CoreError variant will now cause a compile error
in this test rather than silently passing.
* docs: add LintError and LintResult to diagnostics.rs module description (#477)
The diagnostics.rs entry in CLAUDE.md/AGENTS.md omitted LintError and
LintResult, which are the primary public error types from that module.
With CoreResult removed, LintResult is now the sole public Result alias
- making this an appropriate time to document both types explicitly.
* fix(core): address rustfmt formatting issues
Reformat pub use statement in lib.rs and struct initialization in test to comply with cargo fmt standards.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
35
35
-**`MAX_REGEX_INPUT_SIZE` precise boundary tests**: 27 tests covering the exact 65536-byte limit for all 12 guarded regex functions across `markdown.rs`, `prompt.rs`, and `cross_platform.rs` - each function gets an at-limit (processed) and one-byte-over (rejected) test; also confirms `extract_imports` and `extract_markdown_links` are unrestricted (byte-scan/pulldown-cmark, not regex) (#457)
36
36
37
37
### Changed
38
+
-**`CoreResult` type alias removed** (breaking): `CoreResult<T>` has been removed from the public API. Use `LintResult<T>` (i.e., `Result<T, LintError>`) instead. `LintError` is a public alias for `CoreError`; both remain exported. (#477)
38
39
-**`__internal` module feature-gated**: The `__internal` module in `agnix-core` is now behind the `__internal` Cargo feature; it was previously unconditionally public which created semver obligations for internal items (#472)
39
40
-**`normalize_line_endings` promoted to stable public API**: Accessible at the crate root (`agnix_core::normalize_line_endings`) without requiring the `__internal` feature (#472)
40
41
-**Project-level validation extracted to `rules/project_level.rs`**: Extracted `run_project_level_checks`, `join_paths`, and associated unit tests from `pipeline.rs` into a new `rules/project_level.rs` module; adds 7 new unit tests for AGM-006, XP-004/005/006, and VER-001 behaviors (#474)
0 commit comments