Skip to content

fix(core): eliminate silent failures, WARN on every degraded outcome - #8

Merged
log0u7 merged 2 commits into
mainfrom
fix/log-silent-failures
Sep 19, 2026
Merged

log0u7 merged 2 commits into
mainfrom
fix/log-silent-failures

Conversation

@log0u7

@log0u7 log0u7 commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Summary

Every degraded outcome (failed git command, failed callback, failed stash/copy/mkdir) now writes a WARN line to the log with debug_mode off, and sidebar labels/footer report the truth instead of an optimistic status. Completes the issue #5 contract across the 15 remaining silent sites.

Type of change

  • fix (bug fix)
  • test

Related issue

Fixes #7

How was this tested?

  • make test-ci passes (199/199, +15 WARN regression tests with debug_mode unset)
  • make test-async passes (16/16)
  • Verified manually on Vim 9.1 / Ubuntu 24.04
  • New logic covered by a Vader test, written test-first (15 failing WARN assertions before the fix)

Notable fixes beyond the WARN lines:

  • git#add_submodule now fails when the pointer commit fails (was: result discarded)
  • update#stash_if_needed returns 0 when git stash push fails (was: 1, causing a phantom stash pop)
  • remove no longer double-prefixes vim_dir on absolute module paths (filesystem-search removals)
  • helptags failure is labeled "Helptags failed", not "skip / No doc directory"

Checklist

  • Commits follow Conventional Commits (type(scope): subject)
  • README.md / doc/plugin_manager.txt / CHANGELOG.md updated if behavior changed
  • No new network call at startup (opt-in only, behind a g:plugin_manager_* flag defaulting to off)
  • Linux only, Vim 8.2 floor respected (no Vim 9+ features, guard v:version < 802 untouched)

Every swallowed failure now leaves a WARN trace (debug_mode-independent,
issue #5 contract) and the sidebar reports the truth:

- git#add_submodule: check the pointer commit, fail the add on error
- remove: check deinit + commit_removal; op label reflects commit failure;
  fix double vim_dir prefix on absolute module paths
- update: warn on unreachable pin target; stash push failure no longer
  pretends a stash exists (phantom pop); auto-commit failure downgrades
  the op and footer
- vimrc/helptags/check/async/add/declare/backup/util: warn on the
  previously invisible failure branches

tests/log_warnings.vader: 15 WARN regression tests with debug_mode unset.
Closes #7
Permission bits do not block root (CI containers run as root): a tags
DIRECTORY plus a valid help file makes :helptags fail with E152 for
every user.
@log0u7
log0u7 merged commit a696e81 into main Sep 19, 2026
32 checks passed
@log0u7
log0u7 deleted the fix/log-silent-failures branch September 19, 2026 23:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Silent failures: degraded outcomes invisible in the log (15 sites)

1 participant