You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolve the review findings on the current_state observability change:
- Blocker: route current_state (and task_metadata) through a new column-scoped
atomic UPDATE (TaskRepository/AgentTaskService.update_mutable_fields) instead
of update_task's whole-row session.merge of a stale entity. Touching only the
supplied columns means a concurrent status transition or params merge can no
longer be silently reverted (terminal task revert / deleted task resurrection
/ lost param edit). update_task keeps its full-row semantics for the
status-writing callers (delete/fail/forward) that need them.
- Support clearing current_state: an UNSET sentinel distinguishes an explicit
null (clears the label) from an omitted field (left untouched), driven off the
request's model_fields_set.
- Bound the label: String(255) column + max_length on the request/response
schema (new field, no back-compat risk) so it can't amplify unboundedly onto
every task_updated SSE payload. Single source of truth: CURRENT_STATE_MAX_LENGTH.
- Make the migration idempotent (ADD/DROP COLUMN IF [NOT] EXISTS), width 255.
- Align the domain-entity field title with the API schema title.
- Fix stale migration-linter path/flag in CLAUDE.md
(scripts/ci_tools/migration_lint.py --base).
- Tests: single-atomic-write (spy), status no-clobber regression, clear-to-null,
by-name route, empty-string, over-length 422, combined update; robust bounded
wait in the new stream test. Regenerated openapi.yaml.
Copy file name to clipboardExpand all lines: CLAUDE.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -358,7 +358,7 @@ Use the escape hatch for "this needs a maintenance window with traffic shifted a
358
358
359
359
##### Anti-pattern → linter rule reference
360
360
361
-
The migration linter at `agentex/scripts/lint_migrations.py` enforces these rules at PR time via `.github/workflows/migration-lint.yml`. It only checks files changed vs the PR base, so existing migrations are not retro-flagged. The mapping below is what the linter catches:
361
+
The migration linter at `agentex/scripts/ci_tools/migration_lint.py` enforces these rules at PR time via `.github/workflows/migration-lint.yml`. It only checks files changed vs the PR base, so existing migrations are not retro-flagged. The mapping below is what the linter catches:
362
362
363
363
| Anti-pattern | Linter rule |
364
364
|---|---|
@@ -371,7 +371,7 @@ The migration linter at `agentex/scripts/lint_migrations.py` enforces these rule
0 commit comments