synap-git 2.1.4__tar.gz → 2.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {synap_git-2.1.4 → synap_git-2.1.5}/CHANGELOG.md +5 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/PKG-INFO +1 -1
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/__init__.py +1 -1
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/indexer/daemon.py +10 -9
- {synap_git-2.1.4 → synap_git-2.1.5}/.gitignore +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/.synap.example/README.md +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/LICENSE.md +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/README.md +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/pyproject.toml +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/api/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/api/app.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/api/static/index.html +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/cli/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/cli/__main__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/cli/main.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/config.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/diagnostics/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/diagnostics/logger.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/diagnostics/tracing.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/embeddings/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/git/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/git/state.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/indexer/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/indexer/engine.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/indexer/scanner.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/indexer/wiki.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/mcp/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/mcp/server.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/parser/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/parser/registry.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/anthropic.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/base.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/factory.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/gemini.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/ollama.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/openai.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/provider/openrouter.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/py.typed +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/retrieval/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/retrieval/engine.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/retrieval/memory.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/storage/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/storage/sqlite.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/utils/__init__.py +0 -0
- {synap_git-2.1.4 → synap_git-2.1.5}/src/synap_git/utils/serialization.py +0 -0
|
@@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.1.5] - 2026-06-11
|
|
9
|
+
|
|
10
|
+
### Refactored
|
|
11
|
+
- **Daemon Teardown**: Refactored the forceful SIGTERM daemon teardown logic to safely toggle via `force_exit=True` rather than a blanket catch-all. Makes programmatic `daemon.stop()` safer without blocking terminal UI interactions.
|
|
12
|
+
|
|
8
13
|
## [2.1.4] - 2026-06-11
|
|
9
14
|
|
|
10
15
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synap-git
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.5
|
|
4
4
|
Summary: Persistent structural context infrastructure for AI coding agents.
|
|
5
5
|
Project-URL: Homepage, https://github.com/saahilpal/synap-git
|
|
6
6
|
Project-URL: Repository, https://github.com/saahilpal/synap-git
|
|
@@ -123,21 +123,22 @@ class RuntimeDaemon:
|
|
|
123
123
|
self._delete_heartbeat()
|
|
124
124
|
self.logger.info("daemon_stopped")
|
|
125
125
|
|
|
126
|
-
def stop(self) -> None:
|
|
126
|
+
def stop(self, force_exit: bool = False) -> None:
|
|
127
127
|
if not self._stop_event.is_set():
|
|
128
128
|
self.logger.info("daemon_stop_requested")
|
|
129
129
|
self._stop_event.set()
|
|
130
130
|
|
|
131
131
|
# Force immediate cleanup and exit to avoid thread-join blocking
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
132
|
+
if force_exit:
|
|
133
|
+
try:
|
|
134
|
+
self.runtime.shutdown()
|
|
135
|
+
self._delete_heartbeat()
|
|
136
|
+
except Exception:
|
|
137
|
+
pass
|
|
137
138
|
|
|
138
|
-
|
|
139
|
+
import os
|
|
139
140
|
|
|
140
|
-
|
|
141
|
+
os._exit(0)
|
|
141
142
|
|
|
142
143
|
def health(self) -> DaemonHealth:
|
|
143
144
|
status = self.runtime.status()
|
|
@@ -327,7 +328,7 @@ class RuntimeDaemon:
|
|
|
327
328
|
loop = asyncio.get_running_loop()
|
|
328
329
|
for sig in (signal.SIGINT, signal.SIGTERM):
|
|
329
330
|
try:
|
|
330
|
-
loop.add_signal_handler(sig, self.stop)
|
|
331
|
+
loop.add_signal_handler(sig, lambda: self.stop(force_exit=True))
|
|
331
332
|
except NotImplementedError:
|
|
332
333
|
continue
|
|
333
334
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|