Skip to content
This repository was archived by the owner on Aug 10, 2026. It is now read-only.

fix: enable runtime evidence profiles - #242

Merged
pedronauck merged 3 commits into
compozy:mainfrom
richardfogaca:fix/profile-runtime-evidence
May 31, 2026
Merged

pedronauck merged 3 commits into
compozy:mainfrom
richardfogaca:fix/profile-runtime-evidence

Conversation

@richardfogaca

@richardfogaca richardfogaca commented May 30, 2026 •

Copy link
Copy Markdown
Contributor

What this changes

This PR introduces an explicit runtime evidence mode for task execution profiles. Profiles can now ask workers to run with broader local runtime permissions and prompt guidance when the task needs browser/simulator/app evidence.

Why

AGH already lets agents execute code, but frontend/mobile work needs a deliberate mode for installing dependencies, booting apps, driving browsers or simulators, and collecting evidence. Keeping this behind an execution-profile policy gives us that capability without changing the default conservative task path.

Implementation notes

  • Adds runtime.mode to task execution profiles with default and evidence modes.
  • Persists runtime_mode in GlobalDB with migration and schema coverage.
  • Applies runtime evidence mode during session creation by overriding permissions and adding explicit runtime/browser/simulator prompt guidance.
  • Loads profile-selected worker targets so provider/model/capability routing applies to spawned task sessions.
  • Surfaces runtime mode in CLI/profile output and generated OpenAPI/types/fixtures.
  • Regenerates API/tool metadata and includes the existing MDX formatting cleanup required by repo verification.

Reviewer focus

  • Runtime evidence is opt-in per execution profile; default mode should preserve existing behavior.
  • Permission override should only apply to runtime evidence sessions.
  • Schema/default handling should match server-side validation.

Validation

  • PATH="$HOME/.bun/bin:$PATH" make verify

Summary by CodeRabbit

Release Notes

  • New Features

    • Added Runtime mode configuration to execution profiles with two options: Default and Evidence for runtime evidence capture and approval control.
    • Introduced session-level permission overrides for granular access control.
  • Improvements

    • CLI now displays Runtime settings in task execution profile output.
    • Enhanced worker targeting to leverage execution profile configurations.
  • Database

    • Schema migration adds runtime_mode column to task execution profiles table.

Copilot AI review requested due to automatic review settings May 30, 2026 01:11
@vercel

vercel Bot commented May 30, 2026

Copy link
Copy Markdown

@richardfogaca is attempting to deploy a commit to the Compozy Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented May 30, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@pedronauck, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 2 minutes and 9 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 477e6c3e-a73d-49b6-ae66-0ecabb94fc45

📥 Commits

Reviewing files that changed from the base of the PR and between eb32cba and f40c198.

📒 Files selected for processing (8)
  • internal/daemon/task_role_runtime.go
  • internal/daemon/task_role_runtime_test.go
  • internal/session/manager_permissions_test.go
  • internal/session/manager_start.go
  • internal/session/session.go
  • internal/store/globaldb/global_db_task_orchestration_schema_test.go
  • internal/store/globaldb/global_db_task_profile_test.go
  • internal/store/types.go

Walkthrough

This PR adds runtime evidence mode to task execution profiles, enabling conditional session permission auto-approval and selective worker targeting. A new RuntimeMode enum supports default and evidence values, persisted via database migration. Worker selection routes through execution profiles instead of task owner, with capability-aware prompt overlays including shell-quoted agh task next claim commands. Session creation gains permission override support for evidence-mode auto-approval.

Changes

Task Execution Profile Runtime Evidence

