Skip to content

feat(api): agent-facing config overlay route and heartbeat instance registration (11/15) - #479

Merged
gusfcarvalho merged 3 commits into
lisa/agent-config/10-agent-authzfrom
lisa/agent-config/11-agent-config-sync
Oct 6, 2026
Merged

gusfcarvalho merged 3 commits into
lisa/agent-config/10-agent-authzfrom
lisa/agent-config/11-agent-config-sync

Conversation

@ccf-lisa

@ccf-lisa ccf-lisa Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Part 11/15 of the agent remote-configuration stack

This stack splits #465 into reviewable layers of at most ~1000 changed lines each (counted without docs/, go.sum and Markdown). The last layer's tree is identical to #465, which already has its review history.

Stacked on #478 (lisa/agent-config/10-agent-authz). Review and merge in order.

What's in this layer

Eleventh layer of the agent remote-configuration stack (split from #465): GET /api/agent/config returns the authenticated agent's current overlay with an opaque ETag (If-None-Match -> 304), agent JWT only and agent:sync; authenticated heartbeats refresh the instance's last-seen time and, with config_digest/config_revision, register the instance.

Size: +594 -5 = 599 changed lines (without docs/go.sum).

Verification

Each layer builds on its own: go build, go vet (also with -tags integration), golangci-lint run and go test ./... pass, and make swag leaves the tree clean. Integration suites for the packages this layer touches pass locally on testcontainers Postgres.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: b846c933-e7c9-4dd9-9924-2874ed266868

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@gusfcarvalho gusfcarvalho left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ccf-review: COMMENT

1 Nit.

Stack (gh stack 484): #469 → #470 → #471 → #472 → #473 → #474 → #475 → #476 → #477 → #478 → #479 → #480 → #481 → #482 → #483

Comment thread internal/api/handler/heartbeat.go

@gusfcarvalho gusfcarvalho left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ccf-review: APPROVE

no findings.

Stack (gh stack 484): #469 → #470 → #471 → #472 → #473 → #474 → #475 → #476 → #477 → #478 → #479 → #480 → #481 → #482 → #483

@ccf-lisa
ccf-lisa Bot force-pushed the lisa/agent-config/11-agent-config-sync branch from 1ef87c8 to 67c0552 Compare October 6, 2026 10:40
@ccf-lisa
ccf-lisa Bot force-pushed the lisa/agent-config/11-agent-config-sync branch from 67c0552 to 30c9505 Compare October 6, 2026 13:06

@gusfcarvalho gusfcarvalho left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ccf-review: APPROVE

no findings.

Stack (gh stack 484): #469 → #470 → #471 → #472 → #473 → #474 → #475 → #476 → #477 → #478 → #479 → #480 → #481 → #482 → #483

ccf-lisa Bot and others added 3 commits October 6, 2026 10:55
…egistration

Eleventh layer of the agent remote-configuration stack (split from #465): GET /api/agent/config returns the authenticated agent's current overlay with an opaque ETag (If-None-Match -> 304), agent JWT only and agent:sync; authenticated heartbeats refresh the instance's last-seen time and, with config_digest/config_revision, register the instance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say in the heartbeat route description and next to the agent role's sync
grant that removing sync does not stop heartbeats carrying config_digest
from registering instances.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GetConfig loaded the whole current revision (SELECT *, overlay included)
before comparing If-None-Match, although nearly every poll is a 304. With an
If-None-Match header, read only the revision head (id, revision, created_at;
same indexed query) through agentcfg.CurrentHead, compute the ETag and
return 304 on a match. The overlay is loaded only on a miss, and the
response is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ccf-lisa
ccf-lisa Bot force-pushed the lisa/agent-config/11-agent-config-sync branch from 30c9505 to 64f2362 Compare October 6, 2026 14:24

@gusfcarvalho gusfcarvalho left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ccf-review: APPROVE

no findings.

Stack (gh stack 484): #469 → #470 → #471 → #472 → #473 → #474 → #475 → #476 → #477 → #478 → #479 → #480 → #481 → #482 → #483

@gusfcarvalho
gusfcarvalho merged commit 4b2fe4d into main Oct 6, 2026
9 checks passed
@gusfcarvalho
gusfcarvalho deleted the lisa/agent-config/11-agent-config-sync branch October 6, 2026 15:14
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