Skip to content

update site for environment-agent model and m2 release - #25

Merged
gciavarrini merged 11 commits into
dcm-project:mainfrom
gciavarrini:flpath-4969
Oct 15, 2026
Merged

gciavarrini merged 11 commits into
dcm-project:mainfrom
gciavarrini:flpath-4969

Conversation

@gciavarrini

@gciavarrini gciavarrini commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Update documentation to reflect the environment-agent model replacing the service-provider model, and pin m2 release images.

Catalog items now use the multi-resource schema (spec.resources), user_values are resource-scoped, and placement policies output selected_agent with agent_constraints.
Rego examples call the /agents API and filter service_type client-side.
Architecture diagrams show the Agent Manager and environment agent flow.
Also fixes broken cross-reference links in remote enhancement pages (remoteMD shortcode) and adds the .env copy step to the local-setup quick start.

Fixes

FLPATH-4969

Summary by Sourcery

Update the site documentation and examples for environment-agent based placement, multi-resource catalog items, and m2 release setup.

New Features:

  • Document the multi-resource catalog schema with resource-scoped user values and updated placement policy inputs and outputs.
  • Document the environment-agent architecture, including agent selection, constraints, registration, and resource provisioning flow.

Bug Fixes:

  • Fix remote enhancement cross-reference links so they resolve to source repository files.
  • Correct documentation examples and terminology to use agent APIs and agent-based placement.

Enhancements:

  • Update getting-started and user guides from the service-provider model to the environment-agent model.
  • Add local setup instructions for copying .env and optionally using pinned m2 release images.

Documentation:

  • Refresh architecture, catalog, instance, policy, placement, sovereignty, and setup documentation for the environment-agent model.

Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Rewrite relative parent-directory links to point at the
source repository instead of the generated site.

Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-By: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-by: Claude (Anthropic)
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Document environment-agent workflows and m2 local setup

📝 Documentation 🐞 Bug fix ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Align catalog, instance, and placement guides with resource-scoped values and agent selection.
• Show environment-agent provisioning in architecture diagrams and the sovereignty demo.
• Fix remote enhancement links and document .env preparation with m2 image pins.
Diagram

sequenceDiagram
    actor User
    participant CM as Catalog Manager
    participant PLM as Placement Manager
    participant PM as Policy Manager
    participant AM as Agent Manager
    participant RM as SP Resource Manager
    participant EA as Environment Agent
    participant SP as Service Provider
    User->>CM: Create catalog instance
    CM->>PLM: Request placement
    PLM->>PM: Evaluate policy
    PM->>AM: Query agents
    AM-->>PM: Available agents
    PM-->>PLM: Selected agent
    PLM->>RM: Create resource
    RM->>EA: Provision via NATS
    EA->>SP: Create resource
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Resolve links relative to each remote source file
  • ➕ Would support links at different directory depths and other relative-link forms.
  • ➖ Adds path-resolution complexity for enhancement pages that currently follow a one-directory layout.

Recommendation: The targeted shortcode rewrite fits the current enhancement layout and keeps this documentation migration focused. Prefer source-relative resolution if remote pages begin using varied directory depths or link forms.

Files changed (10) +285 / -230

Bug fix (1) +14 / -1
remoteMD.htmlRepair parent-directory links in remote enhancement pages +14/-1

Repair parent-directory links in remote enhancement pages

• Derives a GitHub browse URL from the configured raw-content base and rewrites '../' Markdown links before rendering. This directs cross-references to the source repository instead of resolving them against the generated site.

layouts/shortcodes/remoteMD.html

Documentation (9) +271 / -229
index.mdAdapt sovereignty demo to agent-based failover +33/-32

Adapt sovereignty demo to agent-based failover

• Replaces provider terminology and updates the Rego example to query agents, filter by readiness, service type, and environment, then return 'selected_agent'. The outage walkthrough now refers to agent containers.

content/blog/sovereignty-rehydrate-demo/index.md

_index.mdDescribe the placement tutorial as agent-based +1/-1

Describe the placement tutorial as agent-based

• Changes the getting-started summary to say the placement policy routes instances to a local environment agent.

content/docs/getting-started/_index.md

architecture.mdShow Agent Manager and environment-agent provisioning +36/-30

Show Agent Manager and environment-agent provisioning

• Reworks component and request-flow diagrams around the Agent Manager, SP Resource Manager, NATS, and environment agents. Updates component responsibilities and the placement walkthrough accordingly.

content/docs/getting-started/architecture.md

create-placement-policy.mdSelect a local environment agent in the starter policy +6/-6

Select a local environment agent in the starter policy

• Changes the introductory policy example from a fixed service provider to 'selected_agent: local-agent' and updates its explanation.

content/docs/getting-started/create-placement-policy.md