Layer / File(s) Summary
Runtime mode model and profile structure
internal/task/profile.go, internal/task/manager_profile.go
Introduces RuntimeMode string type with default and evidence constants; adds RuntimePolicy struct with Mode field; extends ExecutionProfile with Runtime field. Implements Normalize() and Validate() methods for runtime policy alongside existing sandbox/coordinator/worker validation.
Database schema refactoring and migration setup
internal/store/globaldb/schema_task_orchestration_profile.go, internal/store/globaldb/migrate_task_orchestration_profile.go, internal/store/globaldb/global_db.go, internal/store/globaldb/global_db_test.go
Splits task_execution_profiles table schema into migration and current versions via parameterized helper; adds runtime_mode column with default/evidence constraint and default value 'default'; registers migration version 42 with checksum and verification in global migration expectations.
Persistence layer: load and save runtime mode
internal/store/globaldb/global_db_task_profile.go, internal/store/globaldb/global_db_task_orchestration_schema_test.go, internal/store/globaldb/global_db_task_profile_test.go
Updates loadExecutionProfile SQL SELECT to include runtime_mode; extends scanExecutionProfileRow to unmarshal mode into profile.Runtime.Mode; updates upsertExecutionProfileRow INSERT/VALUES/UPDATE clauses to persist runtime mode; validates schema migration omits column while current schema includes it; tests round-trip persistence of runtime mode.
Session creation permission override infrastructure
internal/session/manager.go, internal/session/manager_start.go
Adds Permissions field to CreateOpts; carries override through sessionStartSpec.permissions; computes acp.StartOpts.Permissions from spec override or falls back to agent's configured permissions via startSpecPermissions() helper.
Task runtime evidence mode permission auto-approval
internal/daemon/task_runtime.go, internal/daemon/task_runtime_test.go
Calls applyTaskSessionRuntimeProfile from StartTaskSession; when runtime mode is evidence and sandbox reference is non-empty, sets opts.Permissions to ApproveAll; appends evidence-mode guidance overlay; otherwise preserves configured permission mode with fallback guidance. Tests both auto-approve and permission-preserved paths.
Worker targeting and activation enrichment via execution profile
internal/daemon/task_role_runtime.go
Adds GetExecutionProfile() to taskRoleStore interface; enriches taskRoleActivation with Provider, Model, Channel, Profile, and Capabilities fields; implements workerTargetForRun() to load execution profiles and select agent; applies sandbox and runtime profile overlays in taskRoleCreateOpts.
Prompt overlay with capability claim command and shell quoting
internal/daemon/task_role_runtime.go, internal/daemon/task_role_runtime_test.go
Generates capability-aware agh task next --capability 'x' claim commands in prompt overlay via taskRoleClaimCommand() helper; adds shellQuoteSimple() for single-quote wrapping and embedded-quote escaping; deduplicates profile and run-required capabilities. Extends test store to track execution profiles by task ID; includes unit test for shell quoting and full runtime test verifying prompt contents and session options when execution profile is present.
OpenAPI schema enum support for runtime mode
internal/api/spec/spec.go, internal/api/spec/spec_test.go
Registers RuntimeMode in schemaEnumValues map; provides taskRuntimeModeValues() returning ["Default", "Evidence"]; asserts PUT /api/tasks/{id}/execution-profile request schema includes required runtime.mode field with correct enum values; extends enum coverage test table.
Input schema and user-facing layer updates
internal/tools/builtin/tasks.go, internal/cli/task.go, web/src/systems/tasks/mocks/fixtures.ts
Extends taskExecutionProfileSchema with runtime policy section; introduces runtimePolicySchema with required mode enum (default, evidence, default default). CLI displays profile.Runtime.Mode in execution profile output. Frontend fixture includes runtime object with mode and override-aware created_at/updated_at via nullish coalescing.

🎯 4 (Complex) | ⏱️ ~45 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: enable runtime evidence profiles' accurately and concisely summarizes the main change: adding runtime evidence mode support to task execution profiles.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Introduces a new task execution-profile runtime policy (default vs evidence) that is persisted in global DB, surfaced via OpenAPI/CLI, and used to relax session permissions + add guidance overlays when evidence mode is enabled.

Changes:

  • Add RuntimePolicy / RuntimeMode to task execution profiles, including normalization + validation.
  • Persist runtime_mode in global DB with migration + store read/write support.
  • Propagate runtime evidence mode into session creation (permissions + prompt overlays) and update API/types/fixtures/docs accordingly.

