Skip to content

fix(update): make parallel updater deterministic - #453

Merged
ss-o merged 1 commit into
nextfrom
bug-114
Aug 29, 2026
Merged

fix(update): make parallel updater deterministic#453
ss-o merged 1 commit into
nextfrom
bug-114

Conversation

@ss-o

@ss-o ss-o commented Aug 29, 2026

Copy link
Copy Markdown
Member

Description

Make Zi's parallel updater deterministic and failure-aware:

  • retain every child PID until it is reaped;
  • enforce the configured concurrency limit exactly;
  • flush snippet and plugin phases independently;
  • emit captured output in launch order;
  • propagate child and output failures; and
  • reap children and remove temporary output after normal completion or handled interruption.

The focused regression suite covers the original trailing-job failure, concurrency, phase isolation, deterministic output, failure propagation, and signal cleanup.

Related issues

Closes #114

Type of change

  • fix - bug fix (non-breaking)
  • feat - new feature (non-breaking)
  • feat! / fix! - breaking change
  • perf - performance improvement
  • refactor - code change with no functional impact
  • docs - documentation only
  • test - test addition or correction
  • build - build system or dependency change
  • ci - CI/workflow change
  • style - formatting with no behavior change
  • chore - maintenance / dependency bump
  • revert - revert of an earlier change

Checklist

  • Ordinary work targets next; only same-repository hotfixes target main
  • This is not a next to main promotion
  • Commit messages follow Conventional Commits format
  • No Co-authored-by trailer credits a bot, AI agent, or automation
  • I have read the contribution guidelines
  • Existing tests pass
  • No documentation change is required for this internal bug fix

Verification

  • zsh -f tests/parallel-update.zsh: 6 scenarios passed.
  • Existing Zi integration suites: 61 scenarios passed.
  • Native syntax and isolated zcompile -U: all 29 Zsh files passed. The pre-existing lib/zsh/rpm2cpio.zsh:54 warning remains.
  • actionlint .github/workflows/zsh-n.yml: passed.
  • git diff --check: passed.
  • Local commit hook: passed.

Migration plan

Not required. No destructive public-contract impact is expected.

Agent handoff

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.

1 participant