Skip to content

devagentic-canvas: auto-append /v1 to base URL when missing#14

Merged
PowerCreek merged 1 commit into
mainfrom
devagentic-base-url-normalize
May 22, 2026
Merged

devagentic-canvas: auto-append /v1 to base URL when missing#14
PowerCreek merged 1 commit into
mainfrom
devagentic-base-url-normalize

Conversation

@PowerCreek

Copy link
Copy Markdown

Summary

Closes #13. Dogfooded from inside devagentic-duplex-claude — operators who follow the natural container pattern (DEVAGENTIC_BASE_URL=\$DUPLEX_SERVICE_URL) silently 404 because the env var only carries the host[:port], not the /v1 prefix the canvas client appends paths under.

Fix

plugins/devagentic-canvas/client.py::_base_url() now appends /v1 unless the resolved value already ends with /vN. Backward-compatible — existing setups with explicit /v1 are unaffected; explicit /v2 / /v3 etc. are respected.

Scope

Only the canvas plugin is affected. The skills + memory adapters (agent/devagentic_skills.py, agent/devagentic_memory.py) already handle both forms — they unconditionally strip /v1 because they target …/graphql. Issue #13's initial scope was broader; on triage it narrowed to canvas only, called out in the issue's own resolution.

Test plan

Filed by hermes-maintainer (PowerCreek).

Operators in containerized deployments naturally set
DEVAGENTIC_BASE_URL=$DUPLEX_SERVICE_URL — which omits the /v1
prefix. The canvas plugin then composes {base}/canvases →
http://devbox:6070/canvases and silently 404s (logged DEBUG,
returns None from _request, slash command shows opaque error).

Fix: in _base_url(), append /v1 unless the resolved value already
ends with /vN. Backward-compatible (existing setups with explicit
/v1 are unaffected). Respects explicit /v2, /v3 etc.

Skills + memory adapters already handle both forms (they
unconditionally strip /v1 because they target /graphql) — only
canvas was affected.

Closes #13.
@PowerCreek PowerCreek merged commit b2c13a5 into main May 22, 2026
@PowerCreek PowerCreek deleted the devagentic-base-url-normalize branch May 22, 2026 20:02
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.

[synergy] DEVAGENTIC_BASE_URL silently 404s when /v1 prefix is omitted (canvas plugin + skills + memory adapters)

1 participant