Reviewed changes

Copilot reviewed 20 out of 21 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
web/src/systems/tasks/mocks/fixtures.ts Adds runtime to task execution profile fixtures and updates override precedence.
web/src/generated/agh-openapi.d.ts Updates generated TS types to include runtime.
packages/site/content/runtime/core/configuration/config-toml.mdx Adjusts coordinator configuration table formatting.
openapi/agh.json Adds runtime object to execution profile schema and marks it required.
internal/tools/builtin/testdata/native-tool-catalog.json Updates schema digest to reflect profile schema changes.
internal/tools/builtin/tasks.go Extends execution profile JSON schema to include runtime.
internal/task/profile.go Adds runtime mode/policy types, normalization, and validation.
internal/task/manager_profile.go Sets default runtime mode in default execution profile.
internal/store/globaldb/schema_task_orchestration_profile.go Adds runtime_mode column to schema.
internal/store/globaldb/migrate_task_orchestration_profile.go Adds migration to backfill/add runtime_mode column.
internal/store/globaldb/global_db_test.go Registers new migration in expected migration list.
internal/store/globaldb/global_db_task_profile_test.go Extends store tests to cover runtime mode persistence.
internal/store/globaldb/global_db_task_profile.go Reads/writes runtime_mode in execution profile store.
internal/store/globaldb/global_db_task_orchestration_schema_test.go Includes runtime_mode in schema assertions.
internal/store/globaldb/global_db.go Adds migration v41 for runtime_mode.
internal/session/manager_start.go Allows session start to override permissions via CreateOpts.
internal/session/manager.go Adds Permissions to session CreateOpts.
internal/daemon/task_runtime.go Applies runtime evidence mode to session opts (permissions + overlay).
internal/daemon/task_role_runtime_test.go Adds coverage for profile-selected worker + runtime evidence behavior.
internal/daemon/task_role_runtime.go Loads execution profiles to decide worker target; adds capability-aware claim command text.
internal/cli/task.go Displays runtime mode in CLI execution profile output.
Comments suppressed due to low confidence (1)

openapi/agh.json:1

  • The OpenAPI schema allows any string for runtime.mode, but server-side validation only accepts default or evidence (and treats empty as default after normalization). This mismatch will generate overly-permissive TS types (mode: string) and can lead clients to send values that pass schema validation but are rejected by the API; consider adding an enum (and a default) for runtime.mode matching server behavior. Also consider whether runtime (and/or mode) should truly be required in the OpenAPI contract if the server can safely default it when omitted.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread internal/tools/builtin/tasks.go
Comment thread internal/store/globaldb/migrate_task_orchestration_profile.go Outdated
Comment thread internal/store/globaldb/migrate_task_orchestration_profile.go
Comment thread internal/daemon/task_role_runtime.go
@richardfogaca
richardfogaca force-pushed the fix/profile-runtime-evidence branch from b3d14e1 to b3df09a Compare May 30, 2026 01:38

@pedronauck pedronauck left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review — self + Codex (gpt-5.5, xhigh)

Two reviews were attempted on PR #242 (fix: enable runtime evidence profiles): an AGH self-review and an external Codex peer review (gpt-5.5, reasoning xhigh).

  • Self verdict: FIX_BEFORE_SHIP (1 blocker, 3 risks, 2 nits)
  • Codex verdict: unavailable — the Codex run technically completed but ignored the scoped-write contract and produced no findings artifact, so it returned no usable verdict. The findings below are from the self-review only.

The core design is solid: runtime.mode is opt-in, validated, persisted via an appended numbered migration (v41, prior checksums unchanged), contract regen co-ships (OpenAPI + web agh-openapi.d.ts + native-tool-catalog digest + fixtures), and unit coverage is good. go build ./internal/... is clean.

