|
9 | 9 | - ✅ **DONE**: Dependency count propagation for map steps |
10 | 10 | - ✅ **DONE**: Array element extraction - tasks receive individual array elements |
11 | 11 | - ✅ **DONE**: Output aggregation - inline implementation aggregates map task outputs for dependents |
12 | | -- ⏳ **NEXT**: DSL support for `.map()` for defining map steps |
| 12 | +- ✅ **DONE**: DSL support for `.map()` for defining map steps |
| 13 | +- ⏳ **TODO**: Fix orphaned messages on run failure |
| 14 | +- ⏳ **TODO**: Performance optimization with step_states.output column |
13 | 15 |
|
14 | 16 | ### Chores |
15 | 17 |
|
16 | | -- ⏳ **WAITING**: Integration tests for map steps |
17 | | -- ⏳ **WAITING**: Consolidated migration for map steps |
18 | | -- ⏳ **WAITING**: Documentation for map steps |
19 | | -- ⏳ **WAITING**: Graphite stack merge for map steps |
| 18 | +- ⏳ **TODO**: Integration tests for map steps |
| 19 | +- ⏳ **TODO**: Update core README |
| 20 | +- ⏳ **TODO**: Add docs page for array and map steps |
| 21 | +- ⏳ **TODO**: Migration consolidation |
| 22 | +- ⏳ **TODO**: Graphite stack merge |
20 | 23 |
|
21 | 24 | ## Implementation Status |
22 | 25 |
|
|
83 | 86 | - Validates non-array outputs to map steps fail correctly |
84 | 87 | - Fixed broadcast aggregation to send full array not individual task output |
85 | 88 |
|
86 | | -#### ❌ Remaining Work |
87 | | - |
88 | | -- [ ] **DSL Support for .map() Step Type** |
| 89 | +- [x] **PR #218: DSL Support for .map() Step Type** - `09-18-add-map-support-to-dsl` (THIS PR) |
89 | 90 |
|
90 | | - - Add `.map()` method to Flow DSL for defining map steps |
| 91 | + - Added `.map()` method to Flow DSL for defining map steps |
91 | 92 | - Constraints: |
92 | 93 | - Locked to exactly one dependency (enforced at compile time) |
93 | 94 | - Dependency must return an array (type-checked) |
94 | 95 | - Syntax design: |
95 | 96 | - Dependent maps: `flow.map({ slug: 'stepName', array: 'arrayReturningStep' }, handler)` |
96 | | - - Root maps: Decide between `{ array: 'run' }` or omitting array property |
| 97 | + - Root maps: Omit array property |
97 | 98 | - Return type always inferred as array |
98 | 99 | - Comprehensive tests: |
99 | 100 | - Runtime validation of array dependencies |
100 | 101 | - Type safety for input/output types |
101 | 102 | - Compile-time enforcement of single dependency rule |
| 103 | + - Fixed complex TypeScript type inference issue with overloads |
| 104 | + - Updated DSL README with .map() documentation |
| 105 | + |
| 106 | +#### ❌ Remaining Work |
102 | 107 |
|
103 | 108 | - [ ] **Fix Orphaned Messages on Run Failure** |
104 | 109 |
|
|
130 | 135 | - Basic happy path coverage |
131 | 136 | - This should be minimal and added to the Edge Worker integration test suite for now |
132 | 137 |
|
133 | | -- [ ] **Migration Consolidation** |
134 | | - |
135 | | - - Remove all temporary/incremental migrations from feature branches |
136 | | - - Generate a single consolidated migration for the entire map infrastructure |
137 | | - - Ensure clean migration path from current production schema |
138 | | - - If NULL improvement is done, include it in the consolidated migration |
139 | | - |
140 | | -- [ ] **Update README's** and **Docs** |
| 138 | +- [ ] **Update core README** |
141 | 139 |
|
142 | 140 | - `pkgs/core/README.md` |
143 | 141 |
|
|
149 | 147 | - Explain root map vs dependent map and how it gets handled and what restrictions those apply on the Flow input |
150 | 148 | - Explain cascade completion of taskless steps and its limitations |
151 | 149 |
|
152 | | - - `pkgs/dsl/README.md` |
153 | | - |
154 | | - - Briefly describe the new `.array()` and `.map()` methods |
155 | | - - Mention `.array` is mostly sugar, and `.map` is the new step type |
156 | | - - Link to `pkgs/core/README.md` sections for more explanation about map steps |
157 | | - - Make sure to mention that maps are constrained to have exactly one dependency |
| 150 | +- [ ] **Add docs page** |
158 | 151 |
|
159 | 152 | - **Add basic docs page** |
160 | 153 |
|
|
165 | 158 | - focus mostly on how to use it, instead of how it works under the hood |
166 | 159 | - link to the README's for more details |
167 | 160 |
|
| 161 | +- [ ] **Migration Consolidation** |
| 162 | + |
| 163 | + - Remove all temporary/incremental migrations from feature branches |
| 164 | + - Generate a single consolidated migration for the entire map infrastructure |
| 165 | + - Ensure clean migration path from current production schema |
| 166 | + - If NULL improvement is done, include it in the consolidated migration |
| 167 | + |
168 | 168 | - [ ] **Graphite Stack Merge** |
169 | 169 |
|
170 | 170 | - Configure Graphite merge queue for the complete PR stack |
|
0 commit comments