Track important changes in Structured Outputs, including capabilities, product updates, adoption signals, risks, and evidence worth continued monitoring.
This PR adds memoization for openai-python type-introspection helpers used in Cognee’s OpenAI response pipeline, wrapping `get_origin`, `get_args`, `is_annotated_type`, and `is_literal_type` with `functools.lru_cache` and rebinding both source modules and imported aliases so cached versions are used by response/client call sites; a measured 200-document Cognify run shows CPU time falling from 93.85s to 67.70s (~28%).
What ChangedThis PR adds memoization for openai-python type-introspection helpers used in Cognee’s OpenAI response pipeline, wrapping `get_origin`, `get_args`, `is_annotated_type`, and `is_literal_type` with `functools.lru_cache` and rebinding both source modules and imported aliases so cached versions are used by response/client call sites; a measured 200-document Cognify run shows CPU time falling from 93.85s to 67.70s (~28%).
Why It MattersOperators running Cognee workloads that use OpenAI structured-output handling can process the same amount of work with noticeably less CPU headroom, which can improve queue throughput and reduce the chance of saturation under heavy document processing; in follow-up monitoring, check whether openai-python updates introduce new helper call sites or import paths that are not covered by the current rebind list, since those would fall back to uncached calls and restore extra overhead. The cache is one-time and idempotent, with unhashable arguments safely bypassing caching to preserve correctness.
Final score 81Confidence 941 evidence itemopenai-pythoncognee.infrastructure.llmfunctools.lru_cacheget_origin_models_response_legacy_response_base_client
The PR adds `object` and `array` as recipe parameter input types and routes those parameters through a structured MiniJinja rendering path in the build pipeline, enabling templates to use dot-notation, loops, and conditionals on nested data without changing existing `build_recipe_from_template` call patterns.
What ChangedThe PR adds `object` and `array` as recipe parameter input types and routes those parameters through a structured MiniJinja rendering path in the build pipeline, enabling templates to use dot-notation, loops, and conditionals on nested data without changing existing `build_recipe_from_template` call patterns.
Why It MattersDevelopers and operators using Goose recipes can now handle richer inputs like nested signal objects and finding arrays directly in templates through existing parameters, which reduces manual data-flattening and brittle glue code for complex workflows and makes recipe behavior easier to express correctly. The change is implemented with dual-path rendering (structured vs existing string path), so string-only recipes keep prior behavior; teams should monitor malformed JSON payload handling, especially error clarity for nested/object parameters, and confirm downstream clients continue to pass valid JSON-encoded values when needed.
Final score 80Confidence 961 evidence itemRecipeParameterInputTypebuild_recipe_from_templaterender_recipe_templateto_structured_paramsMiniJinjaserde_json::Value
AGOR’s Slack connector now converts eligible outbound markdown tables into Slack Block Kit `table` blocks instead of triple-backtick monospace blocks, with automatic fallback to the existing monospace section when Slack table limits are exceeded (including too many columns/rows/large cells or a second table in the same message), while non-table messages preserve the previous text-only wire shape.
What ChangedAGOR’s Slack connector now converts eligible outbound markdown tables into Slack Block Kit `table` blocks instead of triple-backtick monospace blocks, with automatic fallback to the existing monospace section when Slack table limits are exceeded (including too many columns/rows/large cells or a second table in the same message), while non-table messages preserve the previous text-only wire shape.
Why It MattersSlack messages sent from AGOR now show small markdown tables in a readable native table layout instead of code fences, so teams can scan structured updates faster and avoid manual interpretation or reformatting, while large/extra tables still render safely via fallback paths. The change introduces a new `OutboundPayload` contract (`text` plus optional `blocks`) and passes blocks through `SlackConnector.sendMessage` so render formatting is controlled at the gateway layer; operators should monitor fallback triggers around 20-column/100-row/cell-size limits and verify multi-table messages across environments to catch any future Slack limit or contract compatibility regressions.
Final score 80Confidence 971 evidence itemAGOR gatewaySlackConnectorSlack Block Kit tableformatMessagesendMessageOutboundPayloadchat.postMessage
This pull request fixes structured-output chat in run-llama/llama_index by preserving provider-native raw responses and metadata for `StructuredLLM.chat()` and `StructuredLLM.achat()`. Previously these paths rebuilt `ChatResponse` from only the parsed Pydantic payload, which dropped details like token usage and the original provider response object; the update adds an internal `StructuredPredictionResult` wrapper so `structured_predict()` and `astructured_predict()` keep returning parsed models while raw details are retained in the response path for OpenAI chat-completions and responses.parse structured outputs.
What ChangedThis pull request fixes structured-output chat in run-llama/llama_index by preserving provider-native raw responses and metadata for `StructuredLLM.chat()` and `StructuredLLM.achat()`. Previously these paths rebuilt `ChatResponse` from only the parsed Pydantic payload, which dropped details like token usage and the original provider response object; the update adds an internal `StructuredPredictionResult` wrapper so `structured_predict()` and `astructured_predict()` keep returning parsed models while raw details are retained in the response path for OpenAI chat-completions and responses.parse structured outputs.
Why It MattersDevelopers using StructuredLLM with OpenAI structured chat no longer lose response metadata on successful calls, so token-usage tracking, billing checks, and debug logs keep the context they need instead of appearing incomplete. This was implemented by replacing the prior ChatResponse reconstruction from only parsed output with a `StructuredPredictionResult` flow for sync/async structured chat and structured prediction paths, and teams should next watch for any downstream consumers relying on the old stripped-response shape and for extension to other providers where similar metadata could still be dropped.
Final score 80Confidence 971 evidence itemStructuredLLMchat()achat()structured_predict()astructured_predict()StructuredPredictionResultChatResponseOpenAI chat-completionsOpenAI Responses API
RuleSync replaces the loose alias-based frontmatter handling for Kilo subagents with an explicit schema and runtime validation path, so supported fields like `temperature`, `model`, and `hidden` are now declared, type-checked, and enforced when reading subagent configs.
What ChangedRuleSync replaces the loose alias-based frontmatter handling for Kilo subagents with an explicit schema and runtime validation path, so supported fields like `temperature`, `model`, and `hidden` are now declared, type-checked, and enforced when reading subagent configs.
Why It MattersUsers configuring Kilo subagents in RuleSync will now get immediate, clear failures for bad frontmatter values (for example, `temperature: "hot"`) instead of proceeding with silently invalid configuration, reducing misconfigured runs and hard-to-debug agent behavior; keep watching for any CI or deployment scripts that previously relied on permissive parsing and expect every config shape to pass. The PR also preserves passthrough for unknown future Kilo fields via `z.looseObject` and retains `global` passthrough behavior in `forDeletion()`, so compatibility is mostly additive while tightening correctness checks.
Final score 79Confidence 931 evidence itemKiloSubagentKiloSubagentFrontmatterSchemaOpenCodeStyleSubagentFrontmatterSchemavalidate()fromRulesyncSubagentz.looseObjectZod
This PR adds a new `wp-abilities-audit` skill that scans a WordPress plugin’s REST API surface and outputs a structured, machine-readable audit document describing controller inventory, capability-gate behavior, proposed abilities, and identified gaps.
What ChangedThis PR adds a new `wp-abilities-audit` skill that scans a WordPress plugin’s REST API surface and outputs a structured, machine-readable audit document describing controller inventory, capability-gate behavior, proposed abilities, and identified gaps.
Why It MattersPlugin teams adopting this can get one predictable audit document of REST behavior before implementation, so missing or incorrect capability registrations are discovered earlier and reduce late-stage surprises in Abilities API integration. Technically, the PR adds cross-linked audit schema and tracing guidance plus required readiness fields (`use_case_fit`, `side_effects`, `seed_data_needs`) to steer downstream selection between delegation and shared-service implementation shapes; continue watching for validation behavior on legacy audits and for dependency synchronization with PRs #44/#45 so the schema reference chain does not drift.
This Renovate PR updates github.com/anthropics/anthropic-sdk-go from v1.26.0 to v1.44.1, and the most important direct change is the runner bug fix in v1.44.x where SessionToolRunner now skips tool calls it does not own.
What ChangedThis Renovate PR updates github.com/anthropics/anthropic-sdk-go from v1.26.0 to v1.44.1, and the most important direct change is the runner bug fix in v1.44.x where SessionToolRunner now skips tool calls it does not own.
Why It MattersDevelopers running Anthropic tool-calling agents can avoid unexpected tool dispatches from non-owned calls, which lowers the chance of odd assistant behavior or unsafe tool execution in production workflows. This is implemented as a runner-side ownership check in v1.44.x, so teams should watch for any custom integrations that relied on receiving or processing every emitted tool call and add regression tests around session handoff and mixed tool-call traffic.
Final score 67Confidence 881 evidence itemgithub.com/anthropics/anthropic-sdk-goSessionToolRunnertool callsv1.44.1
This pull request updates the repository’s `github.com/invopop/jsonschema` dependency from v0.13.0 to v0.14.0, with the primary technical change being a fix that prevents a nil pointer dereference in `ReflectFromType` when handling `ExpandedStruct` during schema generation.
What ChangedThis pull request updates the repository’s `github.com/invopop/jsonschema` dependency from v0.13.0 to v0.14.0, with the primary technical change being a fix that prevents a nil pointer dereference in `ReflectFromType` when handling `ExpandedStruct` during schema generation.
Why It MattersDevelopers using this project for generating JSON Schema from Go structs should see fewer build-time schema-generation crashes for those edge-case types, so CI and tooling runs are less likely to fail unpredictably; teams should continue watching for compatibility impact from the same version bump, especially the new minimum Go 1.24 requirement and any changed behavior in struct tag handling.
Final score 66Confidence 931 evidence itemgithub.com/invopop/jsonschemaReflectFromTypeExpandedStructGo 1.24
This pull request fixes structured-output chat in run-llama/llama_index by preserving provider-native raw responses and metadata for `StructuredLLM.chat()` and `StructuredLLM.achat()`. Previously these paths rebuilt `ChatResponse` from only the parsed Pydantic payload, which dropped details like token usage and the original provider response object; the update adds an internal `StructuredPredictionResult` wrapper so `structured_predict()` and `astructured_predict()` keep returning parsed models while raw details are retained in the response path for OpenAI chat-completions and responses.parse structured outputs.
ContributionAdded an internal response wrapper in structured LLM chat paths that preserves provider-native raw response objects and metadata without changing the external parsed-model return contract for `structured_predict`/`astructured_predict`.
ImpactDevelopers using StructuredLLM with OpenAI structured chat no longer lose response metadata on successful calls, so token-usage tracking, billing checks, and debug logs keep the context they need instead of appearing incomplete. This was implemented by replacing the prior ChatResponse reconstruction from only parsed output with a `StructuredPredictionResult` flow for sync/async structured chat and structured prediction paths, and teams should next watch for any downstream consumers relying on the old stripped-response shape and for extension to other providers where similar metadata could still be dropped.
This PR adds a new `wp-abilities-audit` skill that scans a WordPress plugin’s REST API surface and outputs a structured, machine-readable audit document describing controller inventory, capability-gate behavior, proposed abilities, and identified gaps.
ContributionIntroduces a concrete planning artifact generator for plugin migration work: a skill-driven audit that inventories REST controllers, traces permission-gate patterns, and emits a schema-bound report (including implementation-readiness fields) that downstream agents and validators can consume consistently.
ImpactPlugin teams adopting this can get one predictable audit document of REST behavior before implementation, so missing or incorrect capability registrations are discovered earlier and reduce late-stage surprises in Abilities API integration. Technically, the PR adds cross-linked audit schema and tracing guidance plus required readiness fields (`use_case_fit`, `side_effects`, `seed_data_needs`) to steer downstream selection between delegation and shared-service implementation shapes; continue watching for validation behavior on legacy audits and for dependency synchronization with PRs #44/#45 so the schema reference chain does not drift.
This PR adds memoization for openai-python type-introspection helpers used in Cognee’s OpenAI response pipeline, wrapping `get_origin`, `get_args`, `is_annotated_type`, and `is_literal_type` with `functools.lru_cache` and rebinding both source modules and imported aliases so cached versions are used by response/client call sites; a measured 200-document Cognify run shows CPU time falling from 93.85s to 67.70s (~28%).
ContributionImplemented an idempotent cache installation that wraps core openai typing helpers in `lru_cache(maxsize=4096)` and rebinds those helpers in all currently used openai SDK import sites (`_models`, `_response`, `_legacy_response`, `_base_client`) so repeated structured-output processing avoids recomputing identical type checks.
ImpactOperators running Cognee workloads that use OpenAI structured-output handling can process the same amount of work with noticeably less CPU headroom, which can improve queue throughput and reduce the chance of saturation under heavy document processing; in follow-up monitoring, check whether openai-python updates introduce new helper call sites or import paths that are not covered by the current rebind list, since those would fall back to uncached calls and restore extra overhead. The cache is one-time and idempotent, with unhashable arguments safely bypassing caching to preserve correctness.
This Renovate PR updates github.com/anthropics/anthropic-sdk-go from v1.26.0 to v1.44.1, and the most important direct change is the runner bug fix in v1.44.x where SessionToolRunner now skips tool calls it does not own.
ContributionUpgraded the SDK dependency to v1.44.1 to adopt a concrete runner correction: tool calls that are not owned by the active SessionToolRunner are now skipped, reducing incorrect tool-dispatch behavior.
ImpactDevelopers running Anthropic tool-calling agents can avoid unexpected tool dispatches from non-owned calls, which lowers the chance of odd assistant behavior or unsafe tool execution in production workflows. This is implemented as a runner-side ownership check in v1.44.x, so teams should watch for any custom integrations that relied on receiving or processing every emitted tool call and add regression tests around session handoff and mixed tool-call traffic.
AGOR’s Slack connector now converts eligible outbound markdown tables into Slack Block Kit `table` blocks instead of triple-backtick monospace blocks, with automatic fallback to the existing monospace section when Slack table limits are exceeded (including too many columns/rows/large cells or a second table in the same message), while non-table messages preserve the previous text-only wire shape.
ContributionAdded a Slack-specific markdown table rendering path that prefers native Block Kit tables and introduced deterministic fallback rules so large or multiple tables remain visible through the existing monospace format without changing behavior for non-table messages.
ImpactSlack messages sent from AGOR now show small markdown tables in a readable native table layout instead of code fences, so teams can scan structured updates faster and avoid manual interpretation or reformatting, while large/extra tables still render safely via fallback paths. The change introduces a new `OutboundPayload` contract (`text` plus optional `blocks`) and passes blocks through `SlackConnector.sendMessage` so render formatting is controlled at the gateway layer; operators should monitor fallback triggers around 20-column/100-row/cell-size limits and verify multi-table messages across environments to catch any future Slack limit or contract compatibility regressions.
The PR adds `object` and `array` as recipe parameter input types and routes those parameters through a structured MiniJinja rendering path in the build pipeline, enabling templates to use dot-notation, loops, and conditionals on nested data without changing existing `build_recipe_from_template` call patterns.
ContributionIntroduced an end-to-end structured-params path by adding `Object` and `Array` input variants, parsing matching `HashMap<String, String>` entries into `serde_json::Value`, and rendering templates with structured context only when such params are present.
ImpactDevelopers and operators using Goose recipes can now handle richer inputs like nested signal objects and finding arrays directly in templates through existing parameters, which reduces manual data-flattening and brittle glue code for complex workflows and makes recipe behavior easier to express correctly. The change is implemented with dual-path rendering (structured vs existing string path), so string-only recipes keep prior behavior; teams should monitor malformed JSON payload handling, especially error clarity for nested/object parameters, and confirm downstream clients continue to pass valid JSON-encoded values when needed.
RuleSync replaces the loose alias-based frontmatter handling for Kilo subagents with an explicit schema and runtime validation path, so supported fields like `temperature`, `model`, and `hidden` are now declared, type-checked, and enforced when reading subagent configs.
ContributionThis change introduces a dedicated `KiloSubagentFrontmatterSchema` with the full set of runtime-supported frontmatter fields, and explicitly uses it in `KiloSubagent.validate()` and `fromRulesyncSubagent` parsing so invalid field types are rejected at runtime instead of being silently accepted.
ImpactUsers configuring Kilo subagents in RuleSync will now get immediate, clear failures for bad frontmatter values (for example, `temperature: "hot"`) instead of proceeding with silently invalid configuration, reducing misconfigured runs and hard-to-debug agent behavior; keep watching for any CI or deployment scripts that previously relied on permissive parsing and expect every config shape to pass. The PR also preserves passthrough for unknown future Kilo fields via `z.looseObject` and retains `global` passthrough behavior in `forDeletion()`, so compatibility is mostly additive while tightening correctness checks.
This pull request updates the repository’s `github.com/invopop/jsonschema` dependency from v0.13.0 to v0.14.0, with the primary technical change being a fix that prevents a nil pointer dereference in `ReflectFromType` when handling `ExpandedStruct` during schema generation.
ContributionThe update imports jsonschema v0.14.0, which specifically adds the guard against nil pointer dereference in `ReflectFromType` for `ExpandedStruct`, reducing crash risk in JSON Schema generation paths.
ImpactDevelopers using this project for generating JSON Schema from Go structs should see fewer build-time schema-generation crashes for those edge-case types, so CI and tooling runs are less likely to fail unpredictably; teams should continue watching for compatibility impact from the same version bump, especially the new minimum Go 1.24 requirement and any changed behavior in struct tag handling.