Blockers

  • Dropping --wait from the worker claim prompt can strand sessions. internal/daemon/task_role_runtime.go taskRoleClaimCommand (~L558) now emits agh task next -o json (was --wait -o json), and taskRolePromptOverlay tells the agent to run it "once". Without --wait, the command does a single non-blocking claim and returns empty if nothing is immediately claimable. A freshly spawned profile-selected worker can reach the prompt before its run is claimable (boot/lease/visibility timing) and never claim its assigned run. Fix: keep --wait as the base arg and append --capability flags after it.

Risks

  • Modifying the body of already-shipped migration v38. internal/store/globaldb/migrate_task_orchestration_profile.go: the v38 migration body now also adds runtime_mode. Harmless in practice (idempotent + v41 covers it) but violates append-only migration discipline. Fix: revert the v38 body change and rely solely on v41.
  • Evidence mode grants approve-all without requiring sandbox isolation. internal/daemon/task_runtime.go applyTaskSessionRuntimeProfile (L222-235) sets Permissions=approve-all whenever mode is evidence, independent of sandbox isolation — full auto-approve on the operator host. Fix: gate evidence-mode approve-all behind an isolated sandbox, or make the trust boundary explicit with a warning.
  • No docs for the new runtime.mode field. The only packages/site change (config-toml.mdx) is whitespace cleanup. Fix: add execution-profile docs for runtime.mode (+ sandbox.mode), or file a tracked follow-up.

Nits

  • Implicit worker-target precedence in workerTargetForRun (AgentName → PreferredAgentNames[0] → AllowedAgentNames) — add a one-line comment documenting the order.
  • Redundant idempotent column add across v38 and v41 — disappears once v38 is reverted to its original body.

Note: the external Codex round will be re-run in a healthy environment to add its independent verdict.

@pedronauck
pedronauck force-pushed the fix/profile-runtime-evidence branch from b3df09a to eb32cba Compare May 31, 2026 19:03

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
internal/session/manager_start.go (1)

614-627: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Persist the permission override across resume paths.

This override only survives the initial create. prepareCreateStart fills sessionStartSpec.permissions, but resumed sessions still reach startSpecPermissions(..., resolved.Permissions) with an empty override, so evidence-mode sessions come back with agent-default permissions after restart/resume. Persist the effective permission mode in session metadata and hydrate it in prepareResumeStart.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/session/manager_start.go` around lines 614 - 627, The override in
sessionStartSpec.permissions isn't persisted across resumes; update the create
path (prepareCreateStart) to store the effective permission mode (the result of
startSpecPermissions or resolved.Permissions) into the session's metadata (e.g.,
a well-known key like "effective_permissions") when the session is first
created, and update prepareResumeStart to hydrate sessionStartSpec.permissions
from that metadata so startSpecPermissions(s, resolved.Permissions) will return
the persisted override on resume; touch the functions startSpecPermissions,
prepareCreateStart, and prepareResumeStart to read/write that metadata and
ensure resume and new-session flows use the same effective permission value.
🧹 Nitpick comments (3)
internal/store/globaldb/global_db_task_orchestration_schema_test.go (1)

80-98: ⚡ Quick win

Cover upgraded legacy profile rows, not just the DDL text.

This only proves the statements mention runtime_mode. It doesn’t prove that an existing task_execution_profiles row from the pre-runtime_mode schema upgrades and reopens with runtime_mode = "default", which is the behavior this PR relies on.

A small observed-history case here would catch migration drift much earlier: seed a legacy profile row, run OpenGlobalDB, reopen once more, and assert the migrated row loads with RuntimeModeDefault. As per coding guidelines, "Migration drift fixes require observed-history tests. Cover fresh DB, upgrade/reopen, and the real recorded migration prefix that failed."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/store/globaldb/global_db_task_orchestration_schema_test.go` around
lines 80 - 98, Add an observed-history test that seeds a legacy
task_execution_profiles row (one that lacks the
taskExecutionProfileRuntimeModeColumn), then calls OpenGlobalDB to run
migrations, reopens the DB, and asserts the migrated row now has
RuntimeModeDefault; specifically, in the same test file augment the existing
case by inserting a pre-migration profile row into the DB (using the legacy
schema), call OpenGlobalDB (the function that applies the migrations), reopen
the database connection, query the task_execution_profiles row and assert its
RuntimeMode equals RuntimeModeDefault, and keep using the existing helpers like
taskOrchestrationProfileMigrationSchemaStatements and
schemaStatementsContainColumn to locate the migration context.
internal/store/globaldb/global_db_task_profile_test.go (1)

