|
87 | 87 | - Array validation and count propagation working
|
88 | 88 | - Cascade handles taskless dependent maps
|
89 | 89 |
|
| 90 | +- [x] **PR #213: NULL for Unknown initial_tasks** - `09-16-make-initial-tasks-nullable` |
| 91 | + - Changed initial_tasks from "1 as placeholder" to NULL for dependent map steps |
| 92 | + - Benefits: Semantic correctness (NULL = unknown, not "1 task") |
| 93 | + - Implemented: Schema change to allow NULL, updated all SQL functions |
| 94 | + - Added validation for non-array and NULL outputs to map steps |
| 95 | + - Comprehensive tests for NULL behavior and error cases |
| 96 | + |
90 | 97 | #### ❌ Remaining Work
|
91 | 98 |
|
92 | 99 | - [ ] **Array Element Distribution** (CRITICAL - BLOCKS REAL MAP USAGE)
|
|
102 | 109 | - Store aggregated output for dependent steps to consume
|
103 | 110 | - Maintain task_index ordering in aggregated arrays
|
104 | 111 | - Tests for aggregation with actual map task outputs
|
| 112 | + - **IMPORTANT**: Must add test for map->map NULL propagation when this is implemented |
| 113 | + - **IMPORTANT**: Must handle non-array outputs to map steps (should fail the run) |
105 | 114 |
|
106 | 115 | - [ ] **DSL Support for .map() Step Type**
|
107 | 116 |
|
|
124 | 133 | - Basic happy path coverage
|
125 | 134 | - This should be minimal and added to the Edge Worker integration test suite for now
|
126 | 135 |
|
127 |
| -- [ ] **Semantic Improvement: NULL for Unknown initial_tasks** (OPTIONAL - Can be deferred) |
128 |
| - |
129 |
| - - Change initial_tasks from "1 as placeholder" to NULL for dependent map steps |
130 |
| - - Benefits: Semantic correctness (NULL = unknown, not "1 task") |
131 |
| - - Scope: Schema change to allow NULL, update 5+ SQL functions |
132 |
| - - See detailed plan in `pkgs/core/PLAN_use_null_for_map_initial_tasks.md` |
133 |
| - - **Note**: This is a semantic improvement only - current approach works functionally |
134 |
| - - **Warning**: If deferred, new tests for Array Distribution and Output Aggregation will |
135 |
| - assume initial_tasks = 1 for dependent maps, making this change harder later |
136 |
| - |
137 | 136 | - [ ] **Migration Consolidation**
|
138 | 137 |
|
139 | 138 | - Remove all temporary/incremental migrations from feature branches
|
140 | 139 | - Generate a single consolidated migration for the entire map infrastructure
|
141 | 140 | - Ensure clean migration path from current production schema
|
142 | 141 | - If NULL improvement is done, include it in the consolidated migration
|
143 | 142 |
|
| 143 | +- [ ] **Update README's** and **Docs** |
| 144 | + |
| 145 | + - `pkgs/core/README.md` |
| 146 | + |
| 147 | + - Add new section describing the step types |
| 148 | + - Describe single step briefly, focus on describing map step type and how it differs |
| 149 | + - Make sure to mention that maps are constrained to have exactly one dependency |
| 150 | + - Show multiple cases of inputs -> task creation |
| 151 | + - Explain edge cases (empty array propagation, invalid array input) |
| 152 | + - Explain root map vs dependent map and how it gets handled and what restrictions those apply on the Flow input |
| 153 | + - Explain cascade completion of taskless steps and its limitations |
| 154 | + |
| 155 | + - `pkgs/dsl/README.md` |
| 156 | + |
| 157 | + - Briefly describe the new `.array()` and `.map()` methods |
| 158 | + - Mention `.array` is mostly sugar, and `.map` is the new step type |
| 159 | + - Link to `pkgs/core/README.md` sections for more explanation about map steps |
| 160 | + - Make sure to mention that maps are constrained to have exactly one dependency |
| 161 | + |
| 162 | + - **Add basic docs page** |
| 163 | + |
| 164 | + - put it into `pkgs/website/src/content/docs/concepts/array-and-map-steps.mdx` |
| 165 | + - describe the DSL and how the map works and why we need it |
| 166 | + - show example usage of root map |
| 167 | + - show example usage of dependent map |
| 168 | + - focus mostly on how to use it, instead of how it works under the hood |
| 169 | + - link to the README's for more details |
| 170 | + |
144 | 171 | - [ ] **Graphite Stack Merge**
|
145 | 172 |
|
146 | 173 | - Configure Graphite merge queue for the complete PR stack
|
|
0 commit comments