clo0p repo review · last 30 days

Clo0p is becoming a personal operating loop, not just a task app.

The last month of work moves Clo0p from a structured checklist and connector UI toward a proto-intelligent collaborator: it senses external signals, extracts work, organises it into meaning, decides whether action is possible, drafts interventions, and asks the human for approval. It is promising, but not complete: the evidence rails are uneven, the confidence gates are early, and quality still depends on fragile runtime glue.

Repo: /projects/clo0p Window: 2026-04-27 → 2026-05-27 HEAD: 1635bb6 Branch: main
69
commits reviewed
490
files changed
61k
insertions
4.4k
deletions

Executive read

Thesis

Clo0p now has the outline of an intelligence loop: sense → extract → organise → decide → draft/act → learn from undo/ignore.

The strongest recent work is not a single screen. It is the coupling between heartbeat ingestion, Compass organisation, people/contact memory, action tools, and the new Agentic Inbox. Those pieces make the app feel less like a passive dashboard and more like a system that notices unfinished loops.

Caveat

This is still an early, brittle form of intelligence. It has tool-mediated agency, not robust judgement. It can draft and auto-tick under constraints, but the tests expose mock/runtime drift, lint exposes React/compiler debt, and several subsystems still rely on prompt policy rather than durable evaluators.

What changed in the last month

The repo changed across three surfaces: the production app, the public site, and a new local-first desktop/vault direction. The product center of gravity shifted from “show my tasks” to “maintain my loop across tools.”

clo0p-app

Compass + task operating surface

Self-organising tasks, containers, push-back UX, calendar-aware day/week views, meeting notes, people pages, multi-account connectors, and a sidebar/inbox shell all landed or were materially expanded.

  • tasks-panel.tsx, day-column.tsx, project-canvas.tsx became major surfaces.
  • Compass moved toward user container writes, date routing, dedup, scoring, and reorganise passes.
  • People/contact work added merge, delete, search, source icons, and social dossiers.
agentic inbox

Proactive task evaluation

P13 shipped a heartbeat-driven sibling to the interactive task rail. For each open task, the runtime can auto-tick, draft an email/Slack/meeting, or stay silent.

  • runAgenticTurn.ts implements a one-agent, three-verdict loop.
  • agentic_drafts, blocklist, backoff, watch mode, transcript views, and inbox preferences create a reviewable action queue.
  • Direct Google REST and multi-account routing reduce integration friction.
cloopdrive

Local-first knowledge graph direction

A new Electron/Obsidian-flavoured app appeared: vault picker, editor, file tree, graph canvas, connector plumbing, Granola connector, SQLite engine, device secrets, and local graph/search primitives.

  • The design points toward user-owned markdown/vault state.
  • It complements the hosted app by treating integrations as rails into durable personal knowledge.
  • It is still early: much of the change is scaffolding and architecture docs.

Commit themes

ThemeRepresentative changesWhy it matters
Agentic Inboxsingle-runtime three-verdict pipeline, watch mode, confirm modal, DateTimePicker, Granola pivot, Google REST, inbox UI polishTurns latent checklist items into evaluated opportunities for action.
Compass v5push-back UX, scheduledFor routing, extraction hit-rate work, reorganise, container scoring, dedup indexesMakes the task substrate more semantic and less manually curated.
People graphpeople page, merge/delete, top contacts RPC, source icons, Granola/Notion sources, dossiersMoves from tasks-in-isolation to tasks embedded in relationships.
IntegrationsGoogle, Slack, Notion, Granola auth callbacks, heartbeat status, multi-account labels, token refreshIntelligence depends on live context; connectors are the sensory organs.
Public siteCloop rename, auth/signup polish, Attio sync, force graph, pricing/agent/relay sections, POST route hardeningSharper external story and acquisition funnel, plus CRM feedback loop.
Desktop/vaultcloopdrive package, SQLite, vault/editor/graph UI, Granola connector, Obsidian-style wiki linksExplores local-first ownership and personal knowledge graph rails.

Valuable features

The valuable work is concentrated where the system reduces open loops without adding a new inbox burden.

1. Agentic Inbox

Best new product primitive. It inverts the P10 interactive task rail: instead of the user opening every item, the heartbeat walks open items and only surfaces drafts worth reviewing.

Value: reduces “I need to click everything” into “approve the few things Clo0p can actually help with.”

2. Compass containers

Containers, scoring, fingerprinting, and reorganise passes make the task list pattern-aware. It can infer projects/themes/identities across the whole set rather than only sorting rows.

Value: transforms raw extraction into an attention cockpit.

3. Date routing / push-back

Moving tasks across day checklists is a clean primitive. It collapses ambiguous scheduled/deadline UX into “when should I see this?” plus system-extracted urgency hints.

Value: makes attention temporal without requiring heavy project management.

4. People + dossiers

Top contacts, merge, source icons, and social dossier compilation are the beginning of relationship-aware task execution.

Value: many actions are about people; the system needs a social substrate.

Where it shows early signs of intelligence

The repo now contains several cognitive-looking loops. They are narrow and engineered, but they are real primitives for an intelligent collaborator.

