0.36.4 - 2026-08-21
Full Changelog: v0.36.3...v0.36.4
151 commits in this release.
Implemented enhancements
- feat(genspec-tui): charge the CPU table where a reader can act on it by @fredbi ...
- feat(genspec-tui): share the CLI's flags and configuration file by @fredbi ...
- feat(cliconf): add -c and -no-config to pin or refuse the file by @fredbi ...
- feat(genspec): read a configuration file before the flags by @fredbi ...
- feat(genspec-tui): profile a scan and name where its cost went by @fredbi ...
- feat(genspec-tui): locate every validation finding exactly by @fredbi ...
- feat(genspec-tui): navigate a finding about the whole document by @fredbi ...
- feat(genspec-tui): take a finding's location from the validator by @fredbi ...
- feat(scanner): take dependency types from the build cache by default by @fredbi ...
- feat(schema): recognize the math/big numbers by what they marshal to by @fredbi ...
- feat(genspec-tui): validate the generated spec in a tab of its own by @fredbi ...
- feat(genspec-tui): look up an annotation without leaving the file by @fredbi ...
- feat(genspec-tui): make the pane dividers movable by @fredbi ...
- feat(genspec-tui): add a guarded F5 reload of the open file by @fredbi ...
- feat(genspec-wasi): add a headless spec generator needing no toolchain by @fredbi ...
- feat(scanner): take dependency types from compiled export data by @fredbi ...
- feat(scanner): load and type-check packages without a Go toolchain by @fredbi ...
Fixed bugs
- fix(builders): match json.RawMessage through its go1.27 jsontext alias by @fredbi ...
- fix(cliopts): keep the path options off the configuration file by @fredbi ...
- fix(packages): resolve the standard library's own vendored imports by @fredbi ...
- fix(scanner): read swagger:meta from the comment it was written in by @fredbi ...
- fix(genspec-tui): show control characters instead of obeying them by @fredbi ...
- fix(benchmarks): judge archive entry names in tar form, not the host's by @fredbi ...
- fix(genspec-tui): keep two path segments in a profiled function name by @fredbi ...
- fix(cmd): give each scan its own copy of the options by @fredbi ...
- fix(probe): build the browser probe's status line as text by @fredbi ...
- fix(doc-site): move vendored Mermaid to 11.16.1 by @fredbi ...
- fix(genspec-tui): show the validator's warnings by @fredbi ...
- fix(scanner): match a dependency's source file by name, not by path by @fredbi ...
- fix(scanner): read a dependency's declaration when the spec needs it by @fredbi ...
- fix(schema): give every non-body parameter and header a type by @fredbi ...
- fix(responses): give a response declared on a stdlib type its schema by @fredbi ...
- fix(genspec-tui): say how much of the keymap is off screen by @fredbi ...
- fix(genspec-tui): keep the whole header on screen under a long work dir by @fredbi ...
- fix(genspec-tui): stop the scrolling popups resizing as they scroll by @fredbi ...
- fix(genspec-wasi): resolve -workdir the way the host writes paths by @fredbi ...
- fix(packages): read paths the way the host writes them by @fredbi ...
- fix(builders): don't fail a scan over a declaration that cannot be read by @fredbi ...
- fix(packages): read back a dependency's annotated source by @fredbi ...
- refact(builders): resolve a written type without the expression map by @fredbi ...
- fix(resolvers): added new runtime streamed type to auto-detected file type by @fredbi in #89 ...
Refactor
- refact: reorganized command line options handling by @fredbi ...
- refact(genspec-wasi): declare every scan option once, in one table by @fredbi ...
- refact(scanner): make a declaration's absent source impossible to ignore by @fredbi ...
- refact(scanner): answer a declaration's name and position from its type by @fredbi ...
- refact(parsers): read the annotation line instead of matching it by @fredbi ...
Documentation
- test(integration): refresh TestStdlibUUID's stale embed expectation by @fredbi ...
- doc: rules for technical writing by @fredbi in #126 ...
- doc(doc-site): say which options a configuration file may not set by @fredbi ...
- doc(cliopts): say what -loader does when nothing is passed by @fredbi ...
- doc(benchmarks): hold the configuration constant across the history by @fredbi ...
- doc(doc-site): list the compiled-dependencies flag on the TUI page by @fredbi ...
- fix(benchmarks): refuse an unknown corpus name before unpacking by @fredbi ...
- doc(doc-site): chart what a scan costs and how the loaders compare by @fredbi ...
- test(benchmarks): ship the measurement corpus in the repository by @fredbi ...
- test: rename the fixtures folder testdata by @fredbi in #91 ...
- doc(doc-site): document the CLI tools codescan ships by @fredbi in #115 ...
- doc(doc-site): fetch Mermaid locally the way CI does by @fredbi in #113 ...
- doc: updated roadmap by @fredbi ...
- feat(cliconf): add the configuration file every command can read by @fredbi ...
- doc(genspec): carry the go-swagger relationship to its other readers by @fredbi ...
- doc: added relationship to go-swagger by @fredbi ...
- feat(genspec-tui): report what a scan cost in time and memory by @fredbi ...
- doc: attribution of BSD licensed code and data by @fredbi in #102 ...
- doc(doc-site): say which loader to pick in the options reference by @fredbi ...
- doc(scanner): say which loader to pick, and what each one costs by @fredbi ...
- test(bench): compare loader cost against the previous release by @fredbi ...
- doc(fixtures): flag the invalid items schema in the pets operation by @fredbi in #97 ...
- doc: updated ROADMAP by @fredbi in #95 ...
- docs: document the loader and go-environment options by @fredbi ...
- docs(doc-site): give the terminal UI a page of its own by @fredbi ...
- doc(genspec-tui): bring the module's comments to the prose standard by @fredbi ...
- feat(genspec-tui): mirror the spec pane in diagnostic follow mode by @fredbi ...
- doc: point the scanner's file table at what is there by @fredbi ...
- feat(playground): scan Go source in the browser by @fredbi ...
- doc(scanner): state that FS is the whole world a scan can read by @fredbi ...
- doc(packages): bring the loader's comments to the prose standard by @fredbi ...
Performance
Code quality
- doc: restyle doc tone by @fredbi in #125 ...
- feat(genspec-tui): colour diagnostic rows by severity by @fredbi ...
- feat(playground): run inside a documentation page by @fredbi ...
Testing
- test(genspec): let the silence assertions allow for the loader by @fredbi ...
- test(loader): adapted CLI tests to exercise all loaders by @fredbi ...
- test(builders): reach the builders suites with the loader setting by @fredbi ...
- test(genspec): cover each of the command's internal packages by @fredbi ...
- test(genspec-tui): cover the entry point and its configuration file by @fredbi ...
- test(genspec-tui): count every allocation when checking attribution by @fredbi ...
- test(genspec-tui): lock exact landing on a required-array finding by @fredbi ...
- test(genspec-wasi): parse the typescript mirror under a crlf checkout by @fredbi ...
- test(genspec-wasi): pin the json envelope to its typescript mirror by @fredbi ...
- test(integration): measure what a scan loads, holds and costs by @fredbi ...
Miscellaneous tasks
- chore: prepare release v0.36.4 by @bot-go-openapi[bot] in #131 ...
- chore: removed test utilities from coverage by @fredbi in #123 ...
- ci: run the whole suite once per loader by @fredbi ...
- test: reach the TUI and the runnable examples with the loader setting by @fredbi ...
- fix(test): report the loader through a skip, which gotestsum prints by @fredbi ...
- fix(test): keep the loader echo out of the test listing by @fredbi ...
- test: say which loader a suite ran under by @fredbi ...
- ci: run the test matrix with compiled dependencies by @fredbi ...
- test(integration): choose the loader a test run uses in one place by @fredbi ...
- chore: ignore a command binary built inside its own module by @fredbi ...
- perf(scanner): read dependencies from source again by default by @fredbi ...
- chore: retire browser+wasi prototype by @fredbi in #121 ...
- chore: updated toolchain to latest go by @fredbi ...
- ci: adapted update-doc (internal packages changed location) by @fredbi ...
- chore: updated dependencies by @fredbi in #112 ...
- ci: check the digest of every asset the doc build downloads by @fredbi ...
- ci: decide inside the doc build whether there is anything to publish by @fredbi ...
- ci: move the shared workflows to v0.6.0 by @fredbi ...
- ci: keep npm bumps inside the ranges the playground declares by @fredbi ...
- ci: gate the front-end lane on a check that always reports by @fredbi ...
- ci: keep typescript out of the auto-merged npm group by @fredbi ...
- chore(doc): configure reporting tools by @fredbi in #98 ...
- chore(deps): bring the playground's build toolchain up to date by @fredbi ...
- ci: watch every workspace module with dependabot by @fredbi ...
- ci: track the playground's npm dependencies with dependabot by @fredbi ...
- ci: check the playground app in its own workflow by @fredbi ...
- ci: build the playground when the doc site is built by @fredbi ...
- chore(deps): update the fixture corpus dependencies by @fredbi ...
Security
- doc(security): state the threat model the dismissals rest on by @fredbi ...
- test(scanner): reach the scanner suite with the loader setting by @fredbi ...
- feat(genspec): add a standalone command-line spec generator by @fredbi ...
- fix(doc-site): sanitize what the railroad shortcode injects by @fredbi ...
Reverted changes
Updates
- chore(deps): Bump the playground-dependencies group across 1 directory with 3 updates by @dependabot[bot] ...
- chore(deps-dev): Bump js-yaml from 5.2.3 to 5.3.0 in /hack/doc-site/genspec-wasi in the development-dependencies group by @dependabot[bot] in #127 ...
- chore(deps): Bump swagger-ui-dist from 5.32.12 to 5.32.13 in /hack/doc-site/genspec-wasi in the playground-dependencies group across 1 directory by @dependabot[bot] in #117 ...
- chore(deps-dev): Bump the development-dependencies group in /hack/doc-site/genspec-wasi with 2 updates by @dependabot[bot] in #116 ...
- chore(deps): Bump golang.org/x/mod from 0.38.0 to 0.39.0 in the golang-org-dependencies group across 1 directory by @dependabot[bot] in #103 ...
- chore(deps-dev): Bump typescript from 5.9.3 to 7.0.2 in /hack/doc-site/genspec-wasi in the development-dependencies group by @dependabot[bot] in #104 ...
- chore(deps): Bump github.com/go-openapi/runtime from 0.29.3 to 0.33.0 in the go-openapi-dependencies group by @dependabot[bot] in #88 ...
Other (technical)
- chore(deps): Bump the playground-dependencies group across 1 directory with 3 updates by @fredbi in #130 ...
- Fix/loader conformance by @fredbi in #129 ...
- Config write redirect by @fredbi in #124 ...
- Skip compiled dependences by default by @fredbi in #120 ...
- Tui esc vuln by @fredbi in #119 ...
- Cleanup bench by @fredbi in #118 ...
- Feat/tui cli alignment by @fredbi in #114 ...
- Feat/genspec cli by @fredbi in #111 ...
- Fix/doc site mermaid by @fredbi in #109 ...
- test(genspec-tui): count every allocation when checking attribution by @fredbi in #110 ...
- Tui round3 by @fredbi in #108 ...
- Ci/bump shared workflows by @fredbi in #107 ...
- Fix/revert typescript 7 by @fredbi in #106 ...
- Tui ux round2 by @fredbi in #100 ...
- Fix/derisk precompiled dependencies by @fredbi in #99 ...
- Frontend ci by @fredbi in #93 ...
- More auto detect by @fredbi in #94 ...
- Tui ux enhancements by @fredbi in #92 ...
- Wasi build by @fredbi in #79 ...
- On demand scanner by @fredbi in #90 ...
People who contributed to this release
codescan license terms
Per-module changes
cmd/genspec-tui (0.36.4)
Implemented enhancements
- feat(genspec-tui): charge the CPU table where a reader can act on it by @fredbi ...
- feat(genspec-tui): share the CLI's flags and configuration file by @fredbi ...
- feat(genspec-tui): profile a scan and name where its cost went by @fredbi ...
- feat(genspec-tui): locate every validation finding exactly by @fredbi ...
- feat(genspec-tui): navigate a finding about the whole document by @fredbi ...
- feat(genspec-tui): take a finding's location from the validator by @fredbi ...
- feat(scanner): take dependency types from the build cache by default by @fredbi ...
- feat(genspec-tui): validate the generated spec in a tab of its own by @fredbi ...
- feat(genspec-tui): look up an annotation without leaving the file by @fredbi ...
- feat(genspec-tui): make the pane dividers movable by @fredbi ...
- feat(genspec-tui): add a guarded F5 reload of the open file by @fredbi ...
- feat(genspec-wasi): add a headless spec generator needing no toolchain by @fredbi ...
- feat(scanner): take dependency types from compiled export data by @fredbi ...
- feat(scanner): load and type-check packages without a Go toolchain by @fredbi ...
Fixed bugs
- fix(cliopts): keep the path options off the configuration file by @fredbi ...
- fix(genspec-tui): show control characters instead of obeying them by @fredbi ...
- fix(genspec-tui): keep two path segments in a profiled function name by @fredbi ...
- fix(cmd): give each scan its own copy of the options by @fredbi ...
- fix(genspec-tui): show the validator's warnings by @fredbi ...
- fix(genspec-tui): say how much of the keymap is off screen by @fredbi ...
- fix(genspec-tui): keep the whole header on screen under a long work dir by @fredbi ...
- fix(genspec-tui): stop the scrolling popups resizing as they scroll by @fredbi ...
Refactor
Documentation
- doc: rules for technical writing by @fredbi in #126 ...
- doc(doc-site): say which options a configuration file may not set by @fredbi ...
- test: rename the fixtures folder testdata by @fredbi in #91 ...
- feat(genspec-tui): report what a scan cost in time and memory by @fredbi ...
- docs: document the loader and go-environment options by @fredbi ...
- doc(genspec-tui): bring the module's comments to the prose standard by @fredbi ...
- feat(genspec-tui): mirror the spec pane in diagnostic follow mode by @fredbi ...
Performance
Code quality
- doc: restyle doc tone by @fredbi in #125 ...
- feat(genspec-tui): colour diagnostic rows by severity by @fredbi ...
Testing
- test(loader): adapted CLI tests to exercise all loaders by @fredbi ...
- test(genspec-tui): cover the entry point and its configuration file by @fredbi ...
- test(genspec-tui): count every allocation when checking attribution by @fredbi ...
- test(genspec-tui): lock exact landing on a required-array finding by @fredbi ...
Miscellaneous tasks
- chore: prepare release v0.36.4 by @bot-go-openapi[bot] in #131 ...
- test: reach the TUI and the runnable examples with the loader setting by @fredbi ...
- perf(scanner): read dependencies from source again by default by @fredbi ...
- chore: updated dependencies by @fredbi in #112 ...
Updates
- chore(deps): Bump golang.org/x/mod from 0.38.0 to 0.39.0 in the golang-org-dependencies group across 1 directory by @dependabot[bot] in #103 ...
- chore(deps): Bump github.com/go-openapi/runtime from 0.29.3 to 0.33.0 in the go-openapi-dependencies group by @dependabot[bot] in #88 ...
Other (technical)
- Config write redirect by @fredbi in #124 ...
- Skip compiled dependences by default by @fredbi in #120 ...
- Tui esc vuln by @fredbi in #119 ...
- Feat/tui cli alignment by @fredbi in #114 ...
- test(genspec-tui): count every allocation when checking attribution by @fredbi in #110 ...
- Tui round3 by @fredbi in #108 ...
- Tui ux round2 by @fredbi in #100 ...
- Fix/derisk precompiled dependencies by @fredbi in #99 ...
- Tui ux enhancements by @fredbi in #92 ...
- Wasi build by @fredbi in #79 ...
- On demand scanner by @fredbi in #90 ...
cmd/genspec (0.36.4)
Implemented enhancements
- feat(cliconf): add -c and -no-config to pin or refuse the file by @fredbi ...
- feat(genspec): read a configuration file before the flags by @fredbi ...
Fixed bugs
- fix(cliopts): keep the path options off the configuration file by @fredbi ...
- fix(cmd): give each scan its own copy of the options by @fredbi ...
Refactor
Documentation
- doc(doc-site): say which options a configuration file may not set by @fredbi ...
- test: rename the fixtures folder testdata by @fredbi in #91 ...
- doc(genspec): carry the go-swagger relationship to its other readers by @fredbi ...
- doc: added relationship to go-swagger by @fredbi ...
Code quality
Testing
- test(genspec): let the silence assertions allow for the loader by @fredbi ...
- test(loader): adapted CLI tests to exercise all loaders by @fredbi ...
- test(genspec): cover each of the command's internal packages by @fredbi ...
Miscellaneous tasks
- chore: prepare release v0.36.4 by @bot-go-openapi[bot] in #131 ...
- perf(scanner): read dependencies from source again by default by @fredbi ...
- chore: updated dependencies by @fredbi in #112 ...
Security
Other (technical)
- Config write redirect by @fredbi in #124 ...
- Skip compiled dependences by default by @fredbi in #120 ...
- Feat/tui cli alignment by @fredbi in #114 ...
- Feat/genspec cli by @fredbi in #111 ...
docs/examples (0.36.4)
Implemented enhancements
Miscellaneous tasks
- chore: prepare release v0.36.4 by @bot-go-openapi[bot] in #131 ...
- test: reach the TUI and the runnable examples with the loader setting by @fredbi ...
- chore: updated dependencies by @fredbi in #112 ...
Updates
- chore(deps): Bump golang.org/x/mod from 0.38.0 to 0.39.0 in the golang-org-dependencies group across 1 directory by @dependabot[bot] in #103 ...
Other (technical)
hack/genexportdata/bundle (0.36.4)
Implemented enhancements
Documentation
Miscellaneous tasks
- chore: prepare release v0.36.4 by @bot-go-openapi[bot] in #131 ...
- chore: updated dependencies by @fredbi in #112 ...
Updates
- chore(deps): Bump golang.org/x/mod from 0.38.0 to 0.39.0 in the golang-org-dependencies group across 1 directory by @dependabot[bot] in #103 ...
Other (technical)
testdata (0.36.4)
Fixed bugs
- fix(builders): match json.RawMessage through its go1.27 jsontext alias by @fredbi ...
- fix(scanner): read swagger:meta from the comment it was written in by @fredbi ...
Documentation
- test(integration): refresh TestStdlibUUID's stale embed expectation by @fredbi ...
- test: rename the fixtures folder testdata by @fredbi in #91 ...
Miscellaneous tasks
- chore: prepare release v0.36.4 by @bot-go-openapi[bot] in #131 ...