diff --git a/cmd/core-runtime/main.go b/cmd/core-runtime/main.go index a29f8a1..dfa5364 100644 --- a/cmd/core-runtime/main.go +++ b/cmd/core-runtime/main.go @@ -201,16 +201,19 @@ func main() { } experiences, err := epistemicsRepository.RecentExperienceRecords(r.Context(), limit) if err != nil { + log.Printf("learning recent experiences unavailable: %v", err) http.Error(w, "learning experience unavailable", http.StatusServiceUnavailable) return } reflections, err := epistemicsRepository.RecentReflectionCandidates(r.Context(), limit) if err != nil { + log.Printf("learning recent reflections unavailable: %v", err) http.Error(w, "learning reflection unavailable", http.StatusServiceUnavailable) return } skills, err := capabilityRepository.RecentSkillProfiles(r.Context(), limit) if err != nil { + log.Printf("learning recent skills unavailable: %v", err) http.Error(w, "learning skills unavailable", http.StatusServiceUnavailable) return } diff --git a/deploy/docker-compose.dev.yml b/deploy/docker-compose.dev.yml index c2217d8..647cbf9 100644 --- a/deploy/docker-compose.dev.yml +++ b/deploy/docker-compose.dev.yml @@ -12,6 +12,7 @@ services: SITUATION_DB_PASSWORD: ${SITUATION_DB_PASSWORD:-assistant_situation_dev_only} WORK_DB_PASSWORD: ${WORK_DB_PASSWORD:-assistant_work_dev_only} CAPABILITY_DB_PASSWORD: ${CAPABILITY_DB_PASSWORD:-assistant_capability_dev_only} + EPISTEMICS_DB_PASSWORD: ${EPISTEMICS_DB_PASSWORD:-assistant_epistemics_dev_only} COMMIT_DB_PASSWORD: ${COMMIT_DB_PASSWORD:-assistant_commit_dev_only} ports: ["15432:5432"] volumes: @@ -50,6 +51,8 @@ services: WORK_POSTGRES_PASSWORD: ${WORK_DB_PASSWORD:-assistant_work_dev_only} CAPABILITY_POSTGRES_USER: capability_role CAPABILITY_POSTGRES_PASSWORD: ${CAPABILITY_DB_PASSWORD:-assistant_capability_dev_only} + EPISTEMICS_POSTGRES_USER: epistemics_role + EPISTEMICS_POSTGRES_PASSWORD: ${EPISTEMICS_DB_PASSWORD:-assistant_epistemics_dev_only} ports: ["19080:8080"] depends_on: postgres: { condition: service_healthy } diff --git a/dev/tasks/DEV-000068-runtime-experience-reflection-loop.json b/dev/tasks/DEV-000068-runtime-experience-reflection-loop.json index eb0d7fa..057d353 100644 --- a/dev/tasks/DEV-000068-runtime-experience-reflection-loop.json +++ b/dev/tasks/DEV-000068-runtime-experience-reflection-loop.json @@ -31,6 +31,7 @@ "cmd/core-runtime/**", "cmd/creator-web/**", "cmd/continuity-runtime/**", + "deploy/docker-compose.dev.yml", "deploy/docker-compose.prod.yml", "deploy/images/002_owner_passwords.sh", "deploy/windows/**", diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md index 59109c3..cb5b03d 100644 --- a/docs/PROJECT_STATUS.md +++ b/docs/PROJECT_STATUS.md @@ -44,6 +44,24 @@ Audit date: 2026-08-17. Active implementation: DEV-000067 revision 1. - `DEV_000065_STATUS = COMPLETED` - `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` +## DEV-000068 checkpoint + +- `DEV_000068_STATUS = COMPLETED` +- `LAST_COMPLETED = Runtime Experience + Reflection Loop V1: production runtime now records meaningful ExperienceRecords, deterministic ReflectionCandidates and SkillProfile evidence from /chat, reminder response, correction, capability and fast-path-decline outcomes` +- `RUNTIME_EXPERIENCE_LOOP = ACTIVE for production interactions; no LearningManager and no automatic self-modification` +- `REFLECTION_STATUS = deterministic candidate generation only; candidates cannot mutate skills, Authority, source code, deployment or canonical lifecycle` +- `SKILL_EVIDENCE_STATUS = skill-obvious-reminder-response-v1 accumulates positive/correction/failure evidence from COMPLETE/SNOOZE/CANCEL target-resolution outcomes` +- `FAST_PATH_STATUS = uncertain/unsupported continuation can decline and return to clarification/fallback instead of guessed mutation` +- `OPERATOR_INSPECTION = Creator Console exposes recent ExperienceRecords, ReflectionCandidates and SkillProfile status through authenticated proxy` +- `HUMAN_CHAT_URL = https://assistant.cin.su/chat` +- `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 artifact confirmation; production health` +- `LIVE_ACCEPTANCE = PASS: reminder completion produced positive ExperienceRecord and SkillProfile evidence; explicit correction produced USER_CORRECTED ExperienceRecord and ReflectionCandidate; unsupported/uncertain continuation produced fast-path decline/fallback evidence without guessed mutation; /chat reachable and human-facing replies did not expose learning IDs` +- `PRODUCTION_STATUS = healthy` +- `PRODUCTION_REVISION = runtime artifact 7fc611ed0898012707fb45841a7a86818144e776` +- `NEXT_RECOMMENDED_REVISION = DEV-000069 only after separate approval; no next milestone started automatically` + - `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`