Files
Assistant/docs/PROJECT_STATUS.md
m 18fbc7f105
CI / test (push) Successful in 16s
CI / test (pull_request) Successful in 15s
DEV-000065 fix notification binding origin
2026-08-17 16:33:05 +03:00

14 KiB

Assistant project status

Audit date: 2026-08-17. Active implementation: DEV-000065 revision 1.

DEV-000065 checkpoint

  • DEV_000065_STATUS = IN_PROGRESS
  • LAST_COMPLETED = ADR-0014 accepted; Continuity-owned AttentionItem contract and persistence; due reminder scanner; Commit internal prospective notification endpoint; human-facing Chat / Today / History surface; relative reminder parsing for "через N минут"; deterministic due-delivery regression tests; notification binding origin corrected to assistant.cin.su revision 2
  • ADR_STATUS = ADR-0014 accepted
  • OWNERSHIP_STATUS = no new owner; AttentionItem belongs to Continuity; notification delivery remains Commit/Capability/receiver path
  • REMINDER_LIFECYCLE_STATUS = ARMED -> TRIGGERED -> REVALIDATING -> DELIVERED implemented for due scanner
  • REMINDER_DELIVERY_STATUS = implemented through Commit deliver-prospective-notification-v1 path; production live verification pending
  • ATTENTION_STATUS = typed AttentionItem PENDING -> DELIVERING -> DELIVERED foundation implemented
  • HUMAN_SURFACE_STATUS = /chat remains primary; Today/Attention and History added; Operator Console preserved at /
  • AUTHORITY_STATUS = external notification still requires Commit authorization, current Creator authority context, and active Capability notification binding
  • LLM_FREE_STATUS = deterministic reminder firing does not require cognitive model; LLM-free env policy regression PASS
  • TESTS_PASS_SO_FAR = go test ./...; go vet ./...; go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json; go run ./cmd/devctl check-architecture; go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json; tests/cognitive_advisory/cognitive_worker_env_policy_test.ps1
  • PRODUCTION_STATUS = pending deploy/live acceptance
  • NEXT_STEP = apply migration, deploy affected services, run owner ACL and live delayed reminder acceptance, then promote if PASS

DEV-000064 checkpoint

  • DEV_000064_STATUS = COMPLETED
  • LAST_COMPLETED = ADR-0013, Capability-owned generic implementation registry/resolution/selection/gap contracts, deterministic evidence-weighted resolver V1, capability gap acquisition strategy foundation, generic capability usage observations, Continuity reminder metadata, authenticated creator reminder registration endpoint, /chat reminder scheduling path, /chat SEND_EMAIL gap path, capability-aware "what can you do" response
  • CAPABILITY_REGISTRY_STATUS = generic CapabilityImplementation + CapabilityGap + CapabilityUsageObservation foundation added under existing capability owner
  • COGNITIVE_RELATION_STATUS = cognition remains resolved/invoked through existing Cognitive Registry/Gateway; no parallel cognitive router introduced
  • REMINDER_CAPABILITY_STATUS = internal-reminder-scheduler-v1 seeded as VALIDATED/ACTIVE/AVAILABLE implementation for SCHEDULE_REMINDER
  • CAPABILITY_GAP_STATUS = unsupported SEND_EMAIL persists CapabilityGap with OriginalHumanIntent/Utterance correlation
  • AUTHORITY_STATUS = capability and CredentialRef do not grant Authority; reminder registration requires authenticated creator session and creates only Continuity-owned prospective state
  • ACTIVE_COGNITIVE_BINDINGS = none; CPU CANARY unchanged
  • OPENAI_REAL_CREDENTIAL = not required / not activated
  • TESTS_PASS = go test ./...; go vet ./...; go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json; go run ./cmd/devctl check-architecture; go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json; tests/cognitive_advisory/cognitive_worker_env_policy_test.ps1; tests/owner_acl/verify.ps1 -DockerContext docker-prod -PostgresContainer assistant-postgres-1; production live /chat acceptance
  • LIVE_ACCEPTANCE = PASS: reminder created through external /chat and verified as Continuity ARMED prospective item; unsupported SEND_EMAIL created CapabilityGap; "Привет. Что ты умеешь?" returned capability-aware response; simple code explanation completed through Cognitive Gateway without durable Work
  • PRODUCTION_REVISION = 8fe596264e89b8f346c9e0cd297c5ccb2d5f76bb
  • PRODUCTION_HEALTH = healthy
  • NEXT_STEP = Direct delivery/revalidation loop for reminders or next concrete capability adapter, if separately approved

DEV-000063 checkpoint

  • DEV_000063_STATUS = COMPLETED
  • LAST_COMPLETED = ADR-0012, HelpPath optionality foundation, Work-owned Goal/PlanCandidate/WorkPlan/PlanStep/CapabilityRequirement/DelegationCandidate contracts, deterministic planning V1, optional durable Work creation from /chat, capability-gap/self-extension readiness tests, migration 017, production deployment and live /chat acceptance
  • HELP_PATH_OPTIONALITY = enabled; simple answer/cognition/direct capability/capability gap can bypass durable Goal/Work/Plan
  • GOAL_WORK_PLAN_OPTIONALITY = enabled; durable records are created only for complex work/planning cases
  • PROJECT_NEUTRALITY = project context is optional opaque Work reference; Project is not mandatory context
  • CODEX_NEUTRALITY = no Codex-specific canonical entity or executor selection
  • TESTS_PASS = go test ./...; go vet ./...; go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json; go run ./cmd/devctl check-architecture; go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json; tests/cognitive_advisory/cognitive_worker_env_policy_test.ps1; tests/owner_acl/verify.ps1 -DockerContext docker-prod -PostgresContainer assistant-postgres-1; production live /chat acceptance
  • LIVE_ACCEPTANCE = PASS: simple help uses cognition without Work; reminder uses direct scheduling-capability path without Work; complex УПО investigation creates one Work Goal/Plan; capability gap remains executor-neutral without Work
  • PRODUCTION_REVISION = 9d50a3ec635782b59ab3335808d6d1e026be48a4
  • PRODUCTION_HEALTH = healthy
  • NEXT_STEP = DEV-000064 capability resolution/acquisition or concrete scheduler/mail/codex adapter foundation, if separately approved
  • REAL_BLOCKERS = none known

DEV-000062 checkpoint

  • DEV_000062_STATUS = COMPLETED
  • LAST_COMPLETED = DEV-000062 packet rev.1, ADR-0011, Interaction/Situation/Epistemics contract extensions, Situation Project Registry V1, active project focus semantics, Interaction utterance interpretation/project references, append-only correction/supersession foundation, Core Runtime semantic persistence wiring, Creator Web /chat focus display, production deployment and live /chat acceptance
  • TESTS_PASS = go test ./...; go vet ./...; go run ./cmd/devctl preflight -active dev/ACTIVE_TASK.json; go run ./cmd/devctl check-architecture; go run ./cmd/devctl check-diff -active dev/ACTIVE_TASK.json; tests/cognitive_advisory/cognitive_worker_env_policy_test.ps1; tests/owner_acl/verify.ps1 -DockerContext docker-prod -PostgresContainer assistant-postgres-1; production live /chat acceptance
  • ACTIVE_BINDINGS = none
  • CANARY_BINDING = unchanged; not promoted to ACTIVE
  • OPENAI_REAL_CREDENTIAL = not required / not activated
  • PRODUCTION_REVISION = 445e9edd7c5b614b58dd925f89aa9fe49cf0a1d6
  • HUMAN_CHAT_URL = https://assistant.cin.su/chat
  • LIVE_ACCEPTANCE = PASS: explicit УПО focus, unverified assertion, directive/no execution, correction, explicit Assistant focus, current-focus question answered without cognition
  • NEXT_STEP = DEV-000063 Project Copilot planning, if separately approved
  • REAL_BLOCKERS = none known

Current milestone

Provider-neutral Cognitive Architecture + Local AI integration.

  • Docker production baseline at 9e99a04c… is completed and healthy.
  • The OpenAI integration is a bootstrap adapter only. Real OpenAI credentials and production traffic are intentionally deferred.
  • The current milestone integrates one normally available local CPU provider and one opportunistic local Ollama/GPU provider through typed discovery, health and routing boundaries.
  • Discovery never activates a provider, model or binding. Until a later benchmark and explicit promotion task, all discovered bindings remain INACTIVE and production remains fully LLM-free.
  • DEV-000057 executed a bounded synthetic qualification corpus against all 11 current local model revisions. Four exact binding revisions demonstrated the minimum advisory threshold; seven remain unsupported. Qualification evidence does not change lifecycle or activation.
  • DEV-000058 promoted the exact CPU Qwen2.5-3B-Instruct-Q4_K_M lineage to VALIDATED/CANARY through an authenticated, evidence-gated, append-only CAS transition. Ordinary routing still excludes it; only an explicit AllowCanary request can select it. All other current bindings remain INACTIVE.
  • DEV-000059 enables that exact canary behind a fail-closed cognitive-worker flag and a 4 KiB output clamp. Five authenticated synthetic Creator requests completed through the full production path with typed usage observations, zero failures and zero API cost. The binding remains CANARY, not ACTIVE.

