Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5413ec3
updated branch protection rules
Stevenic Mar 22, 2026
19a8780
lexicon changes
Stevenic Mar 22, 2026
3b0b263
updated adapter prompt
Stevenic Mar 23, 2026
a462c77
updated unit tests for better coverage
Stevenic Mar 23, 2026
2ccb99c
fixed ownership issue
Stevenic Mar 23, 2026
62893a7
updates
Stevenic Mar 23, 2026
294256c
cleanups around system tasks
Stevenic Mar 25, 2026
ed4cce0
Merge branch 'main' into vNext
Stevenic Mar 25, 2026
387b4c0
Fixed an issue with conversation history only returning subjects
Stevenic Mar 25, 2026
50d7da8
sandboxing
Stevenic Mar 25, 2026
fbebaf4
version 0.6.0
Stevenic Mar 27, 2026
5f8f643
0.6.0 migration
Stevenic Mar 27, 2026
ac0121c
bug fixes
Stevenic Mar 27, 2026
8fc4c8e
bug fixes
Stevenic Mar 28, 2026
247f64b
Stevenic/thread view (#18)
Stevenic Mar 30, 2026
3e1b70a
Merge branch 'main' into vNext
Stevenic Mar 31, 2026
cc727ea
Stevenic/thread view (#20)
Stevenic Mar 31, 2026
bde6f14
removed version from memories
Stevenic Mar 31, 2026
6b4e6ca
published 0.7.4
Stevenic Mar 31, 2026
c03ad83
fix: build workspace packages before typecheck in CI quality job
Stevenic Mar 31, 2026
2e4e0db
fix: resolve picomatch high-severity vulnerability (GHSA-3v7f-55p6-f5…
Stevenic Mar 31, 2026
6a4b742
fix: normalize backslash paths in extractFileFromCommand for Linux CI
Stevenic Mar 31, 2026
873d5c5
memory management updates
Stevenic Apr 2, 2026
9bc6d63
updated memories
Stevenic Apr 2, 2026
8095f11
fixed activity log issue and handoffs
Stevenic Apr 2, 2026
8e04669
fix: replace require() with ESM import in onboard-flow.ts
Stevenic Apr 2, 2026
690efec
chore: bump version to 0.8.1 and add ESM compliance tests
Stevenic Apr 2, 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
13 changes: 13 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"permissions": {
"allow": [
Expand Down Expand Up @@ -29,5 +29,18 @@
"Bash(node -e \"const p = require\\(''C:/source/teammates/node_modules/vscode-jsonrpc/package.json''\\); console.log\\(p.version, p.exports ? ''has exports'' : ''no exports''\\)\")",
"Bash(node:*)"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "node -e \"\" /* teammates-activity */"
}
]
}
]
}
}
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ jobs:
- name: Lint
run: npm run lint

- name: Build independent packages
run: npm run build -w packages/consolonia & npm run build -w packages/recall & wait

- name: Build CLI (depends on consolonia + recall)
run: npm run build -w packages/cli

- name: Type-check
run: npm run typecheck

Expand Down
1 change: 1 addition & 0 deletions .teammates/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
USER.md
**/.index/
**/SYSTEM-PROMPT.md
.*/
.tmp/
2 changes: 2 additions & 0 deletions .teammates/CROSS-TEAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,5 @@ Active projects are tracked in **[PROJECTS.md](PROJECTS.md)** — codename, spec
- **[Recall Query Architecture](scribe/docs/specs/F-recall-query-architecture.md)** — Two-pass recall design: LLM-free priming pass + agent-driven mid-task search. Solves the chicken-and-egg query problem. _(added 2026-03-21)_
- **[Collision Prevention](scribe/docs/specs/F-collision-prevention.md)** — 5-layer defense model for preventing code overwrites in multi-human + multi-agent repos: branches, worktrees, ownership routing, active claims, merge queues. _(added 2026-03-22)_
- **[Interrupt and Resume](scribe/docs/specs/F-interrupt-and-resume.md)** — Checkpoint/restore for agent timeouts: kill agent, capture conversation log, replay with user steering as new prompt. Manual `/interrupt` command + automatic timeout-triggered resume. _(added 2026-03-27)_
- **[Thread View Redesign](scribe/docs/specs/F-thread-view-redesign.md)** — ThreadContainer abstraction, inline verbs on subject lines, thread-level [reply]/[copy thread], simplified input routing. _(added 2026-03-28)_
- **[Widget Model Redesign](scribe/docs/specs/F-widget-model-redesign.md)** — Identity-based FeedItem model + VirtualList widget extraction to eliminate brittle index-shifting in ChatView. _(added 2026-03-29)_
23 changes: 12 additions & 11 deletions .teammates/PROTOCOL.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,15 +125,16 @@ The CLI automatically builds each teammate's context before every task. The prom
The prompt stack (in order):