local-setup.mdDocument environment preparation and m2 image versions +16/-2

Document environment preparation and m2 image versions

• Adds the '.env.example' copy step before starting the stack and shows version variables for m2 control-plane, environment-agent, and UI images.

content/docs/getting-started/local-setup.md

register-another-provider.mdUse the agents endpoint and selection output +4/-4

Use the agents endpoint and selection output

• Changes the verification command to query '/agents' and the random-selection Rego example to return 'selected_agent'. Other registration instructions remain provider-oriented.

content/docs/getting-started/register-another-provider.md

catalog-item-instances.mdScope instance overrides to a named resource +16/-9

Scope instance overrides to a named resource

• Adds 'resource: main' to YAML and JSON 'user_values' examples and documents how the resource name identifies the fields being overridden.

content/docs/user-guide/catalog-item-instances.md

catalog-items.mdDocument the multi-resource catalog item schema +99/-89

Document the multi-resource catalog item schema

• Moves service type and fields under 'spec.resources[].name' in the definition and JSON example. Updates the field reference and policy-evaluation explanation for resource-scoped defaults and overrides.

content/docs/user-guide/catalog-items.md

policies.mdDocument agent-based policy inputs and outputs +60/-56

Document agent-based policy inputs and outputs

• Updates Rego examples to query '/agents', filter compatible ready agents, and return 'selected_agent'. Replaces provider input and constraint references with 'agent' and 'agent_constraints', and adds a resource name to the instance-value example.

content/docs/user-guide/policies.md

@qodo-code-review

qodo-code-review Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Action required

1. The first VM cannot reach its target agent ✓ Resolved
Description
create-placement-policy.md selects local-agent, but the walkthrough never instructs the reader
to register an agent by that name. The later registration guide says the agents visible in this
setup are kubevirt-service-provider and another-kubevirt-provider, so following the earlier
policy leaves the VM instance targeting an agent the guide does not establish.
Code

content/docs/getting-started/create-placement-policy.md[28]

+   "selected_agent": "local-agent"
Evidence
The changed policy names local-agent; the later guide identifies different names in the agents
list, and the architecture guide says placement sends the resource to the selected agent.

content/docs/getting-started/create-placement-policy.md[20-35]
content/docs/getting-started/register-another-provider.md[38-44]
content/docs/getting-started/architecture.md[95-100]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The initial placement policy selects `local-agent`, which the walkthrough does not establish as a registered agent.
## Fix Focus Areas
- content/docs/getting-started/create-placement-policy.md[20-35]
- content/docs/getting-started/register-another-provider.md[38-44]
## Recommended Fix
Use an agent name verified by the setup instructions, or add explicit setup and verification steps that register `local-agent` before creating an instance.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. The second-provider policy selects providers ✗ Dismissed
Description
register-another-provider.md changes the random policy output to selected_agent but keeps its
candidate names as the two service providers. Its setup registers a second provider through the
Service Provider Manager, while the architecture guide describes environment agents registering
separately, so the instructions do not establish a second selectable agent for that policy.
Code

content/docs/getting-started/register-another-provider.md[65]

+    "selected_agent": agents[idx]
Evidence
The guide explicitly starts and registers a service provider, then reuses provider names as agent
selections. The architecture documentation distinguishes environment agents from the service
providers they bridge and says agents register with the Agent Manager.

content/docs/getting-started/register-another-provider.md[6-35]
content/docs/getting-started/register-another-provider.md[58-69]
content/docs/getting-started/architecture.md[62-66]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The random placement policy uses provider names as agent selections without establishing that those names identify registered agents.
## Fix Focus Areas
- content/docs/getting-started/register-another-provider.md[14-44]
- content/docs/getting-started/register-another-provider.md[58-69]
## Recommended Fix
Document how to start and verify two environment agents, then populate the policy's candidate list with their registered agent names.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
⚠️ Tickets: not configured — ticket URL found in PR but could not be fetched — check ticket provider credentials
Review mode: Auto: ⚖️ Balanced: Broad documentation contract updates plus behavioral shortcode changes warrant careful review.

Grey Divider

Tip of the day
💡 Did you know, you can hide the parts of a finding you never read, like the evidence or the agent prompt

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hey - I've found 7 issues

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="content/docs/user-guide/policies.md" line_range="139" />
<code_context>
   catalog_item_id: small-vm
   user_values:
-    - path: metadata
+    - resource: main
+      path: metadata
       value:
</code_context>
<issue_to_address>
**Catalog fields are unavailable**

When a reader follows the policy guide's catalog-and-instance example using the updated schema, the catalog-item example leaves `fields` at the top level instead of under `spec.resources[].fields`, so the `main` resource does not expose the region label in `input.spec` and the policy rejects placement. The instance guide also describes validation against an unscoped fields list, leaving the examples inconsistent with the updated schema.

