extensions.md: api.Processes and api.Redactor, ExecAsync on the policy,
ProcessSpawnEvent, ctx.TimeZone and PrepareProcessAsync, and a Spawning
processes section. architecture.md: Processes slice, the Abstractions
contract, a Processes and secrets section, and where the loop redacts.
CLAUDE.md: Processes slice and bullet.
Spec: status implemented (scheduler and MCP spawners come with their specs);
a hook returning null fails the spawn; test projects consume the one-shot
hardening from a module initializer; the Hardener seam; 'allow: none' in the
Telegram log line.
Spec 6 now says this spec adds only the bot token to SecretValues; the speech key and Google client secret are added by the telegram-attachments and google-calendar specs.
IExtensionContext.PrepareProcessAsync fills scope, session id and zone, runs the host policy, then ProcessSpawnEvent handlers (a throwing handler fails the spawn). IExtensionApi.Processes/Redactor are available during activation. ExecAsync spawns through the policy. Spec section 4 notes the default interface members and the fail-closed dispatch.
ISecretRedactor (Abstractions) and SecretRedactor (ordinal, longest first,
values under 8 characters ignored) registered as a singleton over
ProcessEnvironment.SecretValues. AgentSession.RunOneAsync redacts progress
snapshots, every result and error path before ToolResultEvent, and again
after the handlers run.
HostProcessHardening calls prctl(PR_SET_DUMPABLE, 0) through LibraryImport, once per process, from the ProcessSpawnPolicy constructor, and warns when DOTNET_EnableDiagnostics is not 0. Test projects consume the one-shot call with the flag off in a module initializer. A HardeningProbe helper backs a Linux-only /proc integration test.
Add the Abstractions spawn contract (ProcessPurpose, ProcessSpawnRequest,
ProcessSpawnContext, ProcessSpawnHook, IProcessSpawnPolicy, ProcessSpawnEvent),
ProcessEnvironmentOptions with DefaultDeny and Validate, EnvironmentFilter,
ProcessSpawnPolicy, AgenticCoreOptions.ProcessEnvironment and the
TryAddSingleton registration in AddAgenticCore.
Spec: section 2 says Deny/Allow match case-insensitively and names Validate,
DefaultDeny and MinimumSecretLength; section 3 describes the factory
registration and that the constructor throws on validation errors.
Adds AgentSessionOptions.TimeZone, AgenticCoreOptions.DefaultTimeZone, AgentSession.TimeZone, IExtensionHost.TimeZone, IExtensionContext.TimeZone (default member returning TimeZoneInfo.Local) and TimeZoneIds.ToIana, ahead of the rest of scheduler spec section 8. Spec sentences added to process-environment-hook section 4 and scheduler section 8.
Streams POST {baseUrl}/chat/completions over SSE (System.Net.ServerSentEvents, no NuGet) and maps delta.content, delta.reasoning_content / delta.reasoning and delta.tool_calls onto AssistantMessageEvents via AssistantMessageBuilder. Configurable through OpenAIProviderOptions so one extension serves OpenAI, OpenRouter, Ollama and other compatible servers; ships the gpt-5 / gpt-5-mini / gpt-4.1 catalogue.