Version: 0.8.6 Last Updated: April 11, 2026
This document helps alpha testers avoid wasting time on things we already know about.
Piper Morgan just closed its M1 “Foundation” milestone on April 11 after five rounds of user acceptance testing. Several things that used to be rough are now much better — and a few things that surfaced during UAT are being carried into M2 for deeper fixes. Both are documented below.
These are the changes alpha testers are most likely to notice. If something on this list still seems broken for you, please report it — it means our fix didn’t fully land.
Most natural-language queries that previously produced canned “I can’t do that yet” responses now get a real, LLM-generated answer with context about your projects, todos, and calendar. Ask Piper something conversational and you should get a conversational reply.
This is called “floor-first routing” internally. It means the conversational floor is the default, and specific handlers only intercept when they have something concrete to do (create an issue, complete a todo, etc.).
The setup wizard now asks you to pick one LLM provider from a dropdown (OpenAI or Anthropic) and enter a single API key. Previously OpenAI was effectively required. Either provider is fine — pick whichever one you already have a key for.
Saying “complete todo 1” or “complete the deployment plan todo” now persists the completion in the database. Previously the response sometimes said it was completing the todo but the change didn’t stick. Three nested repository bugs were fixed on April 11.
If GitHub isn’t configured yet and you ask Piper to create an issue, you now get a clear “GitHub isn’t connected yet — here’s how to set it up” message instead of a generic “Something unexpected happened.”
Earlier in M1, the conversational floor could occasionally fabricate todos, projects, or calendar events when it didn’t have real context. That’s now constrained — for example, asking “what are my todos?” when you have none will get “I don’t see any todos in your list right now” instead of a plausible-but-fake list.
This is an initial guardrail. A deeper pass is planned for M2 (see #960 below).
Saying “list todos” or “show todos” is now treated the same as “list my todos” / “show my todos”. Previously the shorter phrasings could slip past the pattern matcher and produce hallucinated results.
None currently. All M1 gate blockers resolved April 11.
| Issue | Description | Workaround |
|---|---|---|
| #696 | Settings uses hardcoded user ID | Settings changes work but may not attribute to correct user in audit logs |
| #697 | Intent service uses hardcoded user ID | Chat works but user context not fully preserved |
| #922 | Single-word affirmations like “OK” after a multi-turn exchange may lose context | If Piper seems confused by a one-word reply, restate the request fully |
| #946 | Setup may occasionally pull a stale API key from the system keychain | If setup seems to be using a key you didn’t just enter, remove old Piper entries from Keychain Access |
Impact: These issues affect smoothness but not the core loop. Workarounds exist for each.
None currently tracked.
These are known rough edges that survived M1. They’re tracked and scheduled for M2 work — you may encounter them during testing.
| Issue | What You Might See | Status |
|---|---|---|
| #922 | A one-word “OK” / “yes” / “sure” after a long exchange sometimes gets treated as a fresh message | Partial fix landed (conversation continuity foundation). Deeper fix in M2. |
| #946 | Setup may pull a stale key from the keychain without asking | Consent prompt coming in M2. |
| #947 | Two internal LLM pathways exist side by side | Being consolidated in M2. Mostly invisible to you unless errors look inconsistent. |
| #960 | Floor occasionally phrases things with more confidence than it should (e.g. hedging near the edges of fabrication) | First guardrail landed in M1; hardening continues in M2. |
| #961 | Some routes may still reach the floor without full context | Audit planned for M2 — may surface more fabrication risks to fix. |
If you see something that looks like one of these, a quick note (“this feels like #960”) is extremely helpful.
These features exist but have rough edges. Expect some friction.
| Feature | Status | What Works | What Doesn’t |
|---|---|---|---|
| Data Encryption | Partial | API keys encrypted in keychain, passwords bcrypt-hashed | Data at rest not fully encrypted. Use test data only. |
| GitHub OAuth | Not started | PAT token auth works | OAuth connect flow planned for future release |
| Advanced Privacy | Basic only | Owner-based access, sharing works | Granular controls planned for beta |
These features are complete but need real-world validation from alpha testers:
| Feature | What to Test | How to Access |
|---|---|---|
| Conversational Floor | Does Piper’s natural-language response feel grounded and useful? Does it ever fabricate? | Just chat normally — ask about your work, your day, your projects |
| Todo Completion | Completing todos by name and by number — does it persist? | “complete todo 1” / “complete the X todo” then reload the Todos view |
| Provider-Agnostic Setup | Try setup with OpenAI. Try setup with Anthropic. Both should work. | python main.py setup or visit /setup |
| GitHub Pre-Flight | Ask Piper to create a GitHub issue before configuring GitHub — error message should be friendly | Fresh account, no GitHub PAT, say “create a github issue about X” |
| Interactive Standup | Does iterative refinement feel natural? | Say “let’s write a standup” |
| Learning System | Does Piper adapt to your communication style over time? | Use for a few days, note any personalization |
| Lifecycle Indicators | Do status badges appear correctly on projects/todos? | Check Projects and Todos views |
| Accessibility | Keyboard navigation, screen reader support | Tab through UI, test with VoiceOver |
| Integration Health | Does the dashboard accurately reflect your integration status? | Settings → Integrations → Test All |
Note: Portfolio Onboarding (conversational project setup on first “Hello!”) is currently disabled by design. The conversational floor handles first interactions instead — a Gall’s Law decision made late in M1 because the wizard was hijacking sessions. It may return in a later milestone.
For detailed feature documentation, see ALPHA_FEATURE_GUIDE.md.
Summary by category:
Brief overview. See roadmap for full details.
| Milestone | Focus | Status |
|---|---|---|
| M1: Foundation | Floor-first routing, provider-agnostic LLM, lifecycle basics | ✅ Closed Apr 11 |
| M2: Conscious Floor + Action Handlers | Guardrail hardening, LLM pathway consolidation, action handler coverage | 🎯 In planning |
| M3: Skills | Core skills library, multi-agent coordinator | Backlog |
| M4: Documents | Unified document processing, file browser | Backlog |
| M5: Polish | Registration flow, priority engine | Backlog |
| M6: Distribution | Release packaging | Backlog |
python main.py status > status.txtWHAT I TRIED: [specific action]
WHAT I EXPECTED: [expected result]
WHAT HAPPENED: [actual result]
ERROR MESSAGE: [if any]
If it looks like one of the M2 carryover items above, mentioning the issue number helps us triage faster.
Please focus on:
Please report:
Last Updated: April 11, 2026