Update the catalog-item field examples to define fields under a named `spec.resources[]` resource, and make the instance validation description resource-scoped.

Also at `content/docs/user-guide/catalog-item-instances.md:61-62`, `content/docs/user-guide/catalog-items.md:36-37`.
</issue_to_address>

### Comment 2
<location path="content/docs/getting-started/register-another-provider.md" line_range="41" />
<code_context>

 ```bash
-curl -s http://localhost:8080/api/v1alpha1/providers | jq
+curl -s http://localhost:8080/api/v1alpha1/agents | jq
 ```

</code_context>
<issue_to_address>
**Expected agents are not registered**

When a reader follows the tutorial on the environment-agent architecture, the guide starts a KubeVirt service-provider container, which registers with the Service Provider Manager, but verifies agents through `/agents` and selects the provider names as agents. The setup therefore does not register the expected environment agents, so verification and placement fail when those names are absent from the agent list.

Update the tutorial to start and register the environment agents with the Agent Manager, and ensure the verification and policy use their registered names.

Also at `content/docs/getting-started/register-another-provider.md:61`, `content/docs/getting-started/register-another-provider.md:65`, `content/docs/getting-started/architecture.md:51`.
</issue_to_address>

### Comment 3
<location path="content/docs/getting-started/create-placement-policy.md" line_range="28" />
<code_context>
   main := {
    "rejected": false,
-   "selected_provider": "kubevirt-service-provider"
+   "selected_agent": "local-agent"
   }
 ```
</code_context>
<issue_to_address>
**Policy selects an unknown agent**

When a reader uses the example policy with the documented KubeVirt setup, the policy selects `local-agent`, but the documented setup registers the agent as `kubevirt-service-provider`. Placement cannot resolve the selected name and fails.

Set `selected_agent` to the registered agent name, `kubevirt-service-provider`.
</issue_to_address>

### Comment 4
<location path="content/blog/sovereignty-rehydrate-demo/index.md" line_range="133" />
<code_context>
+        some a in agents
+        a.health_status == "ready"
+        service_type in a.service_types
+        a.environment == requested_region
     ]

</code_context>
<issue_to_address>
**Sovereignty lab rejects agents**

When a reader follows the linked lab setup and sets region only through the documented `SP_REGION` provider configuration, the policy matches `a.environment`, but the lab instructions configure `SP_REGION` on workload providers, not the agent environment; the configured agents do not match the requested region and the policy rejects placement.

Update the lab instructions to configure each environment agent's `environment` value to match the policy's region label, or change the policy to use metadata that the documented setup actually provides.
</issue_to_address>

### Comment 5
<location path="layouts/shortcodes/remoteMD.html" line_range="9-12" />
<code_context>
+  {{/* Derive the GitHub browse URL from the raw-content URL so relative
+       cross-references inside the fetched Markdown can be rewritten to
+       point at the source repository instead of the generated site. */}}
+  {{ $browseBase = replaceRE "raw\\.githubusercontent\\.com/([^/]+)/([^/]+)/([^/]+)" "github.com/$1/$2/blob/$3" $rawBase }}
 {{ end }}
 {{ $resource := resources.GetRemote $url }}
</code_context>
<issue_to_address>
**Cross-references target wrong directory**

When a fetched enhancement contains a relative parent-directory link, the rewrite uses a browse base without the `/enhancements` suffix, so `../` links point to the repository root rather than the enhancements directory and GitHub returns a missing page.

Include `/enhancements` in the browse base used to rewrite these links.
</issue_to_address>

### Comment 6
<location path="layouts/shortcodes/remoteMD.html" line_range="9" />
<code_context>
+  {{/* Derive the GitHub browse URL from the raw-content URL so relative
+       cross-references inside the fetched Markdown can be rewritten to
+       point at the source repository instead of the generated site. */}}
+  {{ $browseBase = replaceRE "raw\\.githubusercontent\\.com/([^/]+)/([^/]+)/([^/]+)" "github.com/$1/$2/blob/$3" $rawBase }}
 {{ end }}
 {{ $resource := resources.GetRemote $url }}
</code_context>
<issue_to_address>
**GitHub links are relative**

When fetched enhancement Markdown contains a relative parent-directory link, `replaceRE` builds `$browseBase` without an `https://` scheme, so rewritten destinations are treated as paths on the documentation site instead of links to GitHub sources.

Include the `https://` scheme in the derived browse URL.
</issue_to_address>

### Comment 7
<location path="content/docs/getting-started/register-another-provider.md" line_range="68" />
<code_context>
   }

