Skip to content

fix(metadata): exempt read-only @sql views from column-name collision check - #528

Merged
dmealing merged 4 commits into
mainfrom
fm/mo-sql-view-dup-column
Nov 4, 2026
Merged

dmealing merged 4 commits into
mainfrom
fm/mo-sql-view-dup-column

Conversation

@dmealing

@dmealing dmealing commented Nov 4, 2026

Copy link
Copy Markdown
Member

What Changed

  • ERR_COLUMN_NAME_COLLISION skips an object whose sources are all read-only and include a source.rdb @kind: view with an @sql body. Two fields may read one column in such a view. The same exemption is applied in the TypeScript, Java, C# and Python validation passes.
  • Derived views (no @sql) and objects with a writable source are still checked.
  • When both colliding fields already have an explicit @column, the error message now says to rename one field or point one @column at a different column. The error code is unchanged.
  • Adds conformance fixtures column-name-shared-in-sql-view-ok, error-column-name-collision-derived-view and error-column-name-collision-table-with-sql-view, plus a per-port regression test (TypeScript, Java, C#, Python). ERROR-CODES.json and docs/CONFORMANCE.md are updated to match, and the CHANGELOG Fixed entry is added.
Validation

Risk Assessment

✅ Low: Narrow, symmetric exemption in all four ports (every source read-only and at least one @sql view), backed by shared conformance fixtures and per-port message tests. It matches the intent and the recorded decisions, and no wrong-result path turned up.

Testing

The Test agent exceeded its invocation budget before live validation completed; no evidence was gathered for this head.

  • Outcome: ⚠️ 1 warning across 1 run (1h56m8s)

Pipeline

Updates from git push no-mistakes

✅ **Intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

⚠️ **Test** - 1 warning
  • ⚠️ The Test agent did not finish within its invocation budget. Reported: agent run tests timed out at its 1h30m0s still-working cap (silent budget 1h15m0s; ran 1h30m2s): agent last produced output 23m20s ago (3 observed); agent reported: claude exited: signal: terminated: glm-claude: step=test route=light glm-claude: trying haiku55 (effort low, thinking off)... glm-claude: haiku55 failed (timed out after 2000s, partial stream discarded) glm-claude: haiku55 failed — failing over glm-claude: trying sonnet55 (effort high)... glm-claude: sonnet55 failed (timed out after 2000s, partial stream discarded) glm-claude: sonnet55 failed — fa.... This is a budget or provider-slowness cut, not a code failure. Re-running the same request costs another full budget, so no further attempt is made automatically. If this repository's targeted tests or evidence gathering routinely stay quiet longer than the default 30m0s, raise test_agent_timeout in global config. If the turn was still producing output or running a child process, set or raise test_agent_working_timeout there instead: a turn runs past test_agent_timeout only up to that still-working cap. Respond with fix to spend another budget: a repair turn runs only for selected findings other than this budget cut, then validation re-runs. Or abort and retry after raising the budget.
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

@dmealing
dmealing merged commit 2049f5e into main Nov 4, 2026
9 checks passed
@dmealing
dmealing deleted the fm/mo-sql-view-dup-column branch November 4, 2026 04:51
dmealing added a commit that referenced this pull request Nov 4, 2026
Brings in #528 (read-only @SQL view column-collision exemption) and #530
(cross-field validators in generated create models). Conflicts resolved by
keeping both sides: the conformance fixture count is 428 (main's 426 plus this
branch's two provider-custom-vocabulary fixtures) in AGENTS.md,
docs/CONFORMANCE.md and the site payload, and CHANGELOG keeps both entries.

The metaobjects-authoring SKILL.md is held under its 500-line cap: the
provider section's per-language wiring table moves into the per-language
provider references it already pointed at, with a one-line pointer left in
place, and the agent-context conformance fixtures are regenerated.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant