Skip to content

feat(aao-directory): implement ?include=properties on GET /v1/agents/{url}/publishers#4928

Closed
bokelley wants to merge 1 commit into
mainfrom
claude/issue-4890-include-properties-impl
Closed

feat(aao-directory): implement ?include=properties on GET /v1/agents/{url}/publishers#4928
bokelley wants to merge 1 commit into
mainfrom
claude/issue-4890-include-properties-impl

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Refs #4890

Schema, docs, and changeset for ?include=properties already landed on main (prior triage session). This PR adds the server implementation only: parsing the query parameter, passing it through the service layer, and serializing property_ids in the response.

Non-breaking justification: Adds an optional query parameter (?include=properties, default unset) and an optional response field (property_ids, absent when flag is not set). Existing consumers receive an identical envelope. No required field added, no field removed, no enum value changed. Changeset .changeset/4890-aao-include-properties.md already on main (classified --empty — server-only change; schema bump was in the spec-first landing).

What changed:

  • federated-index-db.tsAgentPublisherDetailRow gains property_ids: string[] | null; getPublishersForAgentDetail gains includePropertyIds?: boolean; SQL adds CASE WHEN $6 THEN array_agg(DISTINCT dp.property_id ...) ELSE NULL END AS property_ids
  • federated-index.ts — service wrapper opts type updated to pass through includePropertyIds
  • registry-api.ts — Zod AgentPublishersEntrySchema adds property_ids?: string[]; OpenAPI spec adds include query param (repeated-key form, same as ?status); handler parses ?include, passes includePropertyIds to DB layer, spreads property_ids into shaped output when flag is set; ETag hash includes include and per-row property_ids
  • static/schemas/source/aao/agent-publishers.json — clarified property_ids description: len(property_ids) ≤ properties_authorized when any authorized properties lack a property_id in adagents.json
  • static/openapi/registry.yaml — regenerated from Zod schemas (includes include param and property_ids field)
  • Integration tests — 3 new cases: includePropertyIds returns IDs, without flag property_ids is null, empty array when no authorized property has property_id

Nit (surfaced by pre-PR review, not fixed): The 404 existence-probe call at line 7241 omits includePropertyIds — intentional, the probe needs only a row-count. Worth a comment to future readers.

Pre-PR review:

  • code-reviewer: approved — fixed error-message inconsistency (UnknownInvalid), updated schema description to clarify len(property_ids) ≤ properties_authorized subset semantics; regenerated OpenAPI spec
  • ad-tech-protocol-expert: approved — non-breaking per spec; include=properties repeated-key encoding consistent with ?status convention; dp.property_id (adagents.json slug) vs dp.id (UUID) distinction is correct for set-diff use case; ETag correctly keyed on include and per-row property_ids

Triage-managed PR. This bot does not currently iterate on
review comments or PR conversation threads (only on the source
issue). To unblock:

  • Push fixup commits directly: gh pr checkout <num>
    fix → push.
  • Or re-trigger: comment /triage execute on the source
    issue.

See #3121
for context.

Session: https://claude.ai/code/session_015MXVgGH1xk84m361nM7fj7


Generated by Claude Code

…{url}/publishers

Wires the `?include=properties` query parameter through the route →
service → DB layer so SDK divergence detectors can run full set-diff
against the directory, not just count comparison.

Schema + docs + changeset already landed on main (issue #4890 prior
session). This PR adds the server implementation only.

Refs #4890

https://claude.ai/code/session_015MXVgGH1xk84m361nM7fj7
@bokelley bokelley added the claude-triaged Issue has been triaged by the Claude Code triage routine. Remove to re-triage. label May 22, 2026
@bokelley
Copy link
Copy Markdown
Contributor Author

Closing as a duplicate of #4927. #4927 has the same include=properties server implementation path plus the stronger HTTP coverage and generated OpenAPI updates.

@bokelley bokelley closed this May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-triaged Issue has been triaged by the Claude Code triage routine. Remove to re-triage.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants