Watcher loses its successful baseline across unwatch/watch
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 47/100
Línea de trabajo
Start by tracing how daemon sessions remove and recreate project watches, then inspect the watcher’s Git HEAD and dirty-signature baseline alongside graph database generation checks. Reproduce the unwatch/commit/rewatch sequence from the issue and check how successful, failed, and busy-skipped indexing affect saved state. Done means rewatching detects changes made while unwatched, while unchanged dirty work does not trigger a redundant full reindex.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
codebase-memory-mcp -v0.12.1
Platform
Linux (x64)
Install channel
GitHub release archive / install.sh / install.ps1
Binary variant
standard
What happened, and what did you expect?
Description
In v0.12.1, a project watch can be removed when its final daemon session
subscriber disconnects while the daemon itself remains alive. Re-registering
the same project creates a fresh watcher state. Its initial poll adopts the
current Git HEAD as the baseline and starts with an empty dirty-state
signature, without checking whether that graph generation was successfully
indexed before the disconnect.
This can cause two observable failures:
- If the previously indexed worktree was dirty and remains unchanged, the
reconnect can trigger a redundant full reindex. - If a commit is made while the project is unwatched and the worktree is clean
when it reconnects, the fresh baseline can absorb the newHEAD; the
watcher then sees no change and may leave the graph stale.
The issue is limited to a daemon that stays running while the final watch is
removed and later recreated. A daemon restart already loses all in-memory
watcher state.
Reproduction
Reproduction
- Start the daemon and watch a Git project.
- Make a worktree change and let the watcher index it successfully.
- Disconnect the final session that owns this project's watch, without
restarting the daemon. - While the project is unwatched, commit a change and leave the worktree
clean. - Reconnect the session so the project is watched again.
The watcher initializes from the new HEAD and does not schedule an index for
the commit made while disconnected. An unchanged dirty worktree can also
reproduce the redundant-index case by reconnecting without step 4.
Expected behavior
The daemon should retain the last successfully indexed Git HEAD and dirty
signature across a watch removal/re-registration for the same project and
root. It should detect changes that happened while the project was unwatched.
The saved baseline should only be reused while the project's graph database
generation is unchanged; a replaced or missing database should force an
index. Failed and busy-skipped index attempts must not advance the saved
baseline.
Logs
Diagnostics trajectory (memory / performance / leak issues)
Project scale (if relevant)
No response
Confirmations
- I searched existing issues and this is not a duplicate.
- My reproduction uses shareable code (a dummy snippet or a public OSS repository), not proprietary code.
- Lenguaje dominante
- C
- Estrellas
- 45.8k
- Forks
- 3.8k
- Merge medio
- 3 d 14 h
- PR fusionados (30 d)
- 210
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de DeusData/codebase-memory-mcp
-
bug editor/integration stability/performance
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
DeusData/codebase-memory-mcp#2818 ·
Los mantenedores suelen responder en 2 días
-
Generated Pi extension (cbmem.ts) breaks Gemini/Antigravity: Type.Union of Type.Literal serializes to anyOf/constPosiblemente ocupada @divakantpandey la tomó hace 2 días. Abiertobug editor/integration
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
DeusData/codebase-memory-mcp#2787 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
editor/integration parsing/quality
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
DeusData/codebase-memory-mcp#2286 ·
Los mantenedores suelen responder en 2 días
-
install writes an unsupported `args` key into the Claude Code SubagentStart hook, so it never runsAbiertobug editor/integration priority/high stability/performance ux/behavior
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
DeusData/codebase-memory-mcp#2239 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
bug priority/high ux/behavior
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
DeusData/codebase-memory-mcp#2232 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de DeusData/codebase-memory-mcp
Issues similares
-
docs, ffi, python: update stale "built-in rules" references and pipeline order in docstringsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
[cmocka] update to 2.0.2Abiertoupdate-request
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
msys2/MINGW-packages#33004 ·
Los mantenedores suelen responder en 1 día
-
docs: write the buffer exampleAbiertoarea:buffer good first issue type:documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sudo-project/sudo#586 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
OpenPrinting/cups#1795 ·
Los mantenedores suelen responder en 1 día