SenseHeartbeats pull Gmail, Slack, Calendar, Notion, Granola, and user rambles.
ExtractLLM skills turn messy source material into checklist items, dates, people, dossiers, and context.
OrganiseCompass scores urgency/importance, chooses containers, and reorganises the landscape.
DecideAgentic Inbox evaluates whether an item is done, draftable, or out-of-scope.
Act / learnDrafts require approval; auto-ticks can be undone; ignores and blocklists feed future suppression.
Why this is intelligence-like
  • Context sensitivity: tasks are evaluated against live connections and source evidence, not static text.
  • Goal inference: Compass containers and scheduling try to infer what work belongs together and when it matters.
  • Action selection: P13 chooses between doing nothing, marking complete, or preparing a concrete action.
  • Bounded autonomy: reversible auto-tick and human-approved send paths are safer than raw auto-action.
  • Memory of correction: blocklists and ignore preferences prevent repeated bad suggestions.
Why it is not complete
  • The agent runtime is still prompt-governed more than policy/evaluator-governed.
  • There is no strong cross-surface truth model for “why this matters now.”
  • Confidence is local to extraction/dates/drafts; not yet a unified epistemic model.
  • Learning loops are mostly suppression/undo, not full preference adaptation.
  • Test failures show implementation and mocks are not aligned enough to trust every rail.

The important distinction

Clo0p is not “intelligent” because it calls a large model. It is becoming intelligent because the codebase is starting to wrap model calls in durable loops: source evidence, user context, tool surfaces, confidence gates, reversible side effects, draft review, telemetry, and correction memory. The intelligence lives in the loop architecture, not inside a single completion.

Shortcomings and incompleteness

The sharpest risks are no longer “can we build a UI?” They are judgement quality, reliability, trust, and whether the system compounds rather than spams.

1. Runtime/test drift

Unit tests fail in Granola heartbeat because the mock Supabase client lacks schema(), causing real-content paths to error and insert nothing. That is a sign the integration test harness is behind the production code shape.

2. Lint/compiler debt

Lint reports React purity, set-state-in-effect, declaration-order, and explicit-any errors. Build passes, but static hygiene is not yet clean enough for high-confidence iteration.

3. Prompt as policy

P13 deliberately avoids cheap cascades, capability gates, and a skill registry. That simplicity shipped, but it means judgement quality is highly dependent on one agent call and one preamble.

4. Evidence model still local

Auto-tick records evidence summaries; drafts have transcripts; Compass has reasoning. But there is not yet a unified evidence ledger connecting signal → extraction → priority → action → outcome.

5. User preference learning is shallow

Undo and ignore are good rails, but the system is not yet building a nuanced model of “Connor dislikes this class of suggestion unless X.”

6. Local-first split is unresolved

cloopdrive is exciting, but the hosted app, local vault, relay, and future Obsidian-like ownership model need a crisp source-of-truth story.

7. Security/privacy posture needs continuous hardening

The month included route hardening and private Granola schema work, which is good. But an app that reads mail, calendars, meetings, Slack, and Notion needs explicit provenance, least privilege, retention, and user-visible control.

8. Action safety remains conservative but incomplete

Drafts do not auto-send and auto-tick is reversible. The next risk is subtle: bad timing, wrong account, stale contact identity, or overconfident completion.

9. Product complexity is rising quickly

In one month the app added Compass, inbox, people, multi-account, public-site growth, and desktop/vault tracks. The architecture needs visible boundaries before complexity compounds.

Verification notes

Passed

  • git pull --ff-only updated main to 1635bb6.
  • clo0p-app npm ci completed.
  • clo0p-app npm run build compiled successfully, TypeScript completed, and 54 app routes generated.
  • clo0p-com npm ci && npm run build completed and generated 26 routes.

Failed / warnings

  • clo0p-app npm test -- --run: 103 passed, 6 failed, all in granola.test.ts, rooted in supabase.schema is not a function in the test double.
  • clo0p-app npm run lint: 11 errors and 23 warnings, mostly React compiler/lint issues plus one any.
  • npm ci reported 16 app vulnerabilities and 19 public-site vulnerabilities. I did not run audit fix because that would mutate dependencies beyond the requested review.

High-leverage next moves

Stabilise

Repair quality gates first

Fix the Granola Supabase mock drift, then clear lint’s real errors. The repo is now moving fast enough that broken gates will hide actual regressions.

Instrument

Create an evidence ledger

Unify signal, extraction, container, priority, agent verdict, draft, send, undo, ignore, and user outcome into one inspectable path. This is the difference between vibes and trust.

Learn

Turn feedback into preference policy

Ignore/undo should not just suppress exact rows. It should graduate into typed preference memory: source, person, action class, timing, account, and risk tolerance.

Clarify

Resolve hosted vs local-first boundary

Decide what lives in Supabase, what lives in the vault, what is synced, and what is only transient. cloopdrive is powerful if it becomes a coherent ownership layer rather than a parallel app.

Evaluate

Measure agent verdict quality

Sample P13 runs weekly: precision of auto-ticks, draft usefulness, out-of-scope false negatives, account routing mistakes, and ignored-card reasons.

Narrow

Pick one killer loop

The strongest wedge is probably “meeting/email/Slack commitments become reviewed drafts or completed tasks automatically.” Make that one loop boringly reliable before broadening.