|
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