1. **SOUL.md** — identity, principles, boundaries (always, outside budget)
2. **WISDOM.md** — distilled principles from compacted memories (always, outside budget)
3. **Relevant memories from recall** — automatically queried using the task prompt; returns matching episodic summaries and typed memories from the vector index (at least 8k tokens, plus any unused daily log budget)
4. **Recent daily logs** — today's log is always included; days 2-7 are included most-recent-first up to 24k tokens (whole entries only, never truncated mid-entry)
5. **Session state** — path to the session file (`.teammates/.tmp/sessions/<name>.md`); the agent reads and writes it directly for cross-task continuity
6. **Roster** — all teammates and their roles
7. **Memory update instructions** — how to write daily logs, typed memories, and WISDOM.md
8. **Output protocol** — response format and handoff syntax
9. **Current date/time**
10. **Task** — the user's message (always, outside budget)
2. **GOALS.md** — active objectives and priorities (always, outside budget)
3. **WISDOM.md** — distilled principles from compacted memories (always, outside budget)
4. **Relevant memories from recall** — automatically queried using the task prompt; returns matching episodic summaries and typed memories from the vector index (at least 8k tokens, plus any unused daily log budget)
5. **Recent daily logs** — today's log is always included; days 2-7 are included most-recent-first up to 24k tokens (whole entries only, never truncated mid-entry)
6. **Session state** — path to the session file (`.teammates/.tmp/sessions/<name>.md`); the agent reads and writes it directly for cross-task continuity
7. **Roster** — all teammates and their roles
8. **Memory update instructions** — how to write daily logs, typed memories, and WISDOM.md
9. **Output protocol** — response format and handoff syntax
10. **Current date/time**
11. **Task** — the user's message (always, outside budget)

Weekly summaries are **not** injected directly — they are searchable via recall (step 3) and surface when relevant to the task prompt.

Expand Down Expand Up @@ -165,7 +166,7 @@ See [TEMPLATE.md](TEMPLATE.md) for full format, body structure per type, and exa

### Tier 3 — Wisdom

`WISDOM.md` — Distilled, high-signal principles derived from compacting multiple memories. Compact, stable, rarely changes. Read second (after SOUL.md).
`WISDOM.md` — Distilled, high-signal principles derived from compacting multiple memories. Compact, stable, rarely changes. Read after SOUL.md and GOALS.md.

### Compaction

Expand Down Expand Up @@ -225,7 +226,7 @@ The CLI uses this convention to detect teammates: any child directory without a

## Adding New Teammates

1. Copy the SOUL.md and WISDOM.md templates from [TEMPLATE.md](TEMPLATE.md) to a new folder under `.teammates/`
1. Copy the SOUL.md, GOALS.md, and WISDOM.md templates from [TEMPLATE.md](TEMPLATE.md) to a new folder under `.teammates/`
2. Fill in all sections with project-specific details
3. Update README.md roster, last-active date, and routing guide
4. Update existing teammates' SOUL.md ownership and boundary sections if domains shift
5 changes: 3 additions & 2 deletions .teammates/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Scribe defines the framework structure (templates, onboarding instructions). Bea

| Keywords | Teammate |
|---|---|
| strategy, roadmap, specs, planning, priorities, docs, documentation, template, onboarding, SOUL.md, WISDOM.md, protocol, framework, roster, markdown | **Scribe** |
| strategy, roadmap, specs, planning, priorities, docs, documentation, template, onboarding, SOUL.md, GOALS.md, WISDOM.md, protocol, framework, roster, markdown | **Scribe** |
| recall, search, embeddings, vectra, indexer, vector, semantic, cli, orchestrator, adapter, REPL, handoff, agent, routing, queue, consolonia, terminal UI, code, implementation, bug fix, feature | **Beacon** |
| ci, cd, pipeline, workflow, actions, release, publish, deploy, build automation, shipping, containers, infrastructure | **Pipeline** |

Expand All @@ -44,7 +44,8 @@ Every child folder of `.teammates/` is interpreted by its name prefix:
Each teammate folder contains:

- **SOUL.md** — Identity, continuity instructions, principles, boundaries, capabilities, and ownership
- **WISDOM.md** — Distilled principles from compacted memories (read second, after SOUL.md)
- **GOALS.md** — Active objectives and priorities (read after SOUL.md)
- **WISDOM.md** — Distilled principles from compacted memories (read after GOALS.md)
- **memory/** — Daily logs (`YYYY-MM-DD.md`), typed memory files (`<type>_<topic>.md`), and episodic summaries (`weekly/`, `monthly/`)

Shared folders:
Expand Down
37 changes: 35 additions & 2 deletions .teammates/TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# New Teammate Template

Copy the SOUL.md, WISDOM.md, and RESUME.md structures below to `.teammates/<name>/` and fill in each file. Create an empty `memory/` directory (with `weekly/` and `monthly/` subdirectories) for daily logs, episodic summaries, and typed memory files.
Copy the SOUL.md, GOALS.md, WISDOM.md, and RESUME.md structures below to `.teammates/<name>/` and fill in each file. Create an empty `memory/` directory (with `weekly/` and `monthly/` subdirectories) for daily logs, episodic summaries, and typed memory files.

---

Expand All @@ -21,11 +21,12 @@ Do what you're told. If the task is unclear, ask clarifying questions — but ex

Each session, you wake up fresh. These files _are_ your memory. Read them. Update them. They're how you persist.

- Read your SOUL.md and WISDOM.md at the start of every session.
- Read your SOUL.md, GOALS.md, and WISDOM.md at the start of every session.
- Read `memory/YYYY-MM-DD.md` for today and yesterday.
- Read USER.md to understand who you're working with.
- Relevant memories from past work are automatically provided in your context via recall search.
- Update your files as you learn. If you change SOUL.md, tell the user.
- Keep GOALS.md current — mark goals done as you complete them, add new ones as they emerge.

## Core Principles

Expand Down Expand Up @@ -96,6 +97,38 @@ _(No wisdom yet — principles emerge after the first compaction.)_

---

## GOALS.md Template

GOALS.md tracks what a teammate is actively working towards — *intent* and *direction*. Read it each session after SOUL.md and WISDOM.md. Keep it scannable and current.

```markdown
# <Name> — Goals

Updated: YYYY-MM-DD

## Active Goals

### P0 — Current Sprint

- [ ] <Goal description> — <brief context or link to spec>

### P1 — Up Next

- [ ] <Goal description>

### P2 — Backlog

- [ ] <Goal description>

## Completed

- [x] <Goal description> — done YYYY-MM-DD
```

**Guidelines:** One line per goal. Link to specs when they exist. Mark done inline with date, don't delete. Update at end of each session. See `template/TEMPLATE.md` for full format details.

---

## Daily Log Template

Daily logs live at `.teammates/<name>/memory/YYYY-MM-DD.md`. They are append-only and capture what happened during a session.
Expand Down
21 changes: 21 additions & 0 deletions .teammates/_standups/2026-03-28.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Standup — 2026-03-28

## Scribe — 2026-03-28

### Done (since last standup 03-25)
- **Thread View Redesign spec** — Designed ThreadContainer abstraction, inline verbs, thread-level [reply]/[copy thread], conversation history owned by threads, auto-reply to bottom thread. Handed off to Beacon (03-28)
- **Interrupt-and-resume spec** — Designed 3-phase interrupt/resume mechanism for agent timeouts (manual `/interrupt`, auto-interrupt at 80% timeout, log compaction for long sessions), handed off to Beacon (03-27)
- **Timeout root cause analysis** — Analyzed bard hang in loreweave; identified bulk file creation (42 files) exceeding 600s timeout as true root cause (03-27)
- **Wisdom compaction** — Added 2 new entries ("Spec bulk operations with batch limits" and "Design for interruption"), verified all 17 entries current (03-27–03-28)
- **Compressed daily logs** — Compressed 14 daily log files (03-13 through 03-27) to save context window space (03-27)

### Next
- Thread View Redesign — track Beacon implementation, update docs when shipped
- P1 Parity doc updates as Beacon ships S16/S17/S26 implementations
- Campfire v0.5.0 Phase 1 doc readiness (twin folders, heartbeat, handoff queue)
- Spec refinements from Beacon implementation feedback on interrupt-and-resume

### Blockers
- None

---
46 changes: 46 additions & 0 deletions .teammates/_standups/2026-03-29.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Standup — 2026-03-29

_Rerun requested again on 2026-03-29. Current sections received: Scribe, Beacon. Pending: Lexicon, Pipeline._

## Scribe — 2026-03-29

### Done (since last standup 03-28)
- **Thread view post-mortem** — Analyzed why thread view took 18 rounds. Root causes: spec-after-code, no index tests, serial visual feedback, 6,800-line cli.ts, WISDOM bloat. Delivered 6 recommendations (03-29)
- **Migration v0.5.0 → v0.7.0** — Applied 0.6.0 compression + 0.7.0 version bumps across all 22 memory files. Scrubbed system task entries, capped WISDOM.md (03-29)
- **/Command rationalization** — Audited all 16 slash commands. Proposed removing 3 (/compact, /copy, /theme), renaming 1 (/init → /setup), adding 3 (/add, /remove, /update). Open questions remain on /script, /configure, /retro (03-29)

