🐝 Epic: Port Drupal 11 Core to TypeScript + Rust/WASM
Tracking issue for the multi-agent swarm port of Drupal core. Coordinated by
ruflo-swarm:coordinator, tested TDD-London (tdd-london-swarm), complex algos in
Rust→WASM. Architecture: ADR-0014…0018 (docs/adr/).
Ground truth
Source mapped in drupal-rvf/ (RVF semantic DB of Drupal 11: 16,151 files, 1.78M LOC, 87 modules ).
Monorepo: port/ (npm workspaces packages/*, Rust workspace crates/*).
Rule (ADR-0017): each agent owns ONE packages/<name>/ or crates/<name>/; never edits shared root manifests.
Definition of done per task: failing-first tests (Vitest / cargo test) → impl → green → reviewer sign-off → progress comment here.
Conventions
TS package: @drupaljs/<name> (see port/README.md template).
Rust crate: drupaljs-<name>, crate-type=["cdylib","rlib"], wasm-bindgen.
Comment format per task: ✅/🚧 @drupaljs/<name> — <what landed> — tests: N pass — coverage: X%.
Phase 1 — Kernel (TS packages)
1. @drupaljs/contracts — shared interfaces/types
2. @drupaljs/di — service container + ContainerBuilder
3. @drupaljs/event-dispatcher
4. @drupaljs/hook — module hook system
5. @drupaljs/plugin — plugin manager, discovery, factory
6. @drupaljs/typed-data
7. @drupaljs/config — config factory, storage, overrides
8. @drupaljs/cache — backends + cache tags/contexts
9. @drupaljs/routing — route provider, url generator
10. @drupaljs/http-kernel — request/response, middleware, controller resolver
11. @drupaljs/render — render arrays, renderer, bubbleable metadata
12. @drupaljs/theme — theme negotiation + template engine
13. @drupaljs/entity — entity type, storage, query
14. @drupaljs/database — connection, query builder, schema
15. @drupaljs/util — Xss/Html/NestedArray/UrlHelper/Tags/Bytes/SortArray
16. @drupaljs/datetime
17. @drupaljs/validation — constraints
18. @drupaljs/serialization
19. @drupaljs/state-keyvalue
20. @drupaljs/lock
21. @drupaljs/queue
22. @drupaljs/cron
23. @drupaljs/file-system — stream wrappers
24. @drupaljs/logger
25. @drupaljs/mail
26. @drupaljs/session
27. @drupaljs/access — access manager
28. @drupaljs/form — Form API
29. @drupaljs/ajax
30. @drupaljs/menu — link tree, local tasks/actions
31. @drupaljs/breadcrumb
32. @drupaljs/pager
33. @drupaljs/batch
34. @drupaljs/language
35. @drupaljs/string-translation
Phase 1 — Rust/WASM crates (complex algos, ADR-0015)
Phase 2 — Foundational services / fields
Phase 3 — Modules
Swarm log
Agents append progress below as comments. Coordinator maintains the checklist above.
🐝 Epic: Port Drupal 11 Core to TypeScript + Rust/WASM
Tracking issue for the multi-agent swarm port of Drupal core. Coordinated by
ruflo-swarm:coordinator, tested TDD-London (tdd-london-swarm), complex algos inRust→WASM. Architecture: ADR-0014…0018 (
docs/adr/).Ground truth
drupal-rvf/(RVF semantic DB of Drupal 11: 16,151 files, 1.78M LOC, 87 modules).port/(npm workspacespackages/*, Rust workspacecrates/*).packages/<name>/orcrates/<name>/; never edits shared root manifests.cargo test) → impl → green → reviewer sign-off → progress comment here.Conventions
@drupaljs/<name>(seeport/README.mdtemplate).drupaljs-<name>,crate-type=["cdylib","rlib"], wasm-bindgen.✅/🚧 @drupaljs/<name> — <what landed> — tests: N pass — coverage: X%.Phase 1 — Kernel (TS packages)
@drupaljs/contracts— shared interfaces/types@drupaljs/di— service container + ContainerBuilder@drupaljs/event-dispatcher@drupaljs/hook— module hook system@drupaljs/plugin— plugin manager, discovery, factory@drupaljs/typed-data@drupaljs/config— config factory, storage, overrides@drupaljs/cache— backends + cache tags/contexts@drupaljs/routing— route provider, url generator@drupaljs/http-kernel— request/response, middleware, controller resolver@drupaljs/render— render arrays, renderer, bubbleable metadata@drupaljs/theme— theme negotiation + template engine@drupaljs/entity— entity type, storage, query@drupaljs/database— connection, query builder, schema@drupaljs/util— Xss/Html/NestedArray/UrlHelper/Tags/Bytes/SortArray@drupaljs/datetime@drupaljs/validation— constraints@drupaljs/serialization@drupaljs/state-keyvalue@drupaljs/lock@drupaljs/queue@drupaljs/cron@drupaljs/file-system— stream wrappers@drupaljs/logger@drupaljs/mail@drupaljs/session@drupaljs/access— access manager@drupaljs/form— Form API@drupaljs/ajax@drupaljs/menu— link tree, local tasks/actions@drupaljs/breadcrumb@drupaljs/pager@drupaljs/batch@drupaljs/language@drupaljs/string-translationPhase 1 — Rust/WASM crates (complex algos, ADR-0015)
drupaljs-graph— topological sort + SCC (dependency resolution)drupaljs-diff— Myers diff (config/text)drupaljs-xss-html— HTML tokenizer/filter automatondrupaljs-transliteration— transliteration tablesdrupaljs-cache-checksum— cache-tag checksumsdrupaljs-route-matcher— compiled route regex matcherdrupaljs-password-hash— phpass-compatible hashingdrupaljs-search-tokenizer— tokenizer/stemmerdrupaljs-uuid— UUID v4drupaljs-crypt— hmac, base64, constant-time comparePhase 2 — Foundational services / fields
@drupaljs/field— field types/storage/formatters/widgets@drupaljs/field-ui@drupaljs/textfield type@drupaljs/optionsfield type@drupaljs/linkfield type@drupaljs/datetime-field@drupaljs/path-alias@drupaljs/content-translation@drupaljs/locale@drupaljs/editor+@drupaljs/filterPhase 3 — Modules
@drupaljs/module-system@drupaljs/module-user@drupaljs/module-node@drupaljs/module-taxonomy@drupaljs/module-comment@drupaljs/module-menu_link_content@drupaljs/module-menu_ui@drupaljs/module-block@drupaljs/module-block_content@drupaljs/module-file@drupaljs/module-image@drupaljs/module-media@drupaljs/module-media_library@drupaljs/module-path@drupaljs/module-search@drupaljs/module-ckeditor5@drupaljs/module-content_moderation@drupaljs/module-workflows@drupaljs/module-workspaces@drupaljs/module-layout_builder@drupaljs/module-layout_discovery@drupaljs/module-views(split: query, display, plugins, UI)@drupaljs/module-views_ui@drupaljs/module-jsonapi@drupaljs/module-rest@drupaljs/module-contact@drupaljs/module-contextual@drupaljs/module-toolbar@drupaljs/module-big_pipe@drupaljs/module-dynamic_page_cache@drupaljs/module-page_cache@drupaljs/module-breakpoint@drupaljs/module-responsive_image@drupaljs/module-migrate@drupaljs/module-migrate_drupal@drupaljs/module-update@drupaljs/module-dblog@drupaljs/module-syslog@drupaljs/module-shortcut@drupaljs/module-book@drupaljs/module-history@drupaljs/module-tour@drupaljs/module-help@drupaljs/theme-engine+@drupaljs/theme-olivero/claro/starkSwarm log
Agents append progress below as comments. Coordinator maintains the checklist above.