-  idx := round(rand.intn("seed", count(providers)))
+  idx := round(rand.intn("seed", count(agents)))
 ```

</code_context>
<issue_to_address>
**Random policy always selects same agent**

When the example policy is used while multiple agents are eligible, every evaluation with the fixed seed and the same agent count returns the same index, so concurrent instance requests select the same agent instead of distributing placements; callers see one agent receive all the deployments.

Use a request-specific seed or a scheduling mechanism that actually varies agent selection across requests.
</issue_to_address>

Sourcery assessment

Approval pending. 7 findings to address first.

Blocking findings: content/docs/user-guide/policies.md:139, content/docs/getting-started/register-another-provider.md:41, content/docs/getting-started/create-placement-policy.md:28, content/blog/sovereignty-rehydrate-demo/index.md:133, layouts/shortcodes/remoteMD.html:12, and 2 more


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment thread content/docs/user-guide/policies.md Resolved
Comment thread layouts/shortcodes/remoteMD.html Resolved
Comment thread layouts/shortcodes/remoteMD.html Resolved
Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Revert the /providers URL change and add a note that this page
describes the old service-provider model.

Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-by: Claude (Anthropic)

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

Comment thread content/docs/user-guide/policies.md Resolved

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

line-test

@y-first y-first left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Good sweep — terminology, schema, and Rego examples are consistent across files. A few correctness gaps and one unexplained new field to address before merge.


To use the m2 release images, add the following to your `.env` file:

```bash

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[MEDIUM] Bash code block implies shell commands, not file writes

Using ```bash for lines that must be appended to .env is ambiguous — a reader may run them in the terminal, where they silently set shell-local vars that don't persist to the file. Suggest ```text or ```ini and an explicit "append to .env" instruction:

CONTROL_PLANE_VERSION=m2
ENVIRONMENT_AGENT_VERSION=m2
DCM_UI_VERSION=m2

Also: please confirm ENVIRONMENT_AGENT_VERSION is the exact variable name used in .env.example and the compose file — if the name differs, the pin silently has no effect.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

changed to ini in 78b17de.
ENVIRONMENT_AGENT_VERSION is the exact name in .env.example and compose.yaml.

@@ -161,16 +170,16 @@ main := {"rejected": false, "selected_provider": provider} if {

The `main` rule must return an object with the following fields:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[MEDIUM] environment_constraints is listed but never explained or exampled

The agent_constraints row introduces environment_constraints ("list of environment labels") as a new sub-field not present in the old service_provider_constraints. There is no example, no description of the expected format, and no explanation of how it relates to the agent environment field.

A reader who needs to restrict placement to agents in a specific environment has nothing to go on. At minimum, add a short example alongside allow_list / patterns, or link to a section that shows the full agent_constraints shape.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Expanded the description in 78b17de: it now says the values are matched against each agent's environment field and intersected across policies.

Add agent name verification note to create-placement-policy.
Use ini block for .env values in local-setup. Clarify
environment_constraints in policy output table. Add setup
callout for AGENT_ENVIRONMENT in sovereignty blog post.

Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-by: Claude (Anthropic)
@gciavarrini
gciavarrini requested a review from y-first October 14, 2026 13:31
{{/* Derive the GitHub browse URL from the raw-content URL so relative
cross-references inside the fetched Markdown can be rewritten to
point at the source repository instead of the generated site. */}}
{{ $browseBase = replaceRE "raw\\.githubusercontent\\.com/([^/]+)/([^/]+)/([^/]+)" "github.com/$1/$2/blob/$3" $rawBase }}

@testetson22 testetson22 Oct 14, 2026 •

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.

Another issue:

  • Line 9 derives $browseBase.
  • Lines 24-29 rewrite only links beginning with ../.

It needs to:

  • Include /enhancements in the browse base.
  • Rewrite root-absolute links beginning with /enhancements/, not just ../.

This issue results in the following with a local hugo server test:
http://localhost:1313/docs/enhancements/catalog-item-schema/

  • Contains /enhancements/declarative-api/declarative-api.md
  • Target returns HTTP 404.

http://localhost:1313/docs/enhancements/user-flows/

  • Contains /enhancements/environment-agent/environment-agent.md
  • Target returns HTTP 404.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Good catch. Addressed in 97fd7f7

@y-first

y-first commented Oct 15, 2026

Copy link
Copy Markdown

/lgtm - pending open comments

Some enhancement files use root-absolute paths instead of
relative ../. Rewrite both patterns to GitHub browse URLs.

Signed-off-by: Gloria Ciavarrini <gciavarrini@redhat.com>
Assisted-by: Claude (Anthropic)

@testetson22 testetson22 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.

lgtm

@y-first

y-first commented Oct 15, 2026

Copy link
Copy Markdown

/lgtm

@gciavarrini
gciavarrini merged commit a9e594f into dcm-project:main Oct 15, 2026
4 checks passed
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.

3 participants