aboutsummaryrefslogtreecommitdiffstats
path: root/TODO.md
AgeCommit message (Collapse)AuthorFilesLines
14 hoursdocs: add backslash-continuation TODO for bundle-manifests loaderDanilo M.1-1/+2
Multi-line manifest entries with trailing \ silently break the one-line-per-entry loader (rest becomes \, submodule path %5C, 404). Track the fix; workaround is a one-lined openvino entry on the VM. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 hoursfeat: --info version-compare row; fix -i completion; release v1.2.6v1.2.6Danilo M.1-1/+2
--info/-i now prints a version-compare row between the header and the README: SBo .info version vs the hint's, greening the higher side (< / >), yellow on equal (=), '(no hint)' when no hint carries a version, skipped when the .info has no version. Header stays pinned, version row scrolls with the README. Completion: -i now completes package names (was flag-only); package-name completion for -n/-i drops the broken -maxdepth 2 .info scan for a param-expansion sweep of REPO_DIR/*/*/ dirs, ~7s -> ~60ms. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 hoursdocs: mark v1.2.5 TODO items doneDanilo M.1-3/+3
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 hoursdocs: spec for nvchecker autodetect expansion, -n stanza output, --info/-iDanilo M.1-1/+4
Expand nvchecker source autodetection in add_nvchecker_section (the single global emitter used by --new and --check populate) to cover gitlab, bitbucket, gitea.com, codeberg, pagure, npm, gems, cratesio, cpan, hackage, packagist, cran, in addition to the existing github/pypi. Also spec the -n stanza echo and the --info/-i README viewer. Marks the v1.2.4 continuation-suppression TODO done. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfeat: suppress continuation-URL prompt for manifest-listed pkgs; release v1.2.4v1.2.4Danilo M.1-1/+1
On a primary version bump of a manifest-listed package, mkhint used to prompt interactively for each extra DOWNLOAD (continuation) URL, then Phase 2 (reconcile_bundle_deps) rewrote those same lines from the upstream manifest — a pointless double-touch (13 prompts for neovim). update_hint_file now detects a listed package and threads a skip_cont flag through update_checksums -> _process_download_var, which leaves the continuation URLs for the manifest reconcile and prints a short notice instead of prompting. Non-listed packages prompt exactly as before. Also fixes a set -e abort: the manifest-lookup guard was written as `pkg_has_manifest ... && _skip_cont=1`, whose false result (non-listed package) killed the run right after the backup. Rewritten as an if. This would have broken every non-listed --hintfile -V update. Verified live on a non-listed multiline package (exploitdb). Tests: T-BM18 now asserts the listed-pkg suppression, T-BM25 guards against over-suppression (non-listed still prompts); the read -p prompt is invisible under piped stdin, so both assert on the always-echoed "line N (current)" header. 184 passed. Also defers the multi-file split TODO with a rationale and revisit triggers (extract only the bundled-dep block when the time comes). Bump MKHINT_VERSION and man title to 1.2.4, rebuild mkhint.1.gz. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfix: complete version-aware reconcile against real URL shapes; release v1.2.2v1.2.2Danilo M.1-2/+1
1.2.1 made the bundled-dep reconcile version-aware but _url_version mis-parsed several real-world URL shapes, so 1.2.1 was never correct in the field (found by running mkhint -C --force neovim against the live 0.12.4 hint). _url_version now derives the version by stripping the URL's own github repo name from the basename: - dep names containing digits/dashes (lua-compat-5.3) parse correctly instead of splitting the name as a version - a bare-tag basename with no name prefix is taken as the whole version, fixing package-rev suffixes (luv 1.52.1-0 was truncated to 0) - non-github and the shared neovim/deps blob host fall back to the trailing-version/sha heuristic _url_repo is lowercased so JuliaStrings/utf8proc matches juliastrings/utf8proc (github repos are case-insensitive); utf8proc had reported no-match and appeared in the manifest-only FYI. Verified against all 13 live neovim 0.12.4 bundled deps: all match and report current, no false change, a real bump still detected. Adds T-BM22 (one case per URL-shape class) and T-BM23 (case-insensitive repo match); T-BM17 unchanged. 182 passed. Bump MKHINT_VERSION and man title to 1.2.2, rebuild mkhint.1.gz. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysfix: version-aware bundled-dep reconcile; release v1.2.1v1.2.1Danilo M.1-2/+2
reconcile_bundle_deps flagged a dep as changed on raw URL-string inequality. Manifests serve bare-tag archive URLs (.../archive/v0.26.7.tar.gz) while hints use the SBo-fetched tree shape (.../archive/v0.26.7/tree-sitter-0.26.7.tar.gz) — same version, different path — so every dep was reported changed at a version that had not moved. Add _url_version to parse and normalize the version from a URL basename, and detect change by version rather than URL string. Only rewrite a line when the version actually differs. Change report now shows "name old-ver -> new-ver". Regression test T-BM17 pins the same-version, different-shape case as no change (180 passed). Bump MKHINT_VERSION and man title to 1.2.1, rebuild mkhint.1.gz. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3 daysdocs: TODO v1.2.1 bug — reconcile change-detection must be version-awareDanilo M.1-0/+2
Real neovim 0.12.4 run flagged all 13 deps as changed because the manifest serves bare-tag archive URLs while the hint uses the SBo-fetched URL shape; same version, different path. Raw-URL-equality detection is wrong; compare upstream version/pin instead. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4 daysdocs: add post-1.2.0 followups to TODODanilo M.1-1/+10
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4 daysdocs: add TODO.md for future ideasDanilo M.1-0/+2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>