Repository navigation
Harden v0.5.0 search correctness and release readiness - #134
Merged
Merged
Conversation
afoote-mitre
force-pushed
the
v0.5.0-review
branch
from
August 19, 2026 19:36
23af475 to
e519934
Compare
jdaigneau5
approved these changes
Aug 19, 2026
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.
PR Stack
This PR must merge after #133. It targets
devso the final review shows the complete release stack; once #133 merges, GitHub will reduce this PR to the eight focused remediation commits onv0.5.0-review.Summary
This review follow-up addresses correctness, dependency, performance-boundary, observability, release metadata, and maintainability findings identified against
v0.5.0-release.Changes
Fail closed on incomplete OpenSearch responses
OpenSearch requests now disable partial search results and validate timeout state, shard failures, hit structure, and complete
_sourcepayloads before controllers can return a successful response.Primary files:
utils/searchProvider.jsutils/searchResponseValidator.jsutils/searchProvider.test.jsutils/searchResponseValidator.test.jsRemediate repository-owned dependency advisories
Updated
brace-expansionto5.0.9andjs-yamlto4.3.1, then regenerated the lockfile. The remainingadm-zipadvisory is inherited throughcve-core, has no available fix, and is outside this repository ownership boundary.Primary files:
package.jsonpackage-lock.jsonRequire CVSS tokens in one vector
CVSS token queries retain their OpenSearch candidate prefilter, then apply semantic filtering so all slash-delimited tokens supplied for one parameter must occur in the same eligible CVSS vector. Candidate source retrieval remains scope-aware and limited to required vector fields.
Primary files:
utils/cvss.jsutils/searchContainerMetrics.jsutils/searchPostFilters.jsutils/searchQueryBuilder.jsutils/cvss.test.jsutils/searchQueryBuilder.test.jsREADME.mdBound reference URL substring searches
Added a three-character minimum for
referenceURL, including HTTP 400 validation, generated OpenAPI constraints, and user documentation. Existing wildcard escaping and the 2,048-character maximum remain unchanged.Primary files:
controllers/middleware.jsutils/constants.jsutils/errors.jsroutes/swagger.jsapi-docs/openapi.jsonREADME.mdReject inverted date ranges
Publication, modification, SSVC timestamp, and KEV date-added pairs now reject a start later than the end. Equal boundaries remain valid because all four range contracts are inclusive.
Primary files:
controllers/middleware.jsutils/errors.jsroutes/swagger.jsapi-docs/openapi.jsonREADME.mdCorrect semantic-search telemetry
CVSS, SSVC, and KEV semantic searches now report cache status as
not_applicable; only CPE searches report hit, in-flight, or miss states because only CPE searches use the temporary application cache.Primary files:
utils/searchPerformance.jsutils/searchPerformance.test.jsAlign release metadata
Bumped package, lockfile, and generated OpenAPI metadata from
0.4.0-betato0.5.0-beta.Primary files:
package.jsonpackage-lock.jsonapi-docs/openapi.jsonRemove unreachable post-filter code
Removed the dead standard-search post-filter path and obsolete CPE-specific candidate builder wrapper. CPE semantic assertions now live with the generalized post-filter module they exercise.
Primary files:
controllers/searchController.jsutils/searchQueryBuilder.jsutils/searchPostFilters.test.jscontrollers/searchController.test.jsutils/searchQueryBuilder.test.js