GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: discover ACP harnesses configured in the workspace by hugodutka · Pull Request #30557 · coder/coder

Conversation

@hugodutka

@hugodutka hugodutka commented Oct 9, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Discovers ACP harnesses configured in ~/.coder/acp/*.json, validates their configuration, and refreshes the cached catalog every 30 seconds. Exposes harness names and configuration errors through the agent API and workspace SDK.

Generated with Codex. Carefully reviewed by Hugo.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@github-actions github-actions Bot assigned hugodutka Oct 9, 2026
@hugodutka
hugodutka added this pull request to stack #30559 October 9, 2026 16:15
@hugodutka hugodutka mentioned this pull request Oct 9, 2026
test: cover agent-local ACP session interaction #30558
Closed
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from abdd43f to f50d6b6 Compare October 9, 2026 16:49
@hugodutka
hugodutka marked this pull request as ready for review October 9, 2026 16:57
@hugodutka
hugodutka requested review from johnstcn and spikecurtis as code owners October 9, 2026 16:57
@hugodutka
hugodutka requested a review from mafredri October 9, 2026 16:57
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from f50d6b6 to fadd3a5 Compare October 12, 2026 09:24
@hugodutka

hugodutka commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

/coder-agents-review

coder-agents-review[bot] reacted with rocket emoji
All reactions
  • 🚀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@coder-agents-review

coder-agents-review Bot commented Oct 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Chat: Review posted | View chat
Requested: 2026-10-12 09:27 UTC by @hugodutka

Review history
  • R1 (2026-10-12), 2 Nit, 1 P0, 1 P2, 3 P3, 4 P4, COMMENT. Review

deep-review v0.13.0 | Round 1 | f8e053e..fadd3a5

Last posted: Round 1, 11 findings (1 P0, 1 P2, 3 P3, 4 P4, 2 Nit), COMMENT. Review

Finding inventory

Finding inventory: PR #30557

Findings

# Sev Status Location Summary Round Reviewer Posted
CRF-1 P0 Open agent/agentcontext/drpc.go:105 coderd rejects every PushContextState containing an acp_harness body, so all context sync stops for workspaces with ACP config R1 Netero P0, Law P1 Yes
CRF-2 P2 Open agent/x/agentacp/context.go:24 ACP resource Source is the bare slug, which collides with MCP server names and triggers coderd duplicate-source rejection R1 Netero Yes
CRF-3 P3 Open agent/agentcontext/resolve.go:183 ACP harness resources are included in the drift aggregate hash although discovered asynchronously after readiness R1 Netero Yes
CRF-4 P3 Open agent/x/agentacp/manager.go:101 Validation errors name a nonexistent working_directory setting and say "invalid ACP request" R1 Netero Yes
CRF-5 P3 Open agent/agent.go:487 ACPResources inserted under the MCP comment that describes MCPCatalog R1 Netero Yes
CRF-6 P4 Open agent/x/agentacp/manager.go:23 ErrInvalid and ErrUnavailable exported with no external caller or errors.Is check R1 Netero Yes
CRF-7 P4 Open agent/x/agentacp/manager.go:97 slug == "" branch in validate is unreachable R1 Netero Yes
CRF-8 P4 Open codersdk/workspacesdk/acp.go:42 acpRequest is generic over method, body, and 202 with a single GET caller R1 Netero Yes
CRF-9 P4 Open agent/x/agentacp/process.go:47 launch takes directory separately from cfg; only caller passes cfg.directory R1 Netero Yes
CRF-10 Nit Open agent/x/agentacp/fake_internal_test.go:55 fakeHarness.ready is never read R1 Netero Yes
CRF-11 Nit Open agent/x/agentacp/fake_internal_test.go:42 fakeHarnessModeBoth comment references recovery method selection that does not exist R1 Netero Yes
CRF-12 Note Note (body) agent/x/agentacp/manager.go:153 Grouped-options branch of configOptions has no test R1 Netero No
CRF-13 Note Note (body) agent/agentcontext/resolve.go:718 applyMCPCaps to applyProviderCaps generalization belongs with the context slice R1 Law No

Contested and acknowledged

None.

Law analysis

  • Round: R1
  • Head SHA: fadd3a5
  • Effective LOC: +1382 -22 (23 files)
  • Verdict: Split (vertical)
  • Enforcement: Mandatory
  • Slice A: discovery engine, agent HTTP catalog, SDK client, agent wiring (without the context manager lines).
  • Slice B: context push (proto variant, KindACPHarness, resolver plumbing, applyProviderCaps, Manager.ContextResources) plus coderd body case, body-kind enum migration, Agent API version bump with agent-side gating.

Round log

Round 1

Law mandatory split. Panel skipped. Netero: 1 P0, 1 P2, 3 P3, 4 P4, 2 Nit, 1 Note. Law: 1 P1 (merged into CRF-1), 1 Note. CRF-1 severity kept at P0 over Law's P1 because the defect deterministically breaks all context sync for affected workspaces (reviewer-prompt P0 "will break"); orchestrator verified coderd/agentapi/context.go marshalContextResourceBody has no AcpHarness case and the WorkspaceAgentContextBodyKind enum has no acp_harness value. Posted as COMMENT: deep-review post rejects REQUEST_CHANGES on rounds without panel reviewers. Reviewed against f8e053e..fadd3a5.

About deep-review

CRF = Coder Review Finding (P0-P4, Nit, Note)

Reviewer Focus
Bisky tests
Chopper ops/errors
Churn-guard change verification
Ging language modernization
Gon naming
Hisoka edge cases
Killua perf
Kite change integrity
Knov contracts
Knuckle SQL
Komugi flake/determinism
Kurapika security
Law decomposition
Leorio docs
Luffy product
Mafu-san process
Mafuuu contracts
Melody dispatch/pairing
Meruem structural
Nami frontend
Netero mechanical checks
Pariston premise testing
Pen-botter product gaps
Razor verification
Robin duplication
Ryosuke Go arch
Takumi concurrency
Zoro shape

🤖 Managed by Coder Agents.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

coder-agents-review[bot]
coder-agents-review Bot reviewed Oct 12, 2026
View reviewed changes

@coder-agents-review coder-agents-review Bot left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

This PR adds ACP harness discovery to the agent, an agent HTTP catalog with an SDK client, and harness metadata in workspace context pushes. Findings: 1 P0, 1 P2, 3 P3, 4 P4, 2 Nit. This round ran only mechanical checks and a split analysis; the full review panel will review after the split.

Please split this PR. Slice A: the discovery engine, GET /api/v0/acp/harnesses, ListACPHarnesses, and agent wiring without ACPResources: and SetOnChange(a.contextManager.Trigger). #30558 needs only slice A. Slice B: the acp_harness context resource (proto variant, KindACPHarness, resolver changes, ContextResources) plus the coderd half it requires: a marshalContextResourceBody case, an acp_harness enum value, and an Agent API version bump with agent-side gating. Slice A is subprocess execution in the agent; slice B changes the agent to coderd contract, and that contract is incomplete in this PR.

Notes:

  • agent/x/agentacp/manager.go:153: the grouped-options branch of configOptions has no test; the fake harness returns only ungrouped options.
  • agent/agentcontext/resolve.go:718: the applyMCPCaps to applyProviderCaps change exists only for ACP resources and belongs in slice B.

🤖 This review was automatically generated with Coder Agents.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/agentcontext/drpc.go Outdated
},
}

case KindACPHarness:

@coder-agents-review coder-agents-review Bot Oct 12, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

P0 [CRF-1] coderd rejects every PushContextState that contains an acp_harness body, so a workspace with any file in ~/.coder/acp/ stops syncing all context: instruction files, skills, and MCP servers. (Netero, Law)

marshalContextResourceBody in coderd/agentapi/context.go has no ContextResource_AcpHarness case and returns unsupported body variant, and validateAndConvertContextResources fails the whole request on that error; a scratch test in coderd/agentapi returned unsupported body variant *proto.ContextResource_AcpHarness. The push loop retries with the same payload, so context stays stale until the config is removed. TestAgent_ACPInterface passes because agenttest.Client records pushes without coderd validation. Fix: move the context integration to a separate PR that adds the coderd case, an acp_harness value in the workspace_agent_context_body_kind enum, and an Agent API minor version bump, and have the agent send the variant only to coderd versions that accept it.

🤖

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 12, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

This can only happen during a multi-replica rollout deployment, and it'll automatically recover once the rollout completes. We don't officially support rollout deployments. Not fixing.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/x/agentacp/context.go Outdated
_, _ = hash.Write(configHash[:])
_, _ = hash.Write(payload)
_, _ = hash.Write([]byte(m.configDir))
r := agentcontext.Resource{ID: "acp_harness:" + h.Slug, Kind: agentcontext.KindACPHarness, Source: h.Slug, SourcePath: m.configDir, SizeBytes: uint64(len(payload)), Payload: payload, Status: agentcontext.StatusOK, ACPHarness: &h}

@coder-agents-review coder-agents-review Bot Oct 12, 2026

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

P2 [CRF-2] ACP resources use the bare harness slug as Source, which is the same value MCP servers use for their name, so an ACP harness and an MCP server with the same name make coderd reject the push as duplicate source. (Netero)

MCP resources set Source: s.Name (agent/agentcontext/mcp.go:68,86) and coderd rejects any request with a repeated Source (coderd/agentapi/context.go:305). A user with a .mcp.json server claude and ~/.coder/acp/claude.json loses all context sync. Use a source that cannot collide with MCP server names, for example the config file path.

🤖

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

This is a valid concern, but I think the fix should be to stop enforcing the uniqueness of Source across all resource Kinds. We can enforce that the tuple of (Kind, Source) is unique instead. We should do this in a follow up PR.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/agentcontext/resolve.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/manager.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/agent.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/manager.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread codersdk/workspacesdk/acp.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/process.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/fake_internal_test.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/fake_internal_test.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from fadd3a5 to 82f2681 Compare October 12, 2026 10:03
mafredri
mafredri reviewed Oct 13, 2026
View reviewed changes
Comment thread agent/x/agentacp/discovery.go Outdated
"github.com/coder/coder/v2/codersdk/workspacesdk"
)

const discoveryInterval = 30 * time.Second

@mafredri mafredri Oct 13, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Feels like we have too many timeouts spread out across the workspace agent submodules. I think we need a redesign soon on how chatd and workspace agent communicate and have clearly defined behavior and allowances controlled on a different level.

For now, though, this seems to control multiple knobs (polling interval and retry delay).

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

I changed it to only control the polling interval.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/x/agentacp/discovery.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/discovery.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/discovery.go Outdated
h.Error = err.Error()
return h
}
ctx, cancel := m.timeout(ctx, setupTimeout)

@mafredri mafredri Oct 13, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Why is this timeout defined in manager.go but used here? Echoing my previous disdain about the amount of timeouts we have.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

The timeout function is there just to make it easier to construct a context with the quartz clock. We depend on that in some tests.

It's there because discovery.go implements methods on the Manager.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/x/agentacp/discovery.go Outdated
}
defer func() {
// Drain stderr before logging. Raw diagnostics may contain launch
// credentials, so keep them out of the catalog and workspace context.

@mafredri mafredri Oct 13, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

If true, should we be logging it without it having been explicitly enabled? I believe Warn makes it through even for the regular log level? Not sure if Debug is always written somewhere, but if there's any output on stderr, we'll essentially be logging it.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

if there's any output on stderr, we'll essentially be logging it

Yeah, but only to workspace agent logs which usually stay on the workspace. We need to log them somewhere even if they contain sensitive info so the admin can debug why the workspace agent is failing to probe the harness they configured. The alternative would be to leave them in h.Error but that gets saved in Postgres later.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/x/agentacp/discovery.go Outdated
}()
init, err := p.conn.Initialize(ctx, acp.InitializeRequest{ProtocolVersion: acp.ProtocolVersionNumber, ClientInfo: &acp.Implementation{Name: "coder-agent", Version: buildinfo.Version()}})
if err != nil {
h.Error = "cannot initialize harness; see workspace agent logs for details"

@mafredri mafredri Oct 13, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Are we sure something will be printed? [I may find the answer later, but jotting down the question for now]

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Yes, the defer statement does it.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread agent/x/agentacp/process.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/manager.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/x/agentacp/manager.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread agent/agent.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from 82f2681 to e097492 Compare October 14, 2026 19:12
@hugodutka
hugodutka removed this pull request from stack #30559 October 15, 2026 10:16
@hugodutka
hugodutka added this pull request to stack #30832 October 15, 2026 10:17
@hugodutka
hugodutka removed this pull request from stack #30832 October 15, 2026 11:06
@hugodutka
hugodutka added this pull request to stack #30836 October 15, 2026 11:06
@hugodutka
hugodutka removed this pull request from stack #30836 October 15, 2026 13:08
@hugodutka
hugodutka added this pull request to stack #30843 October 15, 2026 13:08
@hugodutka
hugodutka removed this pull request from stack #30843 October 15, 2026 15:50
@hugodutka
hugodutka added this pull request to stack #30859 October 15, 2026 16:13
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch 2 times, most recently from 71719e6 to d19cd6a Compare October 16, 2026 15:19
@hugodutka
hugodutka removed this pull request from stack #30859 October 16, 2026 15:20
@hugodutka
hugodutka added this pull request to stack #30904 October 16, 2026 15:21
@hugodutka
hugodutka removed this pull request from stack #30904 October 19, 2026 14:05
@hugodutka
hugodutka added this pull request to stack #31024 October 19, 2026 14:05
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from d19cd6a to 5ae95cf Compare October 20, 2026 15:58
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from 5ae95cf to a0c0b2f Compare October 20, 2026 17:25
@hugodutka hugodutka mentioned this pull request Oct 20, 2026
feat: probe ACP harness capabilities #31057
Merged
@hugodutka
hugodutka removed this pull request from stack #31024 October 20, 2026 17:52
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from a0c0b2f to 4304830 Compare October 20, 2026 18:17
@hugodutka
hugodutka added this pull request to stack #31061 October 20, 2026 18:50
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch 3 times, most recently from 00ec052 to c970a16 Compare October 20, 2026 19:28
mafredri
mafredri reviewed Oct 21, 2026
View reviewed changes
Comment thread agent/x/agentacp/discovery.go Outdated

func (m *Manager) pollDiscovery() {
reload := func() {
if err := m.Reload(m.ctx); err != nil {

@mafredri mafredri Oct 21, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Considering we're using m.ctx here, we have no poll-related bound for reload. It could hang? Considering we have an interval, should the interval duration be an upper bound, or perhaps some multiplier of it?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 21, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Yeah. I now gave Reload its own context that inherits from m.ctx with its own timeout.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
mafredri
mafredri reviewed Oct 21, 2026
View reviewed changes
Comment thread agent/x/agentacp/discovery.go Outdated
m.wg.Add(1)
m.mu.Unlock()
defer m.wg.Done()
lifetime, cancel := context.WithCancel(m.ctx)

@mafredri mafredri Oct 21, 2026

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Looking at poll below, we're using 2x m.ctx here, both in lifetime and stop.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@hugodutka hugodutka Oct 21, 2026

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Got rid of lifetime and stop and made m.discover use the ctx directly.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
mafredri
mafredri approved these changes Oct 21, 2026
View reviewed changes

@mafredri mafredri left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

The polling context could be changed, but otherwise LGTM.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from c970a16 to 00accb1 Compare October 21, 2026 12:19
@hugodutka
feat: discover configured ACP harnesses
9ac5344
@hugodutka
hugodutka force-pushed the hugodutka/acp-subagents-discovery branch from 00accb1 to 9ac5344 Compare October 21, 2026 13:49
@hugodutka
hugodutka enabled stacked auto-merge (squash) October 21, 2026 14:03
@hugodutka
hugodutka merged commit bf5dda3 into main Oct 21, 2026
29 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@hugodutka
hugodutka deleted the hugodutka/acp-subagents-discovery branch October 21, 2026 14:18
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 21, 2026
hugodutka added a commit that referenced this pull request Oct 21, 2026
@hugodutka
feat: probe ACP harness capabilities (#31057)
fbf7eb3
Probes configured ACP harnesses to discover session load and resume
capabilities and available configuration options. Caches successful
probes until the configuration, workspace directory, or environment
changes, and exposes probe errors through the agent API and workspace
SDK.

Depends on #30557.

Generated with Codex, carefully reviewed by Hugo.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

@mafredri mafredri mafredri approved these changes
@spikecurtis spikecurtis Awaiting requested review from spikecurtis
@johnstcn johnstcn Awaiting requested review from johnstcn
+1 more reviewer
@coder-agents-review coder-agents-review[bot] coder-agents-review[bot] left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@hugodutka hugodutka

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@hugodutka @mafredri
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.