Skip to content

Pathwise 4.2.0 — CI-validated remediation and optional Runwire integration (draft) - #24

Merged
abmmhasan merged 77 commits into
mainfrom
feature/runwire-2.1.1
Oct 10, 2026
Merged

abmmhasan merged 77 commits into
mainfrom
feature/runwire-2.1.1

Conversation

@abmmhasan

@abmmhasan abmmhasan commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Pathwise 4.2.0 release candidate

Harden upload, filesystem, archive, native-operation and persistent-worker boundaries, with optional borrowed Runwire 2.1.1 runtime/request/task context. Frameworks and intermediary libraries can forward the same execution object into Pathwise. The host retains ownership of requests, task scopes, workers and event loops; ordinary synchronous APIs remain available when Runwire or a capability is absent.

Writer lock reacquisition and conversion preserve written contents. Closing an uninitialized atomic or adapter writer discards staging instead of publishing an empty replacement, including cancellation before exclusive acquisition. Supplied task scopes support cooperative lock retries and watcher intervals. ZIP extraction checks cancellation during bounded copies before publication and commit; rollback and cleanup reject redirected destinations before restoring or deleting files. Native ZIP operands resolve before changing directories.

Regressions cover cancellation, deadlines, lock ownership, Windows filesystem behavior, relative paths, hostile symlink changes, host composition and benchmark connection lifecycles. PHP replaces the Python comparison runner. Source-isolated performance fixtures validate streamed small/large/range HTTP responses, warm every worker/path, and continuously sample live process-tree resources. Clients open fresh measured connections after the warmup barrier so host header deadlines remain unchanged.

README and published guides match the APIs, including explicit context forwarding and synchronous fallback. Queue guidance scopes FileJobQueue to one host and explains application-owned distributed brokers, accessible storage keys and idempotent effects. Completed plans and the replaced Python runner were removed.

Validation

Final revision: 0eb7e84. Exact-revision CI passed all 18 executed jobs: PHP 8.4/8.5 with lowest/stable dependencies, Windows, analyzers, optional adapters, production-only installation without Runwire, Foundation 3.0.1 / Runwire 2.1.1 composition, benchmarks and release stress. The tag-only release and duplicate upstream security-report jobs were intentionally inactive.

  • Local PHPForge processing, detailed checks and all 13 aggregate checks passed: 462 tests / 1,612 assertions. No source changes followed this validation.
  • Matched synthetic Foundation responses: −0.83% median RPM versus tag 4.1, within the unchanged 2% regression budget.
  • Three alternating sustained HTTP trials per concurrency: +1.04% / +0.32% / +0.01% / +1.00% median RPM at 1 / 8 / 32 / 64 clients. Every phase had zero errors and met latency/resource budgets.
  • Two-worker bound-context soak: 14,303 successful responses, zero errors, p99 106.24 ms, peak process-tree RSS 174.95 MiB, RSS growth 132 KiB, descriptor growth 0, and no worker replacement.
  • Downloaded artifacts independently checked: 83 candidate source fingerprints matched this checkout; all 25 HTTP phases retained resource budgets and stable sampled process trees. The hosted runner shares CPU affinity between host and clients; this is a matched fixture result, not a production capacity guarantee.
  • Release stress completed all four workloads, including the 10,000-job local queue and reverse-arrival chunk assembly.
  • 87 documented PHP examples passed syntax validation; 159 detectable API calls/argument sets matched; Sphinx passed with warnings treated as errors. Foundation host lifecycle validation and all 16 local release benchmark subjects passed.
  • Production security artifact and refreshed dependency audit: no advisories or abandoned production packages. Development-only abandoned doctrine/annotations remains upstream PHPForge/PHPBench tooling debt, documented in CONTRIBUTING.

Single intended release target: 4.2.0. This PR remains draft and unmerged; no release tag has been created.

- Add comprehensive release and remediation plan for Pathwise 4.2.0 📝
- Outline security findings, P0-P12 remediation steps, and Runwire 2.1.1 integration architecture 📝
- Document test matrices, performance requirements, and execution gates 📝
- Cut pathwise-4.1-upload-filesystem-trust-boundary-plan.md file from documentation plans 🔥
- Update push trigger to include semantic tags 👷
- Add conditional release workflow job for tagged commits 🚀
- Restrict standard test jobs to skip execution during release tags 👷
Comment thread src/StreamHandler/UploadSource.php Fixed
Comment thread src/Native/NativeOperationsAdapter.php Fixed
Comment thread src/Indexing/ChecksumIndexer.php Fixed
Comment thread src/Indexing/ChecksumIndexer.php Fixed
Comment thread src/StreamHandler/Scanner/ClamAvDaemonScanner.php Fixed
Comment thread src/StreamHandler/Scanner/ClamAvDaemonScanner.php Fixed
@abmmhasan abmmhasan changed the title Pathwise 4.2.0 — security remediation and optional Runwire 2.1.1 integration Pathwise 4.2.0 — CI-validated remediation and optional Runwire integration (draft) Oct 9, 2026
@abmmhasan
abmmhasan marked this pull request as ready for review October 10, 2026 02:32
@abmmhasan
abmmhasan merged commit 91dd1b6 into main Oct 10, 2026
22 checks passed
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.

2 participants