mirror of
https://github.com/AJaySi/ALwrity.git
synced 2026-04-26 01:15:52 +03:00
[PR #384] [CLOSED] Unify canonical task outcome statuses across workflow and memory services #691
Labels
No labels
AI Content Agents
AI Content Strategy
AI Content planning
AI Marketing Tools
AI SEO
AI personalization
AI writer
ALwrity Copi-lot
Alwrity web search
Anthropic
DeepSeek
Gemini AI
Integration
LLM
OnBoarding
OnBoarding
RAG knowledgebase Memory
bug
documentation
enhancement
good first issue
help wanted
invalid
openai
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ALwrity#691
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/AJaySi/ALwrity/pull/384
Author: @AJaySi
Created: 3/6/2026
Status: ❌ Closed
Base:
main← Head:codex/define-canonical-outcome-model-across-services📝 Commits (1)
17e09deUnify workflow outcome statuses across frontend and backend📊 Changes
6 files changed (+83 additions, -26 deletions)
View changed files
📝
backend/api/today_workflow.py(+8 -8)📝
backend/services/task_memory_service.py(+28 -14)📝
backend/services/today_workflow_service.py(+8 -2)📝
backend/test/test_task_memory_service.py(+28 -1)📝
backend/test/test_today_workflow_service.py(+10 -0)📝
frontend/src/stores/workflowStore.ts(+1 -1)📄 Description
Motivation
completed,skipped_not_today,dismissed_dont_show,rejected) used consistently across frontend, API, and memory/indexing to drive suppression and indexing behavior.Description
skipped_not_todaywhen a user skips a server-backed task infrontend/src/stores/workflowStore.tsso the API receives canonical outcomes.backend/services/today_workflow_service.pynormalizes aliases (skipped->skipped_not_today,dismissed->dismissed_dont_show) and returns only the canonical set (includingrejected).backend/api/today_workflow.pywere updated to preserve canonical outcomes, include asuppressionmetadata flag for suppressed outcomes, and map legacy DB values to canonical outcomes for responses and indexing.TaskMemoryService.record_task_outcomeinbackend/services/task_memory_service.pynow normalizes legacy statuses before persistingTaskHistory, indexes all meaningful outcomes into txtai with consistent metadata/tags (status,outcome,suppression,pillar_id,task_hash), andSUPPRESSED_STATUSESis aligned to canonical suppressed outcomes (dismissed_dont_show,rejected)._extract_indexed_statuswas broadened to readstatusoroutcomefrom txtai results.filter_redundant_proposalscoverage for each outcome path and a unit test validating_coerce_statuscanonical behavior inbackend/test/*.Testing
PYTHONPATH=backend pytest -q backend/test/test_task_memory_service.py backend/test/test_today_workflow_service.py, and the test suite passed (10 passed, warnings only).Codex Task
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.