Skip to content

feat: add enterprise CLI follow-through and docs parity#6

Merged
Telli merged 8 commits intomainfrom
codex/p1-phase2-foundation
Apr 21, 2026
Merged

feat: add enterprise CLI follow-through and docs parity#6
Telli merged 8 commits intomainfrom
codex/p1-phase2-foundation

Conversation

@Telli
Copy link
Copy Markdown
Contributor

@Telli Telli commented Apr 21, 2026

Summary

  • add host-aware CLI follow-through for enterprise usage and packaged tool management
  • harden webhook delivery with direct retry/backoff coverage and clean telemetry/protocol XML docs
  • align README, runtime docs, solution membership, and CI example builds with the shipped runtime surface

Validation

  • dotnet build SharpClawCode.sln --no-restore --configuration Release
  • dotnet test SharpClawCode.sln --no-build --no-restore --configuration Release
  • dotnet build examples/WebApiAgent/WebApiAgent.csproj --no-restore --configuration Release
  • dotnet build examples/MinimalConsoleAgent/MinimalConsoleAgent.csproj --no-restore --configuration Release
  • dotnet build examples/WorkerServiceHost/WorkerServiceHost.csproj --no-restore --configuration Release
  • dotnet build examples/McpToolAgent/McpToolAgent.csproj --no-restore --configuration Release

Copilot AI review requested due to automatic review settings April 21, 2026 01:02
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds an enterprise/embedded-host runtime surface with tenant-aware storage, plus parity updates across CLI/ACP/docs and additional telemetry, indexing, memory, and provider catalog capabilities.

Changes:

  • Introduces an embeddable host SDK (SharpClaw.Code) with host/tenant context plumbed through runtime/CLI flows.
  • Adds tenant-aware durable storage (filesystem + SQLite session/event stores, usage metering store) and new admin/telemetry sinks (in-process stream + outbound webhooks).
  • Adds workspace knowledge indexing + hybrid search + durable memory recall, surfacing new CLI commands/tools and updating docs/tests/examples/CI accordingly.

Reviewed changes

