Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(adagents): inline-resolution path for publisher_properties selectors + directory inverse-lookup wrapper

Open
#129 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
go

Research direction

Start by reading the Go SDK’s existing publisher_properties resolution path and directory client APIs; the issue does not name specific files or tests. Compare the behavior with spec PRs adcp#4827 and adcp#4828, then implement and verify both acceptance sections, including inline versus federated precedence, revocation, the response envelope, and pagination.

Written by the indexing model from the issue text.

Description

claude-triaged enhancement

Go SDK companion work for adcp#4825 (inline resolution) and adcp#4823 (directory inverse-lookup).

Part 1 — Inline-resolution path for publisher_properties selectors

adcp#4825 (spec PR adcp#4827) endorses parent-file inline resolution: when a parent file's top-level properties[] entries carry a publisher_domain matching one in the selector's publisher_domains[], the consumer MAY satisfy the selector from those inline properties without per-child adagents.json fetches.

The Go SDK's publisher_properties resolution path needs to:

  1. Expand publisher_domains[] compact form into per-domain resolution.
  2. Consult the parent file's properties[] first when entries carry matching publisher_domain.
  3. Fall back to federated per-child fetch when inline doesn't match.

Divergence rule (from spec): when both paths resolve to the same (publisher_domain, property_id) and disagree, federated wins; SDK SHOULD log the divergence.

Revocation: inline path MUST honor revoked_publisher_domains[] on the parent file. Consumers that also resolve federated SHOULD cross-check the child's own; first match revokes.

func ResolvePublisherProperties(adagents *AdAgentsFile, selectors []PublisherPropertySelector) []Property {
    var resolved []Property
    parent := adagents.Properties
    for _, sel := range selectors {
        for _, domain := range selectorDomains(sel) {
            if inline := resolveInline(sel, parent, domain); inline != nil {
                resolved = append(resolved, inline...)
                continue
            }
            resolved = append(resolved, resolveFederated(sel, domain)...)
        }
    }
    return resolved
}

Part 2 — Directory inverse-lookup wrapper

adcp#4823 (spec PR adcp#4828) defines GET /v1/agents/{agent_url}/publishers. Go SDK needs a wrapper:

func FetchAgentAuthorizationsFromDirectory(
    ctx context.Context,
    agentURL string,
    opts ...DirectoryOption,
) (*AgentDirectoryLookup, error)

Return type mirrors the response envelope schema. Channel-based pagination iterator preferred for Go idioms.

Acceptance

Part 1:

  • publisher_domains[] compact form fanned into per-domain resolution.
  • Parent-file inline match returns the inline []Property; no federated fetch when inline succeeds.
  • When inline and federated diverge, SDK uses federated result and logs the divergence.
  • Parent-file revoked_publisher_domains[] revokes inline matches.

Part 2:

  • FetchAgentAuthorizationsFromDirectory returns spec-conformant response.
  • Pagination handled via channel-based iterator or Next()-style cursor.

References

  • Spec PR for the resolution rule: adcp#4827
  • Spec PR for the directory endpoint: adcp#4828
Dominant language
Go
Stars
4
Forks
2
Avg merge
1d 19h
Merged PRs (30d)
14

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from adcontextprotocol/adcp-go

All issues in adcontextprotocol/adcp-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.