Skip to content

Fix help resolution and Win32 ownership soundness - #15

Merged
JamesLinYJ merged 3 commits into
mainfrom
agent/fix-open-issues-root-causes
Aug 9, 2026
Merged

Fix help resolution and Win32 ownership soundness#15
JamesLinYJ merged 3 commits into
mainfrom
agent/fix-open-issues-root-causes

Conversation

@JamesLinYJ

@JamesLinYJ JamesLinYJ commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • replace legacy bare taskmgr.hlp / WinHelpW lookup with a fixed HTTPS project documentation target, explicit Shell/COM failure handling, and localized user feedback
  • encode Win32 ownership with unsafe from_raw boundaries and RAII owners for handles, WTS memory, icons, interface tables, and copied SIDs
  • make raw WM_NOTIFY, callback-buffer, crash, and secure-directory parsing contracts explicit, validated, and narrowly scoped
  • remove caller-facing unsafe from ordinary process/network operations and keep FFI inside local unsafe blocks
  • add focused tests for URL/error classification, UTF-16 truncation, raw directory record bounds, crash callback/path contracts, and typed ownership helpers

Root causes addressed

Issue #13 was caused by delegating a bare filename from an elevated UI to legacy WinHelp search behavior. The help target is now application-owned, deterministic, HTTPS-only, and independent of PATH or legacy file lookup.

Issue #14 was caused by safe APIs claiming ownership of arbitrary raw values or dereferencing caller-provided raw pointers, while unrelated operations were marked unsafe merely because their implementations used FFI. Raw ownership and pointer/message contracts are now represented by types where possible and by documented unsafe boundaries otherwise.

Validation

GitHub Actions CI run #7 passed on all supported architectures:

  • x86_64: whitespace, rustfmt, all-target check, strict Clippy, tests, release build
  • i686: all-target check, strict Clippy, tests, release build
  • ARM64: all-target check, strict Clippy, release build
  • all eight locale tables match all 283 TextKey variants
  • legacy WinHelp and old safe ownership constructor symbols are absent

Fixes #13
Fixes #14

@JamesLinYJ
JamesLinYJ marked this pull request as ready for review August 9, 2026 12:41
@JamesLinYJ
JamesLinYJ merged commit 6f8d360 into main Aug 9, 2026
3 checks passed
@JamesLinYJ JamesLinYJ mentioned this pull request Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant