Release Date: March 4, 2026
Branch: main
Previous Version: v0.8.5.3
Sprint: M0 — Conversational Glue
This release delivers the M0 Conversational Glue sprint, transforming Piper from “chatbot with features” into a conversational colleague. Users can now converse naturally with Piper — workflows emerge from conversation; commands are shortcuts, not requirements. The release also includes repository management, conversation lifecycle tracking, security hardening, and 8 bug fixes from post-gate CXO testing.
Reference: PDR-002 v3.1 (Conversational Glue)
Five core features that make Piper conversational:
#766 - Narrative System: Piper adapts tone to relationship stage (first meeting → warm introduction, returning user → concise colleague). Eliminates the repeated “Is that your main project?” question during onboarding.
#763 - Conversational Lens Tracking: Piper remembers what you’re talking about. Follow-up queries like “what about next week?” resolve correctly based on conversational context (>90% follow-up resolution). 152 new tests.
#765 - Natural Slot Filling: When Piper needs information to complete a task, it asks naturally instead of interrogating. Lens-aware prompt phrasing adapts to conversational context. 124 new tests.
#764 - Multi-Intent Orchestration: Handle compound queries like “check my calendar and create an issue for the API bug” coherently, with natural topic transitions (“As for your calendar…”). 47 new tests.
#767 - Soft Workflow Invocation: Piper offers workflows conversationally (“Sounds like you might want to set up a meeting…”) instead of requiring explicit commands. Graceful decline handling. 79 new tests.
CXO testing on March 1-3 surfaced and resolved these issues:
| Issue | Bug | Fix |
|---|---|---|
| #871 | Legacy POC header visible in templates | Removed header, compacted greeting area |
| #875 | Business errors returned as HTTP 422 instead of 200 | Restored 200 OK for business-logic errors |
| #878 | Workflow polling on synchronous handlers (60s timeout) | Added async_work_started flag to prevent spurious polling |
| #879 | create_issue missing assignees parameter |
Added assignees passthrough to GitHub router |
| #876 | 26 raw exception messages leaked to users | Routed all handler errors through UserFriendlyErrorService |
| #880 | Calendar/Slack settings 401 Unauthorized | Added credentials: 'include' to 16 fetch() calls |
| #870 | Flaky test_verbosity_gradient test |
Seeded random for deterministic template selection |
docs/briefing/ (removed knowledge/ duplicates)piper-education/ tree (content migrated to docs/internal/development/)ROUTERS list and unused methods from RouterInitializer (#719)__init__.py files from test directories (#868)New migrations (run alembic upgrade head):
a715_add_conversation_lifecycle_columns.py — Adds lifecycle state tracking to conversationsa866_create_repositories_and_links_tables.py — Creates repositories and project-repository link tablesa867_add_repository_metadata_columns.py — Adds metadata columns to repositories244 files changed — 34,982 additions, 8,290 deletions
services/intent_service/lens_inference.py — Conversational lens trackingservices/intent_service/orchestrator.py — Multi-intent orchestrationservices/intent_service/soft_invocation.py — Soft workflow invocationservices/slot_filling/ — Complete slot filling framework (6 files)services/personality/formality.py — Unified formality frameworkservices/infrastructure/github_repo_validator.py — GitHub API validationweb/api/routes/repositories.py — Repository CRUD endpointsservices/intent/intent_service.py — Major: glue integration, error handling overhaulservices/intent_service/canonical_handlers.py — Lens-aware handler updatesservices/intent_service/conversation_context.py — Enhanced context trackingservices/intent_service/pre_classifier.py — Multi-intent detectionservices/onboarding/portfolio_handler.py — Narrative bridge, repo linkingservices/database/repositories.py — Repository and conversation lifecycle supportservices/domain/models.py — Repository entity, conversation lifecycle fields# Pull latest changes
git pull origin main
# Update dependencies
pip install -r requirements.txt
# Run new migrations
python -m alembic upgrade head
# Start server
python main.py
| Issue | Title | Tests |
|---|---|---|
| #766 | Narrative System (onboarding tone) | — |
| #763 | Conversational Lens Tracking | 152 |
| #765 | Natural Slot Filling | 124 |
| #764 | Multi-Intent Orchestration | 47 |
| #767 | Soft Workflow Invocation | 79 |
| #779 | Sprint Completion Gate (3 gates passed) | — |
| #762 | M0 GLUE Epic (all children closed) | — |
| Issue | Title |
|---|---|
| #866 | Repository as first-class entity |
| #861 | Project integration settings page |
| #860 | Setup wizard repo linking |
| #863 | Portfolio onboarding repo linking |
| #862 | Conversational repo management handler |
| #867 | GitHub API validation for repo links |
| Issue | Title |
|---|---|
| #871 | Legacy POC header in templates |
| #875 | Business errors returned as HTTP 422 |
| #878 | Workflow polling on sync handlers |
| #879 | create_issue missing assignees |
| #876 | 26 raw exception message leaks |
| #880 | Calendar/Slack settings 401 |
| #870 | Flaky test_verbosity_gradient |
| #858 | Conversation lifecycle state machine |
| #852 | Contextual offer continuation |
| #838 | Unified formality framework |
| #853 | SessionStart hook |
| #849 | User-scoped keychain isolation |
| #814 | Setup request routing |
| #868 | Shadowing init.py removal |
| #719 | Dead router code removal |
Total: 27 issues resolved
Released: March 4, 2026