fix(centralui): grouped bindings review fixes — Apply with the header at none/mixed keeps each member's connection (never unbinds; upsert Save could not persist it), object inference runs over effective references (bare-default members make an overridden group mixed, default-only prefixes infer), bindings to a deleted connection count as unbound, 'n changed · unsaved' diffs against last-saved state; bUnit behaviour tests for fallback banner, grouping and mixed-group Apply+Save

This commit is contained in:
Joseph Doherty
2026-08-20 16:09:34 -04:00
parent 5e04e81ba0
commit 546250096d
6 changed files with 387 additions and 43 deletions
@@ -1,15 +1,77 @@
{
"planPath": "docs/plans/2026-08-20-grouped-connection-bindings.md",
"tasks": [
{"id": 1, "subject": "Task 1: ResolvedAttribute.DefaultDataSourceReference (TemplateEngine)", "status": "pending"},
{"id": 2, "subject": "Task 2: BindingGroupBuilder — grouping + object-prefix inference", "status": "pending"},
{"id": 3, "subject": "Task 3: BindingGroupBuilder.ApplyObject", "status": "pending", "blockedBy": [2]},
{"id": 4, "subject": "Task 4: Configure page — source binding rows from the flattened config", "status": "pending", "blockedBy": [1, 3]},
{"id": 5, "subject": "Task 5: Configure page — grouped markup with per-module Object apply", "status": "pending", "blockedBy": [4]},
{"id": 6, "subject": "Task 6: Live check on the docker rig", "status": "pending", "blockedBy": [5]},
{"id": 7, "subject": "Task 7: CLI instance bind-module", "status": "pending"},
{"id": 8, "subject": "Task 8: Docs", "status": "pending", "blockedBy": [5]},
{"id": 9, "subject": "Task 9: Solution build + impacted suites", "status": "pending", "blockedBy": [1,2,3,4,5,6,7,8]}
{
"id": 1,
"subject": "Task 1: ResolvedAttribute.DefaultDataSourceReference (TemplateEngine)",
"status": "completed"
},
{
"id": 2,
"subject": "Task 2: BindingGroupBuilder \u2014 grouping + object-prefix inference",
"status": "completed"
},
{
"id": 3,
"subject": "Task 3: BindingGroupBuilder.ApplyObject",
"status": "completed",
"blockedBy": [
2
]
},
{
"id": 4,
"subject": "Task 4: Configure page \u2014 source binding rows from the flattened config",
"status": "completed",
"blockedBy": [
1,
3
]
},
{
"id": 5,
"subject": "Task 5: Configure page \u2014 grouped markup with per-module Object apply",
"status": "completed",
"blockedBy": [
4
]
},
{
"id": 6,
"subject": "Task 6: Live check on the docker rig",
"status": "pending",
"blockedBy": [
5
]
},
{
"id": 7,
"subject": "Task 7: CLI instance bind-module",
"status": "completed"
},
{
"id": 8,
"subject": "Task 8: Docs",
"status": "pending",
"blockedBy": [
5
]
},
{
"id": 9,
"subject": "Task 9: Solution build + impacted suites",
"status": "pending",
"blockedBy": [
1,
2,
3,
4,
5,
6,
7,
8
]
}
],
"lastUpdated": "2026-08-20T19:45:00Z"
}
"lastUpdated": "2026-08-20T21:30:00Z"
}