Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
03c95e6
fix(seedgo): readme_check honors (disabled) marker in module/test sel…
AIOSAI Jun 24, 2026
feecd26
fix(seedgo): name-scope unused_function bypasses (kill silent line-dr…
AIOSAI Jun 24, 2026
c771a22
chore(trigger): retire dead bulletin_created dashboard writer
AIOSAI Jun 24, 2026
4060270
docs(backup): correct backup/.backup/.backupignore docs across the sy…
AIOSAI Jun 24, 2026
d8d2c4f
docs(memory,flow): cross-ref shared .backup/ namespace + drop stale p…
AIOSAI Jun 24, 2026
c1dba78
fix(ai_mail): scope dispatch-footer plan-close to worker's own plan
AIOSAI Jun 24, 2026
451c8a0
docs: README roster currency (17 agents) + /prep todo-reconciliation …
AIOSAI Jun 24, 2026
70cf31e
docs(backup): document seed-vs-runtime ignore architecture + add logs…
AIOSAI Jun 24, 2026
4af5b8b
refactor(backup): move .backupignore seed from code to templates/ dat…
AIOSAI Jun 24, 2026
4d41065
fix(seedgo,ai_mail): close CLI help-checker loophole + render ai_mail…
AIOSAI Jun 24, 2026
57767cc
fix(api): render 4 module --help functions in Rich (caught by tighten…
AIOSAI Jun 24, 2026
882da7c
refactor(skills): relocate skill library to src/aipass/skills/lib/ — …
AIOSAI Jun 24, 2026
0096aef
feat(telegram): port wave-1 fixes + @api set_secret write-door (DPLAN…
AIOSAI Jun 24, 2026
9af4c8a
feat(telegram): close GAP1 — create_bot persists config to @api so mi…
AIOSAI Jun 24, 2026
bf301bc
feat(telegram): /help + command menu — startup populate, single sourc…
AIOSAI Jun 24, 2026
d41ecd9
fix(skills,ops): deploy @aipass telegram bot under systemd + fix unit…
AIOSAI Jun 25, 2026
97b884b
feat(skills): prax-monitor v1 on Telegram — /monitor system-wide log …
AIOSAI Jun 25, 2026
be8f87d
feat(prax): monitor→Telegram relay (prax_monitor bot) + fix service f…
AIOSAI Jun 25, 2026
fbf102c
feat(memory,spawn): self-documenting .trinity state-tabs + todo delet…
AIOSAI Jun 25, 2026
ec6e966
fix(telegram): guard fcntl import for Windows — unblock CI test colle…
AIOSAI Jun 25, 2026
7e9c0cf
fix(telegram): make Windows-unmasked tests cross-platform
AIOSAI Jun 25, 2026
1794c8f
fix(spawn): use json_handler.read_json for passport in adopt path
AIOSAI Jun 25, 2026
a777251
fix(skills): bypass telegram ported-but-unwired fns (seedgo-audit) + …
AIOSAI Jun 25, 2026
f832a55
feat(daemon): systemd user timer auto-runner — decentralized schedule…
AIOSAI Jun 25, 2026
5b7fa2d
docs(daemon): self-sufficient run --help (schema/types/example) + REA…
AIOSAI Jun 25, 2026
1d3094a
fix(ai_mail): escape systemd cgroup for daemonized wakes (td-48)
AIOSAI Jun 25, 2026
b51ac87
feat(daemon): Scheduler Bot Phase 1 — unified queue + status capture …
AIOSAI Jun 25, 2026
d252403
feat(skills): Scheduler Bot Phase 2 — dedicated bot /queue + hourly d…
AIOSAI Jun 25, 2026
4363f98
fix(skills): SchedulerBot.run() crash-looped on real ExecStart — wrap…
AIOSAI Jun 26, 2026
88e99ef
feat(skills,hooks): TDPLAN-0009 Telegram session mirror — bidirection…
AIOSAI Jun 29, 2026
9e988a6
fix(daemon): CI green — .archive-existence tests → import-path assert…
AIOSAI Jun 29, 2026
3d66e83
fix(daemon): seedgo 100% — archive dead cron orphans, queue introspec…
AIOSAI Jun 29, 2026
8d2dcdc
fix(daemon): README test count 486→300 (live count; 486 wrongly inclu…
AIOSAI Jun 29, 2026
bd57573
fix(seedgo): audit always ignores .archive/ — full stop (Patrick dire…
AIOSAI Jun 29, 2026
2217b96
fix(skills): Windows CI — mirror transcript slug strips backslashes; …
AIOSAI Jun 29, 2026
f460cd5
feat(hooks): presence service + single-session gate, dormant (FPLAN-0…
AIOSAI Jun 29, 2026
13983b6
fix(hooks): presence tests cross-platform — patch _presence_lock not …
AIOSAI Jun 29, 2026
8d775b4
feat(skills): TG bot follows PRESENCE pointer, retire legacy own-spaw…
AIOSAI Jun 29, 2026
beb048d
fix(hooks): presence_gate keys per-branch via hook_data cwd; engine p…
AIOSAI Jun 30, 2026
dc5c1d2
fix(hooks): presence keys the persistent claude session PID, not the …
AIOSAI Jun 30, 2026
91cb591
fix(e2e): rm_gate block contract is exit 2, not exit 0 (FPLAN-0289 CI)
AIOSAI Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .aipass/hooks.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
"hooks_enabled": true,

"UserPromptSubmit": {
"presence_gate": {
"enabled": true,
"handler": "aipass.hooks.apps.handlers.security.presence_gate.handle",
"matcher": ""
},
"identity_injector": {
"enabled": true,
"handler": "aipass.hooks.apps.handlers.prompt.identity.handle",
Expand Down Expand Up @@ -98,6 +103,11 @@
"handler": "aipass.hooks.apps.handlers.notification.telegram_response.handle",
"matcher": "",
"timeout": 30
},
"presence_release": {
"enabled": true,
"handler": "aipass.hooks.apps.handlers.security.presence_gate.handle_stop",
"matcher": ""
}
},

Expand Down
2 changes: 1 addition & 1 deletion .aipass/tier1_navmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ src/aipass/<name>/
- @skills — capability framework. Discoverable, self-contained skill units any agent can run; consume AIPass services as opt-in imports (e.g. the Telegram skill).
- @daemon — task scheduler. Cron-triggered firing; each branch owns its `.daemon/schedule.json`, the daemon discovers and fires.
- @commons — the social space. Where branches post, comment, vote, and gather as a community.
- @backup — local-first backups. Project-owned snapshots and restore for any directory; no external service.
- @backup — local-first backups. Snapshots + versioning + restore for any directory; optional Google Drive sync (planned). `.backup/` is a shared runtime namespace — @memory rollover and @flow (plan archive) also write there.

# Daily commands

Expand Down
2 changes: 0 additions & 2 deletions .backupignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
# Lines starting with # are comments. Blank lines are ignored.
# Edit this file to customize. Source defaults: handlers/ignore/patterns.py

.backup_system/
.backup/
.git/
.svn/
Expand All @@ -27,4 +26,3 @@ dist/
*.log
.ruff_cache/
.coverage
*logs
14 changes: 13 additions & 1 deletion .claude/commands/prep.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,18 @@ Each memory file plays a distinct role. Update based on what actually changed th
- **`date`** — ISO date/datetime.
- Plus its text field + extras: key_learnings `{number, date, key, value}` · sessions `{number, date, summary, status, tags}` · todos `{number, date, task, priority, status}` · observations `{number, date, note, tags}`.

**When adding:** stamp `number` + `date`, then **prepend** (newest on top). **Don't hand-trim** — rollover archives the oldest *by number* to @memory automatically.
**When adding:** stamp `number` + `date`, then **prepend** (newest on top). **Don't hand-trim** sessions/key_learnings/observations — rollover archives the oldest *by number* to @memory automatically. **Todos are the exception** — rollover never touches them, so you prune done ones by hand (see Reconcile below).

### Reconcile todos — verify against reality, don't trust the label

Stored status drifts: a todo finished in a past session often never gets closed. Before writing the session entry, **audit every open todo against the actual system** — check the real state, not the stored `status`:

- Does the file/dir still exist (or is it gone)? Is the code path in or out? Does the README/doc actually say what the todo claims? Does the audit pass?
- **Close what's verifiably done** → note it in the session entry, then **DELETE the todo from the array**. Rollover never trims todos (they're operational — only sessions/key_learnings/observations roll), so done items left as `status: done` pile up and go stale across chats. Fail honestly — remove only on evidence, never just to tidy the list.
- **Re-scope what's partially done** → record which sub-items landed, keep the rest open.
- **Leave deferred / pending-decision todos open** — but confirm they're still real.

Quick checks beat assumptions: `ls`/`find` for files, `git ls-files`/`grep` for code/docs, `drone @seedgo audit` for standards. This step is the whole point of "close whats done."

## 2. Active Plans

Expand Down Expand Up @@ -55,6 +66,7 @@ List everything updated. Format:
```
Prep complete:
- local.json: [what was added]
- Todos: [reconciled vs reality — N done & removed, M re-scoped, K still open]
- observations.json: [updated / skipped]
- Plans: [which ones updated]
- Git: [branch, uncommitted count, suggestion]
Expand Down
2 changes: 1 addition & 1 deletion .claude/templates/memo.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Purpose: Update branch memory files after completing work this session.
Each memory file plays a distinct role. Update based on what actually changed this session.

- **`.trinity/passport.json`** — IDENTITY. Who you are: role, capabilities, principles. Only update if identity genuinely evolved this session. Don't touch it just to touch it.
- **`.trinity/local.json`** — YOUR MEMORY. Session history, key_learnings, and todos[]. Add a session entry for significant work. Add key_learnings for facts you'd need next time. Update todos[] with open items. Trim oldest sessions if over 20.
- **`.trinity/local.json`** — YOUR MEMORY. Add a session entry for significant work; add key_learnings for facts you'd need next time. **Todos: add what you parked, and DELETE every todo you finished this session** — the proof goes in the session entry, not the todo. Rollover never trims todos (they're operational), so done ones you leave behind resurface as "open" next load and you waste time re-confirming them. (Sessions/key_learnings DO auto-roll by number — don't hand-trim those.)
- **`.trinity/observations.json`** — YOUR MEMORY OF THE USER. Collaboration insights, preferences, friction points, flow states. Skip entirely if nothing new about the user this session.

## If Relevant
Expand Down
4 changes: 2 additions & 2 deletions .codex/skills/memo/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ Purpose: Update branch memory files after completing work this session.

### Always

- **.trinity/local.json** — Add new session entry to `sessions` if significant work was done. Add new `key_learnings` for facts you'd need next time.
- **.trinity/local.json** — Add a session entry to `sessions` if significant work was done; add `key_learnings` for facts you'd need next time. **Todos: add what you parked, and DELETE every todo you finished this session** — the proof goes in the session entry, not the todo. Rollover never trims todos (they're operational), so done ones you leave behind resurface as "open" next load and you waste time re-confirming them.
- **.trinity/observations.json** — Add notable collaboration insights: breakthrough moments, pattern corrections, flow states, friction points, preference discoveries. Skip if nothing notable this session.

### Entry shape — one rule for all four types

`key_learnings`, `sessions`, `todos` (local.json) and `observations` (observations.json) all share ONE shape: a **list of objects, newest at the top (index 0)**. Every entry carries a **`number`** (monotonic int per type — highest = newest, never reused; new = current max + 1) and a **`date`** (ISO), plus its text field + extras: key_learnings `{number, date, key, value}` · sessions `{number, date, summary, status, tags}` · todos `{number, date, task, priority, status}` · observations `{number, date, note, tags}`.

**When adding:** stamp `number` + `date`, then **prepend** (newest on top). **Don't hand-trim** — rollover archives the oldest *by number* to @memory automatically.
**When adding:** stamp `number` + `date`, then **prepend** (newest on top). **Don't hand-trim** sessions/key_learnings/observations — rollover archives the oldest *by number* to @memory automatically. **Todos are the exception** — rollover never touches them, so you prune done ones by hand (delete finished todos, see above).

### If Relevant

Expand Down
5 changes: 4 additions & 1 deletion .codex/skills/prep/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ Purpose: Button up everything at the end of a session — or before a /compact.
- **.trinity/observations.json** — Add collaboration insights if anything notable happened. Skip if nothing new.
- **.trinity/passport.json** — Only update if role/purpose/principles genuinely changed this session.

**Entry shape — one rule for all four types:** `key_learnings`, `sessions`, `todos` (local.json) and `observations` (observations.json) are all **lists, newest at top (index 0)**. Every entry carries a **`number`** (monotonic int per type — highest = newest, never reused; new = current max + 1) and a **`date`** (ISO), plus its text field + extras: key_learnings `{number, date, key, value}` · sessions `{number, date, summary, status, tags}` · todos `{number, date, task, priority, status}` · observations `{number, date, note, tags}`. Stamp `number` + `date` and **prepend**; **don't hand-trim** — rollover archives the oldest *by number* automatically.
**Entry shape — one rule for all four types:** `key_learnings`, `sessions`, `todos` (local.json) and `observations` (observations.json) are all **lists, newest at top (index 0)**. Every entry carries a **`number`** (monotonic int per type — highest = newest, never reused; new = current max + 1) and a **`date`** (ISO), plus its text field + extras: key_learnings `{number, date, key, value}` · sessions `{number, date, summary, status, tags}` · todos `{number, date, task, priority, status}` · observations `{number, date, note, tags}`. Stamp `number` + `date` and **prepend**; **don't hand-trim** sessions/key_learnings/observations — rollover archives the oldest *by number* automatically. **Todos are the exception** — rollover never touches them, so you prune done ones by hand (see Reconcile).

**Reconcile todos — verify against reality, don't trust the label.** Stored status drifts (a todo finished a past session often never got closed). Audit every **open** todo against the actual system: file/dir still there? code path in or out? README says what it claims? audit passes? **Close what's verifiably done** → note it in the session entry, then **DELETE the todo from the array** (rollover never trims todos — they're operational — so done items left as `status: done` pile up and go stale across chats), **re-scope** partials, **leave** deferred/pending-decision ones open. Fail honestly — remove only on evidence, never to tidy the list. Use `ls`/`find`/`git ls-files`/`grep`/`drone @seedgo audit`, not assumptions.

## 2. Active Plans

Expand Down Expand Up @@ -48,6 +50,7 @@ List everything updated. Format:
```
Prep complete:
- local.json: [what was added]
- Todos: [reconciled vs reality — N done & removed, M re-scoped, K still open]
- observations.json: [updated / skipped]
- Plans: [which ones updated]
- Git: [branch, uncommitted count, suggestion]
Expand Down
Loading
Loading