90-98: ⚡ Quick win

Assert that partial updates reset runtime.mode back to default.

This update intentionally omits Runtime, but the test never checks that the previously stored evidence mode is cleared. A regression that accidentally preserves opt-in evidence mode would still pass here.

Suggested assertion
 		if !updated.UpdatedAt.Equal(updatedAt) {
 			t.Fatalf("updated.UpdatedAt = %v, want %v", updated.UpdatedAt, updatedAt)
 		}
+		if got, want := updated.Runtime.Mode, taskpkg.RuntimeModeDefault; got != want {
+			t.Fatalf("updated.Runtime.Mode = %q, want %q", got, want)
+		}
 		assertStringSliceGlobal(t, updated.Worker.AllowedAgentNames, []string{"runner"})
 		assertStringSliceGlobal(t, updated.Review.AllowedAgentNames, nil)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/store/globaldb/global_db_task_profile_test.go` around lines 90 - 98,
The test updates an ExecutionProfile omitting Runtime but never asserts that the
previously set runtime.mode (and any opt-in evidence mode) was cleared; after
calling UpsertExecutionProfile (the updated variable), add an assertion that
updated.Runtime.Mode equals the default runtime mode (e.g.,
taskpkg.RuntimeModeDefault or the zero value) and that any
Runtime.Evidence/opt-in evidence field is nil or reset, so partial updates do
not preserve an opt-in evidence mode.
internal/daemon/task_role_runtime_test.go (1)

24-42: ⚡ Quick win

Use Should ... subtest names in the table.

The new cases use empty, simple, and similar labels, which breaks the repo’s required test naming pattern. Rename them to Should quote empty input, Should quote metacharacters, and so on.

As per coding guidelines, "**/*_test.go: MUST use t.Run("Should...") pattern for ALL test cases".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/daemon/task_role_runtime_test.go` around lines 24 - 42, Rename the
test case names in the tests table to follow the "Should ..." pattern so
subtests use descriptive names; update each entry in the tests slice (the struct
with name, value, want) to e.g. "Should quote empty input", "Should quote simple
input", "Should quote metacharacters", "Should quote single-quote input"
(keeping the same value and want expectations) so that t.Run(tt.name, ...) still
exercises shellQuoteSimple correctly and matches the repository test naming
guideline.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@internal/daemon/task_role_runtime.go`:
- Around line 341-352: The active role session reuse logic is ignoring
profile-specific startup settings; modify the reuse key logic around
activeRoleSession to include the execution profile (or disable reuse when the
incoming activation.Profile differs) so provider/model selection and
sandbox/evidence-mode setup from applyTaskSessionSandboxProfile and
applyTaskSessionRuntimeProfile are not skipped; update any functions that
compute the session identity (e.g., taskRoleSessionName or the lookup that finds
activeRoleSession) to incorporate activation.Profile (or a stable fingerprint of
it) so taskRoleCreateOpts is only bypassed for truly matching-profile sessions.

---

Outside diff comments:
In `@internal/session/manager_start.go`:
- Around line 614-627: The override in sessionStartSpec.permissions isn't
persisted across resumes; update the create path (prepareCreateStart) to store
the effective permission mode (the result of startSpecPermissions or
resolved.Permissions) into the session's metadata (e.g., a well-known key like
"effective_permissions") when the session is first created, and update
prepareResumeStart to hydrate sessionStartSpec.permissions from that metadata so
startSpecPermissions(s, resolved.Permissions) will return the persisted override
on resume; touch the functions startSpecPermissions, prepareCreateStart, and
prepareResumeStart to read/write that metadata and ensure resume and new-session
flows use the same effective permission value.

---

Nitpick comments:
In `@internal/daemon/task_role_runtime_test.go`:
- Around line 24-42: Rename the test case names in the tests table to follow the
"Should ..." pattern so subtests use descriptive names; update each entry in the
tests slice (the struct with name, value, want) to e.g. "Should quote empty
input", "Should quote simple input", "Should quote metacharacters", "Should
quote single-quote input" (keeping the same value and want expectations) so that
t.Run(tt.name, ...) still exercises shellQuoteSimple correctly and matches the
repository test naming guideline.

In `@internal/store/globaldb/global_db_task_orchestration_schema_test.go`:
- Around line 80-98: Add an observed-history test that seeds a legacy
task_execution_profiles row (one that lacks the
taskExecutionProfileRuntimeModeColumn), then calls OpenGlobalDB to run
migrations, reopens the DB, and asserts the migrated row now has
RuntimeModeDefault; specifically, in the same test file augment the existing
case by inserting a pre-migration profile row into the DB (using the legacy
schema), call OpenGlobalDB (the function that applies the migrations), reopen
the database connection, query the task_execution_profiles row and assert its
RuntimeMode equals RuntimeModeDefault, and keep using the existing helpers like
taskOrchestrationProfileMigrationSchemaStatements and
schemaStatementsContainColumn to locate the migration context.

In `@internal/store/globaldb/global_db_task_profile_test.go`:
- Around line 90-98: The test updates an ExecutionProfile omitting Runtime but
never asserts that the previously set runtime.mode (and any opt-in evidence
mode) was cleared; after calling UpsertExecutionProfile (the updated variable),
add an assertion that updated.Runtime.Mode equals the default runtime mode
(e.g., taskpkg.RuntimeModeDefault or the zero value) and that any
Runtime.Evidence/opt-in evidence field is nil or reset, so partial updates do
not preserve an opt-in evidence mode.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 63bafd32-f305-4e26-83a2-6e06f241fb40

📥 Commits

Reviewing files that changed from the base of the PR and between a71b6a7 and eb32cba.

⛔ Files ignored due to path filters (5)
  • internal/tools/builtin/testdata/native-tool-catalog.json is excluded by !**/*.json
  • openapi/agh.json is excluded by !**/*.json
  • packages/site/content/runtime/core/autonomy/execution-profiles.mdx is excluded by !**/*.mdx
  • packages/site/content/runtime/core/configuration/config-toml.mdx is excluded by !**/*.mdx
  • web/src/generated/agh-openapi.d.ts is excluded by !**/generated/**
📒 Files selected for processing (20)
  • internal/api/spec/spec.go
  • internal/api/spec/spec_test.go
  • internal/cli/task.go
  • internal/daemon/task_role_runtime.go
  • internal/daemon/task_role_runtime_test.go
  • internal/daemon/task_runtime.go
  • internal/daemon/task_runtime_test.go
  • internal/session/manager.go
  • internal/session/manager_start.go
  • internal/store/globaldb/global_db.go
  • internal/store/globaldb/global_db_task_orchestration_schema_test.go
  • internal/store/globaldb/global_db_task_profile.go
  • internal/store/globaldb/global_db_task_profile_test.go
  • internal/store/globaldb/global_db_test.go
  • internal/store/globaldb/migrate_task_orchestration_profile.go
  • internal/store/globaldb/schema_task_orchestration_profile.go
  • internal/task/manager_profile.go
  • internal/task/profile.go
  • internal/tools/builtin/tasks.go
  • web/src/systems/tasks/mocks/fixtures.ts

Comment thread internal/daemon/task_role_runtime.go
@pedronauck
pedronauck merged commit 8cb155a into compozy:main May 31, 2026
6 of 8 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants