Files
ujsx/tasks/fiber-type.md
glm-5.1 c9c32a6aa6 decompose reconciler roadmap into 20 implementation tasks across 5 phases
Tasks follow the architecture spec phases:
- Phase 0: key field on UElement (2 tasks + review)
- Phase 1: reactive-host bridge / fiber tree (4 tasks + review)
- Phase 2: key-based children reconciliation (3 tasks + review)
- Phase 3: unmount & dispose support (4 tasks)
- Phase 4: TypeBox value optimizations (4 tasks)

Validated with taskgraph CLI: no cycles, 15 parallel generations,
3 high-risk tasks identified (signal-driven-updates, commit-mutations,
fiber-disposal).
2026-05-18 16:26:52 +00:00

1.4 KiB

id, name, status, depends_on, created, modified, scope, risk, impact, level
id name status depends_on created modified scope risk impact level
fiber-type Define Fiber and Effect types pending
review-key-field
2026-05-18T16:22:57.140011417Z 2026-05-18T16:22:57.140011873Z narrow medium phase implementation

Description

Define the Fiber<I> interface and Effect type in a new file src/host/fiber.ts. The fiber tree is the reconciler's internal state — it maps UElement positions to host instances across renders. This is the foundational type that all reconciler work builds on.

The Fiber type is generic over I (matching HostConfig's Instance type) so each fiber carries a reference to its host instance. This is the bridge: fiber → host instance → host-specific state.

Acceptance Criteria

  • Fiber<I> interface defined with all fields: instance, tag, props, key, children, parent, effect, signalDisposers, prevProps
  • Effect union type defined with variants: update, insert, move, remove
  • Types are exported from src/host/fiber.ts
  • Types are re-exported from src/mod.ts barrel
  • TypeScript compiles (npm run build:tsc)
  • No runtime behavior changes — this is type-only

References

  • docs/architecture/reconciler.md — Fiber Node, Effect Types sections
  • docs/architecture/lifecycle.md — Fiber Tree Disposal (signalDisposers field)

Notes

To be filled by implementation agent

Summary

To be filled on completion