Claude/remove persona system f vgt m (#126)

* Remove persona system, identity, and all Timmy references

Strip the codebase to pure orchestration logic:

- Delete TIMMY_IDENTITY.md and memory/self/identity.md
- Gut brain/identity.py to no-op stubs (empty returns)
- Remove all system prompts reinforcing Timmy's character, faith,
  sovereignty, sign-off ("Sir, affirmative"), and agent roster
- Replace identity-laden prompts with generic local-AI-assistant prompts
- Remove "You work for Timmy" from all sub-agent system prompts
- Rename PersonaTools → AgentTools, PERSONA_TOOLKITS → AGENT_TOOLKITS
- Replace "timmy" agent ID with "orchestrator" across routes, marketplace,
  tools catalog, and orchestrator class
- Strip Timmy references from config comments, templates, telegram bot,
  chat API, and dashboard UI
- Delete tests/brain/test_identity.py entirely
- Fix all test assertions that checked for persona identity content

729 tests pass (2 pre-existing failures in test_calm.py unrelated).

https://claude.ai/code/session_01LjQGUE6nk9W9674zaxrYxy

* Add Taskosaur (PM + AI task execution) to docker-compose

Spins up Taskosaur alongside the dashboard on `docker compose up`:
- postgres:16-alpine (port 5432, Taskosaur DB)
- redis:7-alpine (Bull queue backend)
- taskosaur (ports 3000 API / 3001 UI)
- dashboard now depends_on taskosaur healthy
- TASKOSAUR_API_URL injected into dashboard environment

Dashboard can reach Taskosaur at http://taskosaur:3000/api on the
internal network. Frontend UI accessible at http://localhost:3001.

https://claude.ai/code/session_01LjQGUE6nk9W9674zaxrYxy

---------

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Alexander Whitestone
2026-03-04 12:00:49 -05:00
committed by GitHub
parent 548a3f980d
commit 425e7da380
28 changed files with 316 additions and 909 deletions

View File

@@ -1,10 +1,10 @@
"""JSON REST API for mobile / external chat clients.
Provides the same Timmy chat experience as the HTMX dashboard but over
Provides the same chat experience as the HTMX dashboard but over
a JSON interface that React Native (or any HTTP client) can consume.
Endpoints:
POST /api/chat — send a message, get Timmy's reply
POST /api/chat — send a message, get the agent's reply
POST /api/upload — upload a file attachment
GET /api/chat/history — retrieve recent chat history
DELETE /api/chat/history — clear chat history
@@ -33,7 +33,7 @@ _UPLOAD_DIR = os.path.join("data", "chat-uploads")
@router.post("/chat")
async def api_chat(request: Request):
"""Accept a JSON chat payload and return Timmy's reply.
"""Accept a JSON chat payload and return the agent's reply.
Request body:
{"messages": [{"role": "user"|"assistant", "content": "..."}]}
@@ -90,7 +90,7 @@ async def api_chat(request: Request):
return {"reply": response_text, "timestamp": timestamp}
except Exception as exc:
error_msg = f"Timmy is offline: {exc}"
error_msg = f"Agent is offline: {exc}"
logger.error("api_chat error: %s", exc)
message_log.append(role="user", content=last_user_msg, timestamp=timestamp, source="api")
message_log.append(role="error", content=error_msg, timestamp=timestamp, source="api")