Skip to content

Pin/oipa cli entity buildopts - #184

Open
moshloop wants to merge 8 commits into
mainfrom
pin/oipa-cli-entity-buildopts
Open

Pin/oipa cli entity buildopts#184
moshloop wants to merge 8 commits into
mainfrom
pin/oipa-cli-entity-buildopts

Conversation

@moshloop

@moshloop moshloop commented Sep 2, 2026

Copy link
Copy Markdown
Member

Description

Brief description of the changes in this PR.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Code refactoring

Testing

  • Tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested the CLI with example data

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Breaking Changes

If this is a breaking change, please describe the impact and migration path for existing users:

Additional Notes

Add any additional notes, screenshots, or context about the changes here.

Centralize controller lookup with proper locking via new `controllerForGroup()` helper. Implement `groupStopController` to provide stop action for Pending/Running groups, enabling stop control on task groups without explicit task controllers.
Introduce Dialect enum (GFM, MDX, Slack) to MarkdownOptions. Add
MarkdownWithOptions methods to all Textable types to propagate rendering options
through nested structures.

MDX dialect emits Tailwind className instead of inline CSS. Refactor all
markdown rendering to use RenderMarkdown() function, ensuring dialect and
NoColor options reach every nested Textable node.
Struct fields can now be tagged with `enum:"a,b,c"` to define a closed set
of accepted values. The enum values propagate to OpenAPI parameters and
published action schemas, allowing frontends to render the real valid choices
instead of hardcoding lists that drift from the server's source of truth.
Extract Document and Node rendering methods from document.go into separate
files organized by rendering target:
- terminal.go: plain text and ANSI rendering (String, ANSI methods)
- table.go: table formatting and helpers
- clicky_document.go: Clicky JSON export (ClickyDocument, ClickyNode)

Migrate tests to Ginkgo framework with suite entry point. Fix readKitchenSink()
to use relative paths instead of runtime.Caller for -trimpath compatibility.
…port

Add ErrorResponse system with automatic secret sanitization, UTF-8-aware truncation, request trace IDs, and configurable detail limits for improved error security and debuggability.

Add action lookup support for Filterable[T] types, enabling filter-based completions and lookups without field name duplication.

Enhance BulkActionSpec with context-aware handlers (ContextDataFunc, ContextFilterFunc), typed parameters via WithFlags(), and MCPToolHints/Group overrides.

BREAKING CHANGE: Remove automatic verb-based tool safety inference. Entity verbs (list/get/create/update/delete) no longer stamp ReadOnlyHint/DestructiveHint; consumers must supply explicit MCPToolHints for safety semantics.
- Introduces entity.ErrorResponse as universal error envelope across all handlers
- Implements trace context propagation with OpenTelemetry; all responses include trace IDs
- Configurable HideErrorDetails sanitizes unclassified errors in production
- Enhances EntityActionDTO with HTTP method, path, and parameter schema so frontends can render actions without re-declaring them
- Expands OpenAPI error documentation to include all status codes (400-406, 500)
- Supports multi-segment path wildcards ({name...}) and exact path terminators ({$})
- Implements proper URL path parameter decoding for encoded slashes
- Refactors serve.go into focused modules: execution_http.go, execution_routes.go, dynamic_family.go, response_format.go, errors.go
Move permission-policy resolution from CobraToolProvider to captain, where
all tool sources are visible at once for informed decisions. Stop flattening
operations into annotations — captain already has the model, so pass the
operation whole. Capture request-scoped context values (auth, tenant, session)
before scope cancellation, then re-attach them when agent backends invoke
handlers over loopback MCP servers rooted at context.Background().

BREAKING CHANGE: CobraToolProviderOptions.Permission callback is removed and
replaced with Policy and Strategies fields. ToolSet() now requires a non-nil
context to scope request values.
Avoid repeated polling of immutable snapshots for completed external runs, reducing unnecessary source calls while preserving live-run updates.
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 25 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 660aec7e-5578-4c5e-aa5a-e30f687588cb

📥 Commits

Reviewing files that changed from the base of the PR and between 03124e1 and c14074c.

📒 Files selected for processing (70)
  • aichat/adapter_ginkgo_test.go
  • aichat/handoff_ginkgo_test.go
  • aichat/tools_clicky.go
  • api/admonition.go
  • api/blocks.go
  • api/collapsed.go
  • api/html.go
  • api/keyed.go
  • api/link.go
  • api/markdown.go
  • api/markdown_dialect_test.go
  • api/markdown_options.go
  • api/stacktrace.go
  • api/tailwind/tailwind.go
  • api/text.go
  • entity/action_lookup.go
  • entity/action_lookup_test.go
  • entity/annotations.go
  • entity/bulk_action_context_test.go
  • entity/entity.go
  • entity/error_sanitize.go
  • entity/errors.go
  • entity/errors_test.go
  • entity/filters_test.go
  • entity/paging.go
  • entity/paging_test.go
  • entity/toolsafety_test.go
  • entity_aliases.go
  • examples/enitity/go.mod
  • flags/binding.go
  • flags/parser.go
  • flags/types.go
  • go.mod
  • markdown/clicky_document.go
  • markdown/document.go
  • markdown/markdown_suite_test.go
  • markdown/markdown_test.go
  • markdown/render_ginkgo_test.go
  • markdown/table.go
  • markdown/terminal.go
  • mcp/toolsemantics_test.go
  • rpc/action_error_wire_test.go
  • rpc/converter.go
  • rpc/datafunc_wire_test.go
  • rpc/dynamic_family.go
  • rpc/dynamic_family_test.go
  • rpc/entities.go
  • rpc/entities_test.go
  • rpc/error_handling_ginkgo_test.go
  • rpc/errors.go
  • rpc/escaped_path_ginkgo_test.go
  • rpc/execution_http.go
  • rpc/execution_routes.go
  • rpc/execution_routes_review_test.go
  • rpc/executor.go
  • rpc/filter_lookup_test.go
  • rpc/openapi.go
  • rpc/openapi_test.go
  • rpc/paged.go
  • rpc/paged_regression_test.go
  • rpc/paged_test.go
  • rpc/response_format.go
  • rpc/serve.go
  • rpc/serve_command.go
  • rpc/serve_test.go
  • task/control.go
  • task/managed_run_ginkgo_test.go
  • task/snapshot.go
  • task/source.go
  • task/sse.go

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.

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