Joseph Doherty
b5175aefaa
feat: per-POV summary and edge summary update on scene close
2026-04-26 13:53:12 -04:00
Joseph Doherty
0997562e75
feat: scene close on hard signals with manual override
2026-04-26 13:46:14 -04:00
Joseph Doherty
db3005fc17
feat: drawer edits with manual_edit event capture
2026-04-26 13:40:40 -04:00
Joseph Doherty
5fc5b8ac23
feat: read-only drawer with scene, activity, edges, memories
2026-04-26 13:35:47 -04:00
Joseph Doherty
3995a8671b
feat: FTS5 memory retrieval with witness filter and ranking boosts
2026-04-26 13:30:40 -04:00
Joseph Doherty
eb4cdf9cbb
feat: async significance pass with auto-pin on score 3
2026-04-26 13:27:25 -04:00
Joseph Doherty
a45dabb6ae
feat: per-turn memory writes with witness flags
2026-04-26 13:20:43 -04:00
Joseph Doherty
e8d24a0875
feat: post-turn state-update pass per present entity
2026-04-26 13:17:07 -04:00
Joseph Doherty
9b45710cb1
feat: narrative streaming via SSE with assistant_turn event
2026-04-26 13:09:31 -04:00
Joseph Doherty
73d8b0c092
feat: prompt assembly with must/should/nice trim tiers
2026-04-26 13:00:00 -04:00
Joseph Doherty
a0f5e818ec
feat: turn input parser via classifier
2026-04-26 12:53:34 -04:00
Joseph Doherty
656c2558cb
feat: per-chat SSE channel and pub/sub
2026-04-26 12:49:41 -04:00
Joseph Doherty
e79f4d8d22
feat: chat shell page rendering
2026-04-26 12:39:15 -04:00
Joseph Doherty
0c08745194
feat: top-level nav and chat list view
2026-04-26 12:36:20 -04:00
Joseph Doherty
fbb16c86b3
feat: kickoff parse-and-confirm flow with chat creation
2026-04-26 12:28:05 -04:00
Joseph Doherty
e44e2bf93f
feat: settings page with you-entity authoring
2026-04-26 12:22:00 -04:00
Joseph Doherty
44ea627a8a
feat: bot authoring form with bot_authored event
2026-04-26 12:17:06 -04:00
Joseph Doherty
a5339fc1d2
feat: kickoff prose parser via classifier
2026-04-26 12:09:17 -04:00
Joseph Doherty
ec344064f1
feat: chats, chat_state, containers, scenes, activity tables
2026-04-26 12:03:26 -04:00
Joseph Doherty
30e6648122
feat: memory schema with witness flags and FTS5 index
2026-04-26 11:56:32 -04:00
Joseph Doherty
bc97d425ef
feat: directed edges with per-turn delta projector
2026-04-26 11:51:15 -04:00
Joseph Doherty
7e6c2985dd
docs: fix Task 6 plan snippet: PRAGMA table_info name index is c[1] not c[0]
2026-04-26 11:48:30 -04:00
Joseph Doherty
5e6bbb586c
feat: bot and you entity schemas with projector handlers
2026-04-26 11:46:19 -04:00
Joseph Doherty
517fe49aef
feat: append-only event log with projector skeleton
2026-04-26 11:42:49 -04:00
Joseph Doherty
c2aceffda1
feat: classifier wrapper with retry, timeout, schema-default fallback
2026-04-26 11:38:48 -04:00
Joseph Doherty
e627356168
feat: LLMClient protocol with Featherless and mock implementations
2026-04-26 11:35:57 -04:00
Joseph Doherty
67517926aa
feat: sqlite migration runner with meta version table
2026-04-26 11:32:32 -04:00
Joseph Doherty
01e6975d20
feat: config loader with toml + env override
2026-04-26 11:28:40 -04:00
Joseph Doherty
4a60171035
feat: project skeleton with health endpoint
2026-04-26 11:23:38 -04:00
Joseph Doherty
f0594c24d2
docs: add Phase 1 implementation plan with 36 TDD tasks
...
Bite-sized, TDD-driven plan covering all v1 deliverables from the
requirements doc §13. Each task has: file paths, failing test,
verify-fail step, minimal implementation, verify-pass step, and a
single commit.
Phases:
- 1A Foundation: project skeleton, config, migrations, LLM client, classifier
- 1B State machine: event log, projector, entities, edges, memory, world
- 1C Authoring: kickoff parser, bot form, settings, kickoff confirm
- 1D Chat (single bot): nav, chat shell, SSE, turn parse, prompt assembly,
narrative streaming
- 1E Per-turn updates: state-update, memory writes, significance, retrieval
- 1F Drawer & scenes: read-only drawer, drawer edits, scene close, per-POV
summary
- 1G Rollback: rewind w/ impact preview, regenerate, reset
- 1H Ops & polish: snapshots, backups, display, streaming UX, errors,
first-run
Companion tasks.json captures dependency DAG for resumable execution.
2026-04-26 11:19:33 -04:00
Joseph Doherty
8a6b48be11
docs: flesh out behavioral specs in v1 requirements (round 2)
...
Resolves the deferred operational and UX semantics from round 2 of the
brainstorm. Decisions 22–43 in the appendix decisions log.
New / expanded sections:
- §3.3 Classifier failure handling (Pydantic-constrained + retry + schema-
default fallback, 10s timeout, refusal triggers fallback-model swap).
- §3.4 Edge update granularity (per-turn deltas + per-scene-close summary
rewrite; all mutations go through edge_update events).
- §4.3 Chat clock format (stored ISO 8601 UTC; displayed friendly relative).
- §5.1 Authoring expanded (voice samples format, trait list as free-form
phrases, backstory length target).
- §5.4 "You" entity authoring (one-time, shared).
- §6.4 Drawer expanded (v1 editable fields cut: activity, edges, memory;
read-only: container, identity, witness, structural; manual_edit events).
- §6.5 Activity record specifics (open verb + classifier-extracted props).
- §7.4 Container authoring (parse-and-extend, per-chat scoped).
- §7.5 Guest leaves mid-scene (auto close + new scene with you+host).
- §8.5 Pinning (soft cap 8, score-3 auto-pin, manual pins never auto-evict).
- §10 Rollback expanded with full impact-preview modal, snapshot frequency
(100 events / 30 min periodic, pre-rewind always), inline regenerate UX
with edit-then-regenerate.
- §11.1 Significance rubric (0=Routine, 1=Notable, 2=Significant,
3=Pivotal) with usage and tie-breakers.
- §16 UI Shape & Flow (top-level nav, first-run experience, display
formatting, streaming UX, error UX).
CLAUDE.md adds a "Behavioral defaults (round 2)" section flagging the
load-bearing rules for future Claude sessions.
§14 Open / Deferred Decisions trimmed to the genuinely-still-open list
(embedding model, vector index choice, prompt templates, search, etc.).
2026-04-26 11:11:46 -04:00
Joseph Doherty
5869f1c5ce
docs: lock remaining v1 design decisions
...
Resolves the open/deferred decisions from the v1 requirements brainstorm:
runtime stack, classifier model, token budgets, OOC marker, data layout.
- Runtime: FastAPI + HTMX + SSE (multi-tab sync is a Phase 1 requirement,
not a polish item). 127.0.0.1 only, no auth in v1.
- Classifier model: NousResearch/Hermes-3-Llama-3.1-8B with documented
fallback chain (dolphin-2.9.4-llama3-8b, Meta-Llama-3.1-8B-abliterated).
- Token budgets: 8K hard / 6K soft for narrative, 4K hard for classifier;
Must/Should/Nice trimming tiers spelled out in §3.2.
- OOC marker locked to ((double parens)), configurable.
- All runtime data lives under <repo>/data/ (DB, backups, snapshots,
exports, config). Tree is gitignored. CHAT_DB_PATH env var honored.
CLAUDE.md and the requirements doc updated to match. Decisions log in
the requirements doc appendix extended with the new locks (#17–21).
2026-04-26 10:56:51 -04:00
Joseph Doherty
2f94ba7291
docs: add v1 requirements design + project README
...
- docs/plans/2026-04-26-v1-requirements-design.md captures the v1
product requirements and behavioral spec from the initial brainstorm
(use case, scope, data model, authoring, play loop, memory, time,
rollback, phase cut, non-negotiable rules).
- README.md introduces the project for the gitea repo.
- CLAUDE.md updated to reference the requirements doc.
- .gitignore added for macOS metadata.
2026-04-26 10:46:03 -04:00
Joseph Doherty
eb2f814f25
Initial commit: roleplay engine design and CLAUDE.md
...
- rp-engine-design.md: full design for the simulation-based roleplay engine
(entities, containers, directed relationship graph, witnessed-by memory,
scoped events, scene compression, event-sourced state, time skips).
- CLAUDE.md: working summary and conventions for development.
2026-04-26 10:08:33 -04:00