Cognitive Foundation baseline

  • COGNITIVE_FOUNDATION = COMPLETED
  • PRODUCTION_REGISTRY = RUNNING
  • LOCAL_CPU_CANARY = WORKING
  • CANARY_SUCCESSFUL_REQUESTS = 5
  • ACTIVE_BINDINGS = none
  • OPENAI_REAL_CREDENTIAL = not required / not activated
  • NEXT_MILESTONE = Human Interaction + Intent/Evidence Semantics + Project Copilot Foundation

DEV-000060 corrects the LLM-free production audit with an exact, fail-closed cognitive-worker environment allowlist. Non-secret local provider endpoint variables are permitted only by name; plaintext credentials remain prohibited and secret-file references are restricted to the existing OPENAI_API_KEY_FILE mechanism under /run/secrets.

Delivered

  • Foundation V1 is frozen and all exit criteria pass.
  • The single Creator account authenticates at https://assistent.cin.su; authentication does not imply Authority.
  • Creator can inspect the bounded operational view, register and satisfy Continuity prospective items, inspect action history, and explicitly request the accepted notification operation.
  • deliver-prospective-notification-v1 executes only through Capability binding, current Authority and Commit/Executor validation. Its success evidence is an immutable receiver receipt.
  • Production runs on docker.cin.su; the project does not use the shared test Docker host.
  • PostgreSQL backup/restore, encrypted off-host backup, production health monitoring and the current-user Windows notification projection are installed and healthy.

Evidence from DEV-000044

  • go test ./..., go vet ./..., architecture preflight/checks and PowerShell parsing pass.
  • Test-DomovoyProductionHealth.ps1 reports healthy for the production stack, HTTPS/DNS/TLS, backups and registered Windows tasks.
  • tests/creator_commit/verify-remote.ps1 passes the authenticated Creator → Commit → notification receiver receipt flow on docker-prod.
  • The smoke harness was corrected to preserve HTTP Authorization headers under Windows PowerShell 5.1 native-command argument handling.

Remaining work requiring a new task decision

  1. Cognitive canary observation: collect bounded usage/reliability evidence for the exact CPU canary revision before any separate ACTIVE decision. GPU candidates remain inactive.
  2. Product breadth: notification delivery is the only accepted real external operation. Any additional operation needs its own proposal, authority model, idempotency/reconciliation semantics and Capability binding.
  3. Artifact and Epistemics product behavior: their ownership boundaries exist, but no product task has yet specified durable user-facing workflows for them.

DEV-000045 closes the DEV-000044 artifact-provenance finding for new promotions by stamping the merged Git revision into OCI labels, recording exact promoted image IDs outside the repository, and making production monitoring reject label or digest drift. Images that predate DEV-000045 remain historically unverifiable from the image alone.

ADR-0006 and DEV-000046 establish the provider-neutral, non-canonical Creator advisory boundary. DEV-000048 connects it to authenticated Creator Web and adds the advisory console; until a provider/data-egress decision is accepted, it deliberately reports PROVIDER_UNAVAILABLE and sends nothing outside the private runtime topology.

DEV-000049 adds and executes a repeatable production audit for that boundary. It proves that an authenticated 16 KiB message reaches only the deterministic unavailable binding, unauthenticated and browser-supplied authority fields fail closed, the request sentinel is absent from cognitive-worker logs, and the cognitive worker has no database, Commit/Executor, Creator or provider credential environment/mount.

ADR-0007 accepts OpenAI Responses API with immutable snapshot gpt-5.4-mini-2026-03-17 and Mode A per-request retention disclosure as the first real provider binding class. DEV-000050 implements its standard-library adapter and adversarial fake-transport tests: fixed origin/payload, message-only egress, no tools or provider memory, redirect/proxy denial, no retry, strict output mapping and fail-closed timeout/refusal/unavailable/invalid states. The adapter is not wired into the runtime; production remains on deterministic-fake with no provider credential or egress.

DEV-000051 adds an optional cognitive-worker runtime gate for that adapter. It is disabled when OPENAI_API_KEY_FILE is absent, rejects direct environment credentials, bounds and validates the secret file, and returns 503 before parsing an OpenAI request while disabled. Production configuration and Creator Web routing are unchanged, so the gate is not active and no provider egress occurs.

DEV-000052 promotes the disabled gate without adding a credential, mount or provider environment variable. DEV-000053 adds the server-selected Creator Web routing policy: deterministic behavior remains the default, while the accepted OpenAI Mode A route can only be selected by server configuration and requires a fresh per-request egress acknowledgement. The browser receives authenticated binding metadata for disclosure but cannot select the provider, model or binding. The message and acknowledgement are not persisted.

These are explicit scope decisions, not hidden incomplete steps in DEV-000043. No production secret is stored in the repository.