Skip to content

proposal apply silently drops all claims in local mode (0.3.0) #185

Description

@HelgerLee

proposal apply silently drops all claims in local mode

Version: 0.3.0 (installed 2026-08-31, unchanged since — no update involved)
Mode: local, path-bound repo. Hooks/auto-memory disabled.

Symptom

greplica proposal validate passes, proposal apply reports success with a
memory commit id — but zero claim rows are written (verified directly in
graph.db: claims has no new ids, graph_memberships has no new links).
Counts in apply output are all 0 (Components: 0 ... Claims: 0 ...).

Bisect (all validated, applied, then row-counted in DB)

  • New component + plain claim → dropped.
  • Existing component + plain new id → dropped.
  • Supersede-shaped pair (status: superseded + superseded_by /
    supersedes) → validates, applies, dropped. No crash, no error.

So the local writer drops everything, not a specific shape.

Window (from memory_commits + membership mapping)

  • Last claim-bearing commit: mc_a42c3e (2026-09-09T22:06:12Z, 2 claims).
  • First claimless commit: mc_450a43 titled "Supersede epic-level claims
    with phase-level state" (2026-09-09T22:06:27Z) — 15 seconds later, same
    session. Three subsequent applies (incl. plain claims) also empty.

Ruled out

  • Update: binary/package/npm-cache all dated 2026-08-31.
  • Migrations: 0.11.0/0.12.0/0.12.2 were wedged; force-retried to clean
    (doctor FAIL cleared) and re-applied — still 0 claims.
  • External LLM: binary has no ollama/remote-LLM references; embeddings
    are local Xenova mpnet (healthy, 100% coverage).

Suspected

The first failing commit is the first supersede/retire-style operation.
Hypothesis: the local applier choked on a retire directive and stayed wedged
(commit rows still recorded). The validator accepts supersede fields, so
validate gives false confidence.

Repro

# proposal.json: {title, component, claims:[{id,kind,status,text,evidence}]}
greplica proposal validate proposal.json   # valid
greplica proposal apply proposal.json      # success + commit id, 0 claims
sqlite3 ~/.greplica/graph.db "select count(*) from claims where id='<your-id>';"
# → 0

Ask

Either fix the local claim writer, or make apply fail loudly when claims
are dropped (exit nonzero + reason) instead of reporting success.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions