Skip to content

fix(endpoints): a composed module run from its own checkout resolves from its injected carriers - #67

Closed
antoinetoussaint-byte wants to merge 3 commits into
mainfrom
issue-66-composed-checkout
Closed

antoinetoussaint-byte wants to merge 3 commits into
mainfrom
issue-66-composed-checkout

Conversation

@antoinetoussaint-byte

Copy link
Copy Markdown
Contributor

Closes #66.

A module run from its own checkout inside a larger composition (codefly run with codefly.local.yaml resolving it to a path) found its repository's workspace, which knows it as saas-starter, not saas; every endpoint query failed and services that resolve their own endpoint at boot exited. A workspace that does not declare the queried module is not the process's composition, so the process is answered from the carriers the composition's CLI judged and injected — the workspace-free rule.

Classification: a fix at the owner of endpoint resolution. Also chore(scout): AGENTS.md was 205 lines and failed TestAgentContextRootStaysWithinItsBudget on main; the workcontext coverage-gate detail moves to workcontext/AGENTS.md.

Verified: go test ./... in both modules; golangci-lint clean; the new test fails when the found workspace is trusted again (mutation-checked).

🤖 Generated with Claude Code

antoinetoussaint-byte and others added 3 commits October 11, 2026 20:38
…from its injected carriers (#66)

The workspace above a module's checkout knows the module by its own name, not the composition's; it is not the process's composition, so the process is answered from the carriers the composition's CLI injected, as a workspace-free process is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…verage gate lives beside it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
antoinetoussaint-byte added a commit that referenced this pull request Oct 12, 2026
…not trusted (#68)

Closes #66. A found workspace counts as the process's composition only if its name equals the injected CODEFLY__WORKSPACE and it composes the queried module; otherwise the injected carrier answers, as for a workspace-free process, fail-closed with ErrEndpointCarrierAbsent. A foreign workspace is never loaded, so a solution tag importing its platform by release no longer blocks resolution; an undecodable composition file is reported, not trusted. The same rule covers the configuration/secret fallback, fixture principal lookup and codefly.Workspace(). Supersedes #67. Independently reviewed (0/2/4), all six verified fixed at de65fa9, N1/N2 checked at 10c84fb. Local boot: module-saas-starter v0.0.94 on obin-ai/platform-core main starts telemetry, accounts, auth-gateway and frontend from both the checkout and the module cache.
@antoinetoussaint-byte

Copy link
Copy Markdown
Contributor Author

Superseded by #68 (merged), which uses core's workspace membership plus the injected composition name, keeps workcontext/AGENTS.md intact and carries the local boot proof.

@antoinetoussaint-byte
antoinetoussaint-byte deleted the issue-66-composed-checkout branch October 12, 2026 20:13
@antoinetoussaint-byte

antoinetoussaint-byte commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor Author

A lazybox agent is working on this. claude (Opus 5.5) started at 2026-10-19 16:26 UTC, last renewed the claim at 2026-10-30 14:24 UTC, and the claim lapses at 2026-10-30 15:24 UTC unless it is renewed again. A claim is an assertion with an expiry, not proof that a process is alive.

claim detail
Lazybox-Claim-Device: effacd542b611010656e
Lazybox-Claim-Session: 958ad95266
Lazybox-Claim-Workspace: github-codefly-dev-sdk-go-67
Lazybox-Claim-Agent: claude
Lazybox-Claim-Model: Opus 5.5
Lazybox-Claim-Started: 2026-10-19T16:26:08Z
Lazybox-Claim-Heartbeat: 2026-10-30T14:24:13Z
Lazybox-Claim-Expires: 2026-10-30T15:24:13Z

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

endpoints: a composed module run from its own checkout resolves from its injected carriers

1 participant