Skip to content

Stdlib: imap_delete/undelete/expunge + ping/check/status (#27783) - #27871

Merged
PurHur merged 2 commits into
masterfrom
agent/advanced-stdlib-27783-imap-delete-status
Aug 5, 2026
Merged

PurHur merged 2 commits into
masterfrom
agent/advanced-stdlib-27783-imap-delete-status

Conversation

@PurHur

@PurHur PurHur commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implements imap_delete / imap_undelete / imap_expunge / imap_ping / imap_check / imap_status on the pure-PHP local mbox engine when IMAP is advertised.
  • Registers SA_MESSAGES / SA_RECENT / SA_UNSEEN / SA_UIDNEXT / SA_UIDVALIDITY / SA_ALL for status flags.
  • php-src refs: ext/imap/php_imap.stub.php, ext/imap/php_imap.c. PHP-in-PHP — no new runtime/*.c.
  • Also adds spine require_once for lib/JIT/ArrayWalkLlvm.php so inventory sync stays green after Regression: AOT array_walk_recursive() segfaults after build — VM/JIT match Zend (ext/standard/array.c) #27632 landed without it.

Closes #27783

Test plan

  • PHP_COMPILER_ENABLE_IMAP=1 php bin/vm.php test/repro/issue_27783_imap_delete_status.php
  • Compliance imap_delete_status.phpt FILE matches --EXPECT--
  • inventory --check OK 7040/7040
  • check-selfhost-spine-coverage-sync OK
  • Docker check-generated-docs.sh OK
  • Not covered: JIT/AOT (VM-only v1); UID sequences; remote STATUS

Made with Cursor

PurHur and others added 2 commits August 5, 2026 19:39
Local-mbox lifecycle marks, expunge rewrite, and SA_* status constants when IMAP is advertised.

Co-authored-by: Cursor <cursoragent@cursor.com>
Unblocks check-selfhost-spine-coverage-sync for the IMAP lifecycle PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

Stdlib: imap_delete/undelete/expunge + ping/check/status missing when IMAP advertised (ext/imap/php_imap.stub.php)

1 participant