Copilot reviewed 181 out of 181 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tests/SharpClaw.Code.UnitTests/Telemetry/WebhookRuntimeEventSinkTests.cs Adds unit coverage for webhook delivery retries/backoff behavior.
tests/SharpClaw.Code.UnitTests/Support/TestRuntimeStorageResolver.cs Test helper for deterministic runtime storage path resolution.
tests/SharpClaw.Code.UnitTests/Sessions/SessionStorageTests.cs Updates session storage tests to use runtime storage path resolver.
tests/SharpClaw.Code.UnitTests/Runtime/WorkspaceInsightsAndTodoServiceTests.cs Wires todo/insights tests to new storage path resolver + updated TodoService ctor.
tests/SharpClaw.Code.UnitTests/Runtime/ShareAndCompactionServicesTests.cs Updates wiring for storage resolver + compaction memory persistence.
tests/SharpClaw.Code.UnitTests/Runtime/LocalRuntimeCatalogCheckTests.cs Adds coverage for local runtime health check output.
tests/SharpClaw.Code.UnitTests/Runtime/ConfiguredApprovalIdentityServiceTests.cs Adds coverage for trusted-header approval identity resolution.
tests/SharpClaw.Code.UnitTests/Providers/ProviderConfigurationBindingTests.cs Extends provider options binding for local runtimes/embedding/auth mode.
tests/SharpClaw.Code.UnitTests/Providers/ProviderCatalogServiceTests.cs Adds coverage for provider catalog including local runtime model discovery.
tests/SharpClaw.Code.UnitTests/Permissions/PermissionPolicyEngineTests.cs Updates approval decision test data for new fields.
tests/SharpClaw.Code.UnitTests/MemorySkillsGit/WorkspaceKnowledgeServicesTests.cs Adds end-to-end test for indexing/search/memory recall via knowledge store.
tests/SharpClaw.Code.UnitTests/McpPlugins/McpAndPluginLifecycleTests.cs Updates plugin manager creation to accept storage resolver.
tests/SharpClaw.Code.UnitTests/Commands/ModeAndCliOptionsTests.cs Adds coverage for parsing embedded host context from global CLI options.
tests/SharpClaw.Code.IntegrationTests/Smoke/CliCommandSurfaceTests.cs Updates expected CLI command surface (index/memory/tool-packages + new globals).
tests/SharpClaw.Code.IntegrationTests/SharpClaw.Code.IntegrationTests.csproj Adds reference to new embeddable SDK project.
tests/SharpClaw.Code.IntegrationTests/Runtime/PromptContextAssemblyTests.cs Updates event store construction to use storage resolver in integration coverage.
tests/SharpClaw.Code.IntegrationTests/Runtime/EmbeddedRuntimeHostTests.cs Adds tenant isolation test for embedded host + SQLite session store.
src/SharpClaw.Code/SharpClawRuntimeHostBuilder.cs New embeddable host builder (runtime + ACP without CLI).
src/SharpClaw.Code/SharpClaw.Code.csproj New SDK project packaging runtime/ACP/protocol/infrastructure dependencies.
src/SharpClaw.Code.Tools/ToolsServiceCollectionExtensions.cs Adds memory + search tools + tool package service; passes host context accessor into executor.
src/SharpClaw.Code.Tools/SharpClaw.Code.Tools.csproj Adds reference to memory project for new tools/services.
src/SharpClaw.Code.Tools/Models/ToolContracts.cs Adds argument contracts for workspace_search and symbol_search tools.
src/SharpClaw.Code.Tools/Execution/ToolExecutor.cs Adds tenant id propagation into permission evaluation context.
src/SharpClaw.Code.Tools/BuiltIn/WorkspaceSearchTool.cs New tool for hybrid workspace search via knowledge index.
src/SharpClaw.Code.Tools/BuiltIn/SymbolSearchTool.cs New tool for symbol-only search via knowledge store.
src/SharpClaw.Code.Tools/Abstractions/IToolPackageService.cs New abstraction for packaged tool manifest install/list operations.
src/SharpClaw.Code.Telemetry/TelemetryServiceCollectionExtensions.cs Adds webhook HTTP client, delay strategy, in-process stream, webhook sink, and sink fan-out publisher wiring.
src/SharpClaw.Code.Telemetry/TelemetryOptions.cs Adds webhook destination and retry/backoff options.
src/SharpClaw.Code.Telemetry/SharpClaw.Code.Telemetry.csproj Adds Microsoft.Extensions.Http and tightens warnings-as-errors.
src/SharpClaw.Code.Telemetry/Services/WebhookRuntimeEventSink.cs New webhook sink with retry/backoff for runtime event envelopes.
src/SharpClaw.Code.Telemetry/Services/WebhookDelayStrategy.cs New delay abstraction implementation for webhook retries.
src/SharpClaw.Code.Telemetry/Services/RuntimeEventPublisher.cs Adds host context + sink fan-out with envelope publishing.
src/SharpClaw.Code.Telemetry/Services/InProcessRuntimeEventStream.cs New in-process runtime event stream + recent buffer snapshot.
src/SharpClaw.Code.Telemetry/RuntimeEventPublishOptions.cs Adds HostContext routing option for downstream sinks.
src/SharpClaw.Code.Telemetry/Metrics/SharpClawMeterSource.cs Adds documentation for stable meter name.
src/SharpClaw.Code.Telemetry/Diagnostics/TurnActivityScope.cs Adds XML docs around activity span lifecycle methods.
src/SharpClaw.Code.Telemetry/Diagnostics/ProviderActivityScope.cs Adds XML docs around provider activity span lifecycle methods.
src/SharpClaw.Code.Telemetry/Abstractions/IWebhookDelayStrategy.cs New abstraction to make webhook delay testable.
src/SharpClaw.Code.Telemetry/Abstractions/IUsageMeteringStore.cs New persistence abstraction for normalized usage metering.
src/SharpClaw.Code.Telemetry/Abstractions/IUsageMeteringService.cs New query surface for usage metering reporting.
src/SharpClaw.Code.Telemetry/Abstractions/IRuntimeEventStream.cs New abstraction for streaming runtime event envelopes.
src/SharpClaw.Code.Telemetry/Abstractions/IRuntimeEventSink.cs New sink abstraction for external/runtime event consumers.
src/SharpClaw.Code.Sessions/Storage/SqliteSessionStoreDatabase.cs New SQLite schema + connection helper for session/event tables.
src/SharpClaw.Code.Sessions/Storage/SqliteSessionStore.cs New SQLite-backed session snapshot store.
src/SharpClaw.Code.Sessions/Storage/SqliteEventStore.cs New SQLite-backed runtime event store.
src/SharpClaw.Code.Sessions/Storage/NdjsonEventStore.cs Migrates NDJSON store to use runtime storage resolver paths.
src/SharpClaw.Code.Sessions/Storage/HostAwareSessionStore.cs New store selector based on current host context (filesystem vs sqlite).
src/SharpClaw.Code.Sessions/Storage/HostAwareEventStore.cs New event store selector based on current host context (ndjson vs sqlite).
src/SharpClaw.Code.Sessions/Storage/FileWorkspaceSessionAttachmentStore.cs Migrates workspace attachment store to use storage resolver paths.
src/SharpClaw.Code.Sessions/Storage/FileSessionStore.cs Migrates filesystem session snapshots to use storage resolver paths.
src/SharpClaw.Code.Sessions/Storage/FileMutationSetStore.cs Migrates mutation set storage to use storage resolver paths.
src/SharpClaw.Code.Sessions/Storage/FileCheckpointStore.cs Migrates checkpoint storage to use storage resolver paths.
src/SharpClaw.Code.Sessions/SharpClaw.Code.Sessions.csproj Adds Microsoft.Data.Sqlite dependency for new stores.
src/SharpClaw.Code.Runtime/Workflow/TodoService.cs Switches workspace/session todo paths/locks to storage resolver.
src/SharpClaw.Code.Runtime/Workflow/ShareSessionService.cs Switches share snapshot paths to storage resolver.
src/SharpClaw.Code.Runtime/Workflow/ConversationCompactionService.cs Persists compaction summary into durable memory store.
src/SharpClaw.Code.Runtime/Turns/DefaultTurnRunner.cs Removes metrics recording here; ensures non-null UsageSnapshot in results.
src/SharpClaw.Code.Runtime/SharpClaw.Code.Runtime.csproj Adds sqlite + identity model dependencies for enterprise auth/storage.
src/SharpClaw.Code.Runtime/Prompts/PromptReferenceResolver.cs Tags ACP-origin requests in permission evaluation + includes tenant id.
src/SharpClaw.Code.Runtime/Export/PortableSessionBundleService.cs Uses storage resolver for session roots and export directory.
src/SharpClaw.Code.Runtime/Diagnostics/OperationalDiagnosticsCoordinator.cs Adds approval auth to status quick checks.
src/SharpClaw.Code.Runtime/Diagnostics/Checks/LocalRuntimeCatalogCheck.cs New operational check for local runtime health/model discovery.
src/SharpClaw.Code.Runtime/Diagnostics/Checks/ApprovalAuthCheck.cs New operational check for approval-auth configuration/health.
src/SharpClaw.Code.Runtime/Context/PromptContextAssembler.cs Adds memory recall + workspace index status metadata/sections to prompt context.
src/SharpClaw.Code.Runtime/Composition/RuntimeServiceCollectionExtensions.cs Adds usage metering, host-aware stores, approval identity service, and new operational checks.
src/SharpClaw.Code.Runtime/Abstractions/IRuntimeCommandService.cs Adds HostContext to runtime command context shape.
src/SharpClaw.Code.Providers/Services/ProviderRequestPreflight.cs Adds local-runtime-qualified model parsing + profile metadata.
src/SharpClaw.Code.Providers/ProvidersServiceCollectionExtensions.cs Registers provider catalog service and updates docs params.
src/SharpClaw.Code.Providers/OpenAiCompatibleProvider.cs Adds per-profile endpoint/model selection + updated auth status calculation.
src/SharpClaw.Code.Providers/Internal/ProviderAuthStatusFactory.cs Replaces api-key-only auth status with auth-mode-aware computation.
src/SharpClaw.Code.Providers/Configuration/ProviderOptionsValidators.cs Validates local runtime profiles (name/baseUrl/default model).
src/SharpClaw.Code.Providers/Configuration/OpenAiCompatibleProviderOptions.cs Adds auth mode, embedding defaults/capabilities, and local runtime profiles.
src/SharpClaw.Code.Providers/Configuration/LocalRuntimeProfileOptions.cs New configuration type for named local runtime profiles.
src/SharpClaw.Code.Providers/AnthropicProvider.cs Uses new auth status factory method signature.
src/SharpClaw.Code.Providers/Abstractions/IProviderCatalogService.cs New abstraction for centralized provider catalog reporting.
src/SharpClaw.Code.Protocol/Serialization/ProtocolJsonContext.cs Expands STJ source-gen registrations for new enterprise/runtime/memory/tooling models.
src/SharpClaw.Code.Protocol/Models/Phase2Models.cs Adds host context, runtime event envelope, and tool package models.
src/SharpClaw.Code.Protocol/Models/OpenCodeParityModels.cs Extends server/provider catalog request/response models for enterprise surfaces.
src/SharpClaw.Code.Protocol/Models/EnterpriseRuntimeModels.cs Adds approval-auth, metering, and admin request models.
src/SharpClaw.Code.Protocol/Models/ApprovalDecision.cs Adds remember-for-session and principal identity fields.
src/SharpClaw.Code.Protocol/Commands/RunPromptRequest.cs Adds HostContext to prompt command request shape.
src/SharpClaw.Code.Protocol/Abstractions/IRuntimeHostContextAccessor.cs New ambient accessor for runtime host context scoping.
src/SharpClaw.Code.Plugins/Services/PluginManager.cs Switches plugin root resolution to storage resolver.
src/SharpClaw.Code.Permissions/Services/PermissionPolicyEngine.cs Adds tenant-aware approval keying and opt-in remember-for-session storage.
src/SharpClaw.Code.Permissions/Services/NonInteractiveApprovalService.cs Populates new approval decision fields.
src/SharpClaw.Code.Permissions/Services/ConsoleApprovalService.cs Only remembers when allowed + approved; populates new decision fields.
src/SharpClaw.Code.Permissions/Services/AuthenticatedApprovalTransport.cs New transport for principal-based approvals with tenant matching.
src/SharpClaw.Code.Permissions/Services/ApprovalService.cs Adds transport selection + enforcement when authenticated approvals are required.
src/SharpClaw.Code.Permissions/Services/ApprovalPrincipalAccessor.cs New async-local principal/status scope accessor.
src/SharpClaw.Code.Permissions/PermissionsServiceCollectionExtensions.cs Registers principal accessor and authenticated transport.
src/SharpClaw.Code.Permissions/Models/PermissionEvaluationContext.cs Adds TenantId field for evaluation and approval memory scoping.
src/SharpClaw.Code.Permissions/Abstractions/IApprovalTransport.cs New abstraction for pluggable approval transports.
src/SharpClaw.Code.Permissions/Abstractions/IApprovalPrincipalAccessor.cs New abstraction to access scoped approval identity/status.
src/SharpClaw.Code.Permissions/Abstractions/IApprovalIdentityService.cs New abstraction for resolving approval identity/configuration.
src/SharpClaw.Code.Memory/SharpClaw.Code.Memory.csproj Adds Roslyn + sqlite dependencies for indexing/knowledge store.
src/SharpClaw.Code.Memory/Services/WorkspaceSearchService.cs New hybrid search service combining lexical/symbol/semantic ranking.
src/SharpClaw.Code.Memory/Services/PersistentMemoryStore.cs New adapter to store structured memory via knowledge store.
src/SharpClaw.Code.Memory/Services/MemoryRecallService.cs New recall service to score/select most relevant memory entries for prompt context.
src/SharpClaw.Code.Memory/Services/HashTextEmbeddingService.cs New deterministic embedding approach for semantic ranking.
src/SharpClaw.Code.Memory/Models/WorkspaceKnowledgeRecords.cs New records for chunks/symbols/edges and persisted index document.
src/SharpClaw.Code.Memory/MemoryServiceCollectionExtensions.cs Registers knowledge store, index/search, persistent memory, and recall services.
src/SharpClaw.Code.Memory/Abstractions/IWorkspaceSearchService.cs New abstraction for workspace hybrid search.
src/SharpClaw.Code.Memory/Abstractions/IWorkspaceKnowledgeStore.cs New abstraction for knowledge store persistence/search/memory operations.
src/SharpClaw.Code.Memory/Abstractions/IWorkspaceIndexService.cs New abstraction for index refresh/status.
src/SharpClaw.Code.Memory/Abstractions/IPersistentMemoryStore.cs New abstraction for structured durable memory storage.
src/SharpClaw.Code.Memory/Abstractions/IMemoryRecallService.cs New abstraction for memory recall.
src/SharpClaw.Code.Infrastructure/Services/RuntimeHostContextAccessor.cs New async-local runtime host context accessor implementation.
src/SharpClaw.Code.Infrastructure/InfrastructureServiceCollectionExtensions.cs Registers host context accessor and runtime storage resolver.
src/SharpClaw.Code.Infrastructure/Abstractions/IRuntimeStoragePathResolver.cs New abstraction for tenant-aware storage path resolution.
src/SharpClaw.Code.Commands/SharpClaw.Code.Commands.csproj Adds project refs needed for new CLI surfaces (memory/tools/telemetry).
src/SharpClaw.Code.Commands/Repl/ReplHost.cs Centralizes runtime context creation via CommandExecutionContext.ToRuntimeCommandContext().
src/SharpClaw.Code.Commands/Options/GlobalCliOptions.cs Adds global options for host/tenant/storage root and session-store selection.
src/SharpClaw.Code.Commands/Models/CommandExecutionContext.cs Adds HostContext + helper to convert to RuntimeCommandContext.
src/SharpClaw.Code.Commands/Handlers/UnshareCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/UndoCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/ToolPackagesCommandHandler.cs New CLI command to list/install packaged tool bundles.
src/SharpClaw.Code.Commands/Handlers/StatusCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/ShareCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/ServeCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/RedoCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/PromptCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/ModelsCommandHandler.cs Refactors to use provider catalog service rather than assembling catalog locally.
src/SharpClaw.Code.Commands/Handlers/IndexCommandHandler.cs New CLI command for indexing/searching workspace knowledge store.
src/SharpClaw.Code.Commands/Handlers/ExportSlashCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/EditorSlashCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/DoctorCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/Handlers/CompactCommandHandler.cs Uses new runtime context conversion helper.
src/SharpClaw.Code.Commands/CliCommandFactory.cs Uses new runtime context conversion helper for discovered commands.
src/SharpClaw.Code.Cli/Composition/CliServiceCollectionExtensions.cs Adds ACP registration + new index/memory/tool-packages commands.
src/SharpClaw.Code.Agents/Services/AgentFrameworkBridge.cs Tags ACP-origin requests for permission evaluation.
src/SharpClaw.Code.Agents/Internal/ProviderBackedAgentKernel.cs Removes provider duration metric recording here.
src/SharpClaw.Code.Acp/SharpClaw.Code.Acp.csproj Adds needed project references for ACP host surfaces.
src/SharpClaw.Code.Acp/AcpServiceCollectionExtensions.cs New ACP DI extension registering approval transport + stdio host.
src/SharpClaw.Code.Acp/AcpApprovalTransport.cs New transport for routing approvals over ACP callbacks.
src/SharpClaw.Code.Acp/AcpApprovalCoordinator.cs New coordinator for ACP approval request/response correlation.
extensions/vscode/tsconfig.json Adds TS build config for VS Code extension.
extensions/vscode/package.json Adds VS Code extension manifest/commands/config.
extensions/vscode/README.md Documents VS Code extension capabilities and configuration.
examples/WorkerServiceHost/appsettings.json Adds worker-service example configuration.
examples/WorkerServiceHost/WorkerServiceHost.csproj New worker-service example project targeting embeddable SDK.
examples/WorkerServiceHost/PromptWorker.cs Implements example worker prompt execution with embedded host context.
examples/WorkerServiceHost/Program.cs Wires SharpClawRuntimeHost into worker service DI/lifecycle.
examples/WorkerServiceHost/EmbeddedRuntimeLifecycleService.cs Starts/stops embedded runtime host in background.
examples/WebApiAgent/WebApiAgent.csproj Updates example to reference embeddable SDK project.
examples/WebApiAgent/Program.cs Updates example API to use SharpClawRuntimeHost + tenant host context.
examples/MinimalConsoleAgent/Program.cs Updates console example to use SharpClawRuntimeHost + host context.
examples/MinimalConsoleAgent/MinimalConsoleAgent.csproj Updates example to reference embeddable SDK project.
docs/testing.md Updates validation instructions to include building all example hosts.
docs/superpowers/plans/2026-04-10-phase1-gaps.md Adjusts doc header formatting.
docs/runtime.md Updates runtime docs for memory/index/admin/telemetry and new checks.
docs/providers.md Updates provider docs for catalog service + local runtime profiles.
docs/permissions.md Documents authenticated approval transports and tenant-scoped remembered approvals.
docs/architecture.md Updates architecture docs to include new embeddable SDK project and example hosts.
docs/acp.md Updates ACP docs for new methods/capabilities incl. approvals/search/memory/models.
Directory.Packages.props Adds identity model, Roslyn, and sqlite package versions.
.github/workflows/ci.yml Builds example host projects in CI in addition to solution build/test.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/superpowers/plans/2026-04-10-phase1-gaps.md Outdated
Comment thread src/SharpClaw.Code.Telemetry/Services/RuntimeEventPublisher.cs
Comment thread src/SharpClaw.Code.Telemetry/Services/WebhookRuntimeEventSink.cs
Comment thread src/SharpClaw.Code.Memory/Services/HashTextEmbeddingService.cs
@Telli Telli merged commit 1070122 into main Apr 21, 2026
3 checks passed
@Telli Telli deleted the codex/p1-phase2-foundation branch April 21, 2026 05:49
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