Skip to content

Feat modules - #3

Merged
arantespp merged 27 commits into
mainfrom
feat-modules
Apr 13, 2026
Merged

Feat modules#3
arantespp merged 27 commits into
mainfrom
feat-modules

Conversation

@arantespp

Copy link
Copy Markdown
Member

No description provided.

@arantespp
arantespp merged commit 36dfdb0 into main Apr 13, 2026
2 of 5 checks passed
@arantespp
arantespp deleted the feat-modules branch April 13, 2026 13:48
arantespp added a commit that referenced this pull request Jun 28, 2026
…n fields, trace_id) (#294)

* fix(agents): address UX/docs issues from issue #293

- Fix #1: parseBedrockSecret now treats plain ABSK strings as
  { apiKey: value } instead of silently discarding them

- Fix #2: buildBedrockModel now falls back to config.apiKey when
  no secret is linked, so api_key in the provider config object
  is honoured instead of being silently ignored

- Fix #3: Add PATCH /agents/:agent_id as an alias for PUT, so
  both HTTP methods work for partial agent updates; update OpenAPI
  spec accordingly and regenerate SDK + CLI manifest

- Fix #4: POST and PUT/PATCH /agents reject unknown request body
  fields with 400 "Unknown field(s): ..." to prevent silent data
  loss (e.g. sending prompt instead of instructions)

- Fix #5: recordGenerationFailure now wraps non-DomainErrors in a
  new GENERATION_FAILED DomainError that carries generation_id and
  trace_id in meta, so 500 responses from /agents/:id/generate
  include a trace_id the caller can query for the root cause

- Update ai-providers docs with JSON-format warning and config.api_key note

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JTwheo15iV5tcGGWjk8V1z

* test(generationLifecycle): cover non-Error thrown value to fix branch threshold

Add a test that passes a plain object (not an Error or DomainError) to
recordGenerationFailure, covering the false branch of the instanceof Error
ternary that was sitting below the 70% branch coverage threshold.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JTwheo15iV5tcGGWjk8V1z

---------

Co-authored-by: Claude <noreply@anthropic.com>
arantespp added a commit that referenced this pull request Jul 31, 2026
#792) (#792)

An automation-caused transition writes principal_id: null (#786) — the
cause lives in generation_id / orchestration_run_id instead. If a dispatch
fails before either id exists (e.g. an error thrown ahead of
recordGenerationFailure), the on_failure transition could still be
persisted with all three columns null: a transition history row with no
recorded cause at all. Reject the write instead of silently persisting it;
the task stays in its current state with automation_status: failed for a
human to investigate.

Audited every TaskTransition writer (tasksTransition.ts, tasks.ts,
tasksApprovalGate.ts) — the routeOnComplete/handleFailure paths already
never duplicate an orchestration run id into principal_id (fixed by #786
before this repo state), so this closes the remaining gap the issue's own
suggested action #3 called out.

Co-authored-by: Claude <noreply@anthropic.com>
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