### Next
- Finalize slash command decisions once user resolves open questions
- Thread View Redesign — track Beacon implementation, update docs when shipped
- P1 Parity doc updates as Beacon ships S16/S17/S26
- Spec refinements from Beacon feedback on interrupt-and-resume

### Blockers
- None

---

## Beacon — 2026-03-29

### Done (since last standup 03-28)
- **cli.ts extraction (Phase 1+2)** — Pulled 7 modules out of cli.ts, shrinking it from 6,815 to 4,159 lines (-39%): status-tracker, handoff-manager, retro-manager, wordwheel, service-config, thread-manager, onboard-flow
- **StatusTracker redesign** — Clean 3-method API: `startTask/stopTask/showNotification`. Notifications are one-shot styled messages. Animation lifecycle fully private. Updated 15+ call sites
- **Migration system** — Built `MIGRATIONS.md`-based upgrade system. Parses markdown sections, filters by version, queues one agent task per teammate. Progress via StatusTracker. Interruption-safe (re-runs on next startup)
- **Thread view fixes** — Fixed off-by-one in `_shiftFeedIndices`, [reply] verb, reply indentation, handoffs rendering outside containers, @ prefix removal, header spacing
- **Activity tracking** — Real-time agent activity via PostToolUse hook system. `[show activity]` toggle + `[cancel]` verbs on working placeholders. Hook auto-installs at startup. Fixed 3 follow-up bugs (missing details, no visual feedback, persistent lines)
- **System task isolation** — `system` flag on TaskAssignment threads through to prompt builder. System tasks skip daily log/memory instructions

### Next
- Build & verify activity hook end-to-end
- Slash command extraction if cli.ts entanglement can be resolved
- Start on hooks system (CP1) once N1 extraction stabilizes

### Blockers
- None

---

## Pending

- **Lexicon** — standup requested, response pending
- **Pipeline** — standup requested, response pending
43 changes: 43 additions & 0 deletions .teammates/_standups/2026-03-30.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Standup — 2026-03-30

## Scribe — 2026-03-30

### Done (since last standup 03-29)
- **Widget model redesign spec** — Designed identity-based FeedItem model + FeedStore + VirtualList extraction to replace 5 parallel index-keyed structures in ChatView. 4-phase migration plan. Handed off to Beacon (03-29)
- **Template improvement analysis** — Compared live `.teammates/` against `template/`, identified 9 gaps. Drafted GOALS.md as first deliverable (03-29)
- **GOALS.md template + propagation** — Created GOALS.md template in TEMPLATE.md (v2→v3), example file, and propagated across all 12 docs that reference the file structure (03-29)
- **README sandboxing note** — Added workspace sandbox initialization reminder to Getting Started (03-29)

### Next
- Finalize slash command decisions (open questions on /script, /configure, /retro)
- Track Beacon implementation of widget model redesign + thread view redesign
- Remaining template improvements from analysis (daily log frontmatter, docs/specs/ convention)

### Blockers
- None

---

## Beacon — 2026-03-30

### Done (since last standup 03-29)
- **Win32 mouse fix** — Root-caused why terminal verbs weren't clickable on Windows: Node.js doesn't disable Quick Edit Mode or manage console flags. Implemented `win32-console.ts` using koffi FFI to call `SetConsoleMode`. Iterated twice — first pass incorrectly enabled `ENABLE_MOUSE_INPUT` (conflicts with VT sequences), second pass removed it and forced `ENABLE_VIRTUAL_TERMINAL_INPUT`
- **Full mouse protocol support** — Added classic xterm (`CSI M`), URXVT (`?1015h`), UTF-8 (`?1005h`), and SGR-Pixels (`?1016h`) mouse protocols alongside existing SGR
- **Environment-aware terminal init** — Created `terminal-env.ts` with `detectTerminal()` that probes env vars to identify terminal capabilities. Init/restore sequences now adapt to detected terminal
- **Copilot activity parsing expansion** — Expanded `mapCopilotToolCall` from 8 to 20+ tool names (powershell, task, read_agent, web_search, github-mcp-server-*, plumbing filtering)
- **Clean rebuild + version bumps** — 0.7.0 → 0.7.1 → 0.7.2 → 0.7.3. All 1,000 tests passing (602 consolonia + 94 recall + 304 cli)

### Next
- User to test mouse clicks after CLI restart
- Widget model redesign (from Scribe spec)
- Continued cli.ts extraction

### Blockers
- None

---

## Pending

- **Lexicon** — standup requested, response pending
- **Pipeline** — standup requested, response pending
Loading
Loading