Skip to content

NAMS: well-known endpoint, X-Workspace-Id fix, live-integration test scaffold#136

Merged
joslat merged 2 commits into
mainfrom
nams/live-validation-integration-tests
Jul 17, 2026
Merged

NAMS: well-known endpoint, X-Workspace-Id fix, live-integration test scaffold#136
joslat merged 2 commits into
mainfrom
nams/live-validation-integration-tests

Conversation

@joslat

@joslat joslat commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds NamsWellKnown.Endpoint (public NAMS SaaS base URL, non-secret constant).
  • Fixes a real gap: NamsOptions.WorkspaceId was captured but never sent as X-Workspace-Id -- needed for an account-wide (admin) API key to target a specific workspace (a workspace-scoped key carries it implicitly). Also adds fail-fast validation for it.
  • Adds a skip-cleanly live-integration test scaffold (tests/AgentMemory.Tests.Integration/Nams/) that validates the full Phase 4-6 pipeline (identity resolution -> persistence -> recall) against the real NAMS SaaS, using a dedicated isolated dev workspace. Skips (never fails) when NAMS_API_KEY/NAMS_DEV_WORKSPACE_ID aren't configured -- so it reports Skipped in CI, never runs against anything real there.

Full write-up, including the 3-way self-review findings and fixes: docs/reviews/NAMS_LiveValidationAndIntegrationTestScaffold_PlanningAndImplementationPlan.md.

Test plan

  • dotnet build AgentMemory.slnx -c Release -- 0 warnings, 0 errors
  • dotnet test tests/AgentMemory.Tests.Unit -- 3209/3209 green
  • Live suite (local only, real NAMS SaaS): 3/3 green
  • Self-reviewed (3 parallel agents: correctness, cross-file impact, cleanup/conventions) -- all findings fixed
  • CI green (no Copilot review per standing instruction)

joslat added 2 commits July 17, 2026 19:55
…ration test scaffold

A live NAMS SaaS account became available mid-session, revealing that an account-wide API
key needs X-Workspace-Id (a workspace-scoped key carries it implicitly) -- NamsOptions.WorkspaceId
was captured but never attached. Adds NamsWellKnown.Endpoint (the public SaaS base URL, non-secret)
and a skip-cleanly live-integration test scaffold that validates the full Phase 4-6 pipeline
(identity resolution -> persistence -> recall) against the real service for the first time.
…lidation, poll resilience, conventions)

- Add NamsOptionValidator.HasValidWorkspaceId: fail fast on control characters instead of a
  lazy FormatException on the first HTTP call.
- PollUntilAsync now swallows exceptions from the polled condition itself (not just the delay),
  matching Neo4jIntegrationFixture.WaitForVectorIndexesAsync's established pattern -- a transient
  blip against the live service no longer aborts the whole bounded poll.
- Drop the redundant second Category trait, remove ConfigureAwait(false) from test code, and
  match NamsLiveTestCollection's shape to its one direct precedent (Neo4jIntegrationCollection).
Copilot AI review requested due to automatic review settings July 17, 2026 18:01

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@joslat
joslat merged commit 0b0cdbd into main Jul 17, 2026
4 checks passed
@joslat
joslat deleted the nams/live-validation-integration-tests branch July 17, 2026 18:10
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.

2 participants