simplenote-mcp-server 1.16.0__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.
- simplenote_mcp_server-1.16.0/CHANGELOG.md +510 -0
- simplenote_mcp_server-1.16.0/LICENSE +21 -0
- simplenote_mcp_server-1.16.0/MANIFEST.in +10 -0
- simplenote_mcp_server-1.16.0/PKG-INFO +739 -0
- simplenote_mcp_server-1.16.0/README.md +677 -0
- simplenote_mcp_server-1.16.0/VERSION +1 -0
- simplenote_mcp_server-1.16.0/pyproject.toml +85 -0
- simplenote_mcp_server-1.16.0/setup.cfg +37 -0
- simplenote_mcp_server-1.16.0/setup.py +30 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/__init__.py +5 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/__main__.py +21 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/py.typed +0 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/analyze_logs.py +436 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/check_server_pid.sh +60 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/cleanup_servers.sh +129 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/config.sh +37 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/diagnose_api.py +585 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/error_examples.py +365 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/generate_test_coverage.py +218 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/log_format_test.py +206 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/logging_examples.py +185 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/monitoring_dashboard.py +569 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/release.sh +91 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/restart_claude.sh +63 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/test_tool_visibility.sh +34 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/verify_tools.sh +57 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/scripts/watch_logs.sh +27 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/__init__.py +15 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/alerting.py +774 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/auth.py +431 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/cache.py +1551 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/cache_utils.py +364 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/compat/__init__.py +47 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/config.py +264 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/context.py +69 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/decorators.py +460 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/duplicates.py +154 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/error_codes.py +286 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/error_helpers.py +540 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/error_taxonomy.py +543 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/errors.py +599 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/export.py +145 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/http_endpoints.py +556 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/log_monitor.py +647 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/logger_factory.py +542 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/logging.py +538 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/mcp_types_compat.py +270 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/memory_monitor.py +534 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/middleware.py +714 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/monitoring/__init__.py +40 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/monitoring/metrics.py +796 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/monitoring/thresholds.py +706 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/search/__init__.py +15 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/search/date_parser.py +114 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/search/engine.py +596 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/search/fuzzy.py +142 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/search/parser.py +203 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/security.py +652 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/server.py +1883 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/tool_handlers.py +2616 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/utils/__init__.py +5 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/utils/common.py +76 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp/server/utils/content_type.py +399 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp_server.egg-info/PKG-INFO +739 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp_server.egg-info/SOURCES.txt +114 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp_server.egg-info/dependency_links.txt +1 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp_server.egg-info/entry_points.txt +2 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp_server.egg-info/requires.txt +61 -0
- simplenote_mcp_server-1.16.0/simplenote_mcp_server.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the Simplenote MCP Server project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [1.16.0] - 2026-04-28
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `permanent_delete_note` tool: irreversibly destroy a single note; requires `confirm=true` to execute; returns a dry-run description when `confirm=false` (default) — operation cannot be undone
|
|
14
|
+
- `empty_trash` tool: permanently delete all trashed notes in one operation; defaults to `dry_run=true` (lists trashed notes without deleting); requires `dry_run=false` AND `confirm=true` to execute — operation cannot be undone
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- `list_tags` returning empty results after startup: `_populate_cache_direct` now calls `_build_tag_index` when loading tagged notes, fixing the issue where `_tag_index` stayed empty because `cache.initialize()` short-circuited on the eagerly-set `_initialized=True` flag (closes #507)
|
|
18
|
+
- `log_monitor` background thread exceptions now logged instead of silently swallowed
|
|
19
|
+
- Incomplete URL sanitization in `alerting.py` (CodeQL `py/incomplete-url-substring-sanitization`)
|
|
20
|
+
- All remaining CodeQL Python findings resolved (`py/empty-except`, `py/import-and-import-from`, wrong-number-of-arguments in integration tests)
|
|
21
|
+
- Stale config cache leaking `offline_mode=False` between test runs
|
|
22
|
+
|
|
23
|
+
### Security
|
|
24
|
+
- `cryptography` bumped 46.0.7 → 47.0.0
|
|
25
|
+
- Container CVE scan hardened: `ignore-unfixed: true` added to Trivy action; `.trivyignore` added for five CVEs with no available Debian package fix (glibc CVE-2025-4802, linux-pam CVE-2025-6020, perl CVE-2023-31484, sqlite CVE-2025-6965, zlib CVE-2023-45853)
|
|
26
|
+
- pip-audit false positive CVE-2026-3219 suppressed (affects CI runner's `pip` tool, not a project dependency)
|
|
27
|
+
|
|
28
|
+
## [1.15.0] - 2026-04-14
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
- `publish_note` tool: publish a note to a public URL by setting the `published` system tag via `update_note`; returns `public_url`; idempotent if already published
|
|
32
|
+
- `unpublish_note` tool: remove a note from public access by clearing the `published` system tag; no-op if not published
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
- Broken `DOCKER_README.md` symlink replaced with real file (symlink target was deleted in doc cleanup, breaking the Docker Hub description CI step)
|
|
36
|
+
|
|
37
|
+
## [1.14.0] - 2026-04-13
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
- `get_server_info` tool: returns server name, version, author, registered tool count, and a debug block (Python version, platform, cache status, sync interval, log level, offline mode)
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
- `log_monitor._process_log_file`: eliminated unawaited coroutine RuntimeWarning on Python 3.13+ by replacing `run_coroutine_threadsafe` with `loop.run_until_complete()` in background thread context
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
- Python runtime upgraded to 3.13.13 (pyenv); CI `PYTHON_VERSION` updated to match
|
|
47
|
+
- Search relevance scoring model documented in `search/engine.py:_calculate_relevance()`
|
|
48
|
+
|
|
49
|
+
### Removed
|
|
50
|
+
- 48 stale historical docs (planning drafts, completed-work summaries, evaluation reports from 2025) superseded by root ROADMAP.md and TODO.md
|
|
51
|
+
|
|
52
|
+
## [1.13.0] - 2026-04-12
|
|
53
|
+
|
|
54
|
+
### Added
|
|
55
|
+
- `add_text` tool: append a text block to an existing note without fetching the full note first
|
|
56
|
+
- `list_tags` tool: list all tags with note counts, sortable by name or count
|
|
57
|
+
- `get_note_versions` tool: retrieve version history for a note (up to 10 versions with previews)
|
|
58
|
+
- `restore_version` tool: restore a note to a specific historical version
|
|
59
|
+
- `rename_tag` tool: rename a tag across all notes atomically, with `dry_run` preview support
|
|
60
|
+
- `get_or_create_note` tool: find an existing note by title or create it atomically to avoid duplicates
|
|
61
|
+
- `append_to_daily_note` tool: append a timestamped entry to today's daily note, creating it if needed
|
|
62
|
+
- `replace_section` tool: replace the content of a named Markdown section without touching other sections
|
|
63
|
+
- `find_untagged_notes` tool: list notes with no tags for housekeeping, with configurable limit
|
|
64
|
+
- `bulk_tag` tool: add, remove, or set tags on multiple notes in a single operation
|
|
65
|
+
- `restore_note` tool: un-trash a deleted note (reverses `delete_note`)
|
|
66
|
+
- Tag sanitization: spaces in tags are replaced with hyphens at input time
|
|
67
|
+
- `search_notes` supports `pinned`, `created_after`, and `modified_after` filter parameters
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
- Default `SNIPPET_MAX_LENGTH` increased from 100 to 300 characters for richer search result context
|
|
71
|
+
- `ResourceNotFoundError` now includes `resource_id` in all tool handlers for better error tracing
|
|
72
|
+
- `_parse_tags()` moved to `ToolHandlerBase` so all handlers can use consistent tag parsing
|
|
73
|
+
- Tool descriptions updated across all tools with use-vs-alternatives guidance
|
|
74
|
+
|
|
75
|
+
### Fixed
|
|
76
|
+
- `AddTagsHandler`, `RemoveTagsHandler`, `ReplaceTagsHandler` responses now include `tags_added`, `tags_removed`, `tags_now` fields for auditability
|
|
77
|
+
|
|
78
|
+
## [1.12.1] - 2026-04-08
|
|
79
|
+
|
|
80
|
+
### Fixed
|
|
81
|
+
- Replace deprecated `asyncio.get_event_loop()` with `asyncio.get_running_loop()` across
|
|
82
|
+
`cache.py`, `security.py`, `middleware.py`, `memory_monitor.py`, `log_monitor.py`, and
|
|
83
|
+
`server.py` — eliminates `DeprecationWarning` on Python 3.10+
|
|
84
|
+
- Fix memory leak in `SecurityValidator`: `failed_validation_attempts` buckets now capped
|
|
85
|
+
at 500 entries per event type, preventing unbounded growth in long-running servers
|
|
86
|
+
- Fix order-dependent test flake in `test_log_monitoring.py` via `reset_log_monitor()`
|
|
87
|
+
singleton reset in `setup_method`
|
|
88
|
+
- Fix 4 vacuous `assert True` assertions in `test_phase2_integration.py` with real checks
|
|
89
|
+
- Fix isolated test state for all `TestAuthorizationBoundaries` classes — global
|
|
90
|
+
`note_cache` and `simplenote_client` singletons now reset before each test
|
|
91
|
+
- Fix `TestConfigSingleton` isolation: add `setup_method` to reset `_config` before tests
|
|
92
|
+
- Fix mixed import style in `test_server_advanced.py` (code scanning alert)
|
|
93
|
+
|
|
94
|
+
### Security
|
|
95
|
+
- Memory leak in `SecurityValidator.failed_validation_attempts` patched — unbounded
|
|
96
|
+
accumulation could be exploited to exhaust server memory under sustained load
|
|
97
|
+
|
|
98
|
+
### Dependencies
|
|
99
|
+
- `mcp`: 1.26.0 → 1.27.0
|
|
100
|
+
- `aiohttp`: 3.13.4 → 3.13.5
|
|
101
|
+
- `requests`: 2.33.0 → 2.33.1
|
|
102
|
+
- `uvicorn`: 0.42.0 → 0.43.0
|
|
103
|
+
- `pydantic-core`: 2.44.0 → 2.45.0
|
|
104
|
+
- `more-itertools`: 10.8.0 → 11.0.1
|
|
105
|
+
- `marshmallow`: 4.2.3 → 4.3.0
|
|
106
|
+
- `mypy`: 1.19.1 → 1.20.0 (dev)
|
|
107
|
+
- `ruff`: 0.15.8 → 0.15.9 (dev)
|
|
108
|
+
- `pip-audit`: 2.9.0 → 2.10.0 (dev)
|
|
109
|
+
- `click`, `regex`, `charset-normalizer`, `pymdown-extensions`, `pydantic-core` updated
|
|
110
|
+
|
|
111
|
+
### Internal
|
|
112
|
+
- Add `pytest-randomly` to test dependencies; CI uses `--randomly-seed=$GITHUB_RUN_ID`
|
|
113
|
+
for reproducible randomised test ordering
|
|
114
|
+
- Harden coverage threshold to 75% hard-fail (was 65% warn-only)
|
|
115
|
+
- Add `tests/test_server_handlers.py`: 26 focused tests covering `get_simplenote_client`,
|
|
116
|
+
PID file management, signal handlers, `handle_list_tools` exception fallback,
|
|
117
|
+
`handle_call_tool` unknown-tool and `ServerError` paths, `handle_list_prompts`,
|
|
118
|
+
`handle_get_prompt` (all 3 branches), and `handle_read_resource` invalid-URI /
|
|
119
|
+
cache-miss / not-found paths
|
|
120
|
+
|
|
121
|
+
## [1.11.0] - 2026-02-25
|
|
122
|
+
|
|
123
|
+
### 🚀 Minor Release: New Tools, Dependency Refresh, and CI/CD Improvements
|
|
124
|
+
|
|
125
|
+
This release adds powerful new note management tools, a comprehensive dependency refresh, and resolves CI/CD pipeline failures.
|
|
126
|
+
|
|
127
|
+
### Added
|
|
128
|
+
- **🔍 Fuzzy search** — New `fuzzy_search_notes` tool using thefuzz for approximate string matching
|
|
129
|
+
- **📅 Natural language date parsing** — New `search_notes_by_date` tool with human-friendly date expressions (e.g. "last week", "yesterday")
|
|
130
|
+
- **📤 Note export** — New `export_notes` tool for bulk export in Markdown, plain text, or JSON formats
|
|
131
|
+
- **🔁 Duplicate detection** — New `find_duplicate_notes` tool to identify near-duplicate content across the note collection
|
|
132
|
+
|
|
133
|
+
### Fixed
|
|
134
|
+
- Resolved CI/CD pipeline failures caused by VERSION file corruption
|
|
135
|
+
- Added missing `python-dateutil` production dependency to `pyproject.toml`
|
|
136
|
+
- Resolved 3 CodeQL code scanning alerts
|
|
137
|
+
- Resolved mypy duplicate module detection and untyped import errors
|
|
138
|
+
- Addressed additional security review findings
|
|
139
|
+
|
|
140
|
+
### Dependencies
|
|
141
|
+
- 50+ dependency updates via Dependabot including:
|
|
142
|
+
- cryptography: 46.0.3 → 46.0.5 (security fix)
|
|
143
|
+
- nltk: 3.9.1 → 3.9.3 (security fix — GHSA-7p94-766c-hgjp)
|
|
144
|
+
- ruff: 0.14.14 → 0.15.1
|
|
145
|
+
- pydantic-core: 2.33.2 → 2.41.5
|
|
146
|
+
- uvicorn: 0.35.0 → 0.40.0
|
|
147
|
+
- typer: 0.19.1 → 0.23.1
|
|
148
|
+
- setuptools: 80.9.0 → 82.0.0
|
|
149
|
+
- cyclonedx-python-lib: 9.1.0 → 11.6.0
|
|
150
|
+
- psutil: 6.1.1 → 7.2.2
|
|
151
|
+
- pycparser: 2.22 → 3.0
|
|
152
|
+
- coverage: 7.13.1 → 7.13.4
|
|
153
|
+
- pre-commit: 4.2.0 → 4.5.1
|
|
154
|
+
- platformdirs: 4.4.0 → 4.9.1
|
|
155
|
+
- starlette, httpx-sse, packaging, pluggy, pyjwt and many more
|
|
156
|
+
|
|
157
|
+
### CI/CD
|
|
158
|
+
- Removed deprecated `safety` tool from security scanning workflow; fully replaced by `pip-audit`
|
|
159
|
+
- Updated pinned ruff version to `0.15.1` in `security.yml` and `auto-fix.yml` workflows, matching `pyproject.toml`
|
|
160
|
+
- Performance test threshold adjusted from `0.2s` to `0.5s` for 500-item listings to prevent flaky failures on slower CI runners
|
|
161
|
+
|
|
162
|
+
### Quality Assurance
|
|
163
|
+
- All 975 tests passing with 74% code coverage
|
|
164
|
+
- Zero linting errors (Ruff)
|
|
165
|
+
- Zero type checking errors (mypy)
|
|
166
|
+
- Zero open security alerts (CodeQL, Bandit, pip-audit)
|
|
167
|
+
- All CI/CD pipelines passing
|
|
168
|
+
|
|
169
|
+
## [1.10.1] - 2026-01-26
|
|
170
|
+
|
|
171
|
+
### 🔧 Patch Release: Security Fixes and Code Quality Improvements
|
|
172
|
+
|
|
173
|
+
This patch release resolves all CodeQL security alerts and improves code quality through cyclic import fixes.
|
|
174
|
+
|
|
175
|
+
### Security
|
|
176
|
+
- **Resolved all CodeQL code scanning alerts** (0 open alerts)
|
|
177
|
+
- Fixed `py/cyclic-import` issues between error handling modules
|
|
178
|
+
- Fixed `py/repeated-import` patterns across test files
|
|
179
|
+
- Fixed `py/empty-except` patterns with proper documentation
|
|
180
|
+
- Fixed `py/unnecessary-pass` and `py/unused-local-variable` findings
|
|
181
|
+
- **Docker image security improvements**
|
|
182
|
+
- Added `apt-get upgrade` to apply security patches in base image
|
|
183
|
+
- Pinned setuptools>=78.1.1 for jaraco.context CVE fix
|
|
184
|
+
- **Dismissed infrastructure CVEs** (no upstream fixes available)
|
|
185
|
+
- glibc CVEs in Debian base image (CVE-2026-0861, CVE-2026-0915, CVE-2025-15281)
|
|
186
|
+
- Vendored wheel CVE in setuptools (CVE-2026-24049)
|
|
187
|
+
|
|
188
|
+
### Fixed
|
|
189
|
+
- Resolved cyclic import between `errors.py` and `error_taxonomy.py` by moving `DEFAULT_RESOLUTION_STEPS` to `error_codes.py`
|
|
190
|
+
- Fixed CI/CD pipeline failures related to CodeQL and safety package compatibility
|
|
191
|
+
- Replaced `safety` with `pip-audit` for dependency vulnerability scanning
|
|
192
|
+
|
|
193
|
+
### Dependencies
|
|
194
|
+
- 47+ dependency updates via Dependabot including:
|
|
195
|
+
- starlette: 0.50.0 → 0.52.1
|
|
196
|
+
- coverage: 7.11.0 → 7.13.1
|
|
197
|
+
- pytest: 8.4.2 → 9.0.2
|
|
198
|
+
- ruff: 0.14.10 → 0.14.14
|
|
199
|
+
- bandit: 1.8.6 → 1.9.3
|
|
200
|
+
- mcp: Updated to latest version
|
|
201
|
+
- cryptography: Updated to 46.0.3
|
|
202
|
+
|
|
203
|
+
### Quality Assurance
|
|
204
|
+
- All 850 tests passing with 73% code coverage
|
|
205
|
+
- Zero linting errors (Ruff)
|
|
206
|
+
- Zero type checking errors (mypy)
|
|
207
|
+
- Zero open security alerts
|
|
208
|
+
- All CI/CD pipelines passing
|
|
209
|
+
|
|
210
|
+
## [1.10.0] - 2026-01-08
|
|
211
|
+
|
|
212
|
+
### 🔒 Security Release: Critical Vulnerability Fixes and Maintenance Updates
|
|
213
|
+
|
|
214
|
+
This release addresses a critical security vulnerability in urllib3 and includes comprehensive dependency updates from the past two months.
|
|
215
|
+
|
|
216
|
+
### Security
|
|
217
|
+
- **🔒 Critical**: Fixed CVE-2026-21441 in urllib3 dependency
|
|
218
|
+
- Upgraded urllib3 from 2.6.2 to >=2.6.3
|
|
219
|
+
- Addresses decompression bomb vulnerability in streaming API
|
|
220
|
+
- Prevents excessive resource consumption from malicious servers
|
|
221
|
+
- No known vulnerabilities remaining in dependencies
|
|
222
|
+
- Maintained security posture with zero high/critical Bandit findings in production code
|
|
223
|
+
- All credentials properly managed via environment variables (no hardcoded secrets)
|
|
224
|
+
|
|
225
|
+
### Dependencies
|
|
226
|
+
- Comprehensive dependency updates via Dependabot (20+ packages)
|
|
227
|
+
- certifi: 2025.11.12 → 2026.1.4
|
|
228
|
+
- filelock: 3.20.1 → 3.20.2
|
|
229
|
+
- sse-starlette: 3.0.4 → 3.1.2
|
|
230
|
+
- coverage: 7.13.0 → 7.13.1
|
|
231
|
+
- psutil: 7.1.3 → 7.2.1
|
|
232
|
+
- pyparsing: 3.2.5 → 3.3.1
|
|
233
|
+
- typer: 0.20.0 → 0.21.0
|
|
234
|
+
- uvicorn: 0.38.0 → 0.40.0
|
|
235
|
+
- python-multipart: 0.0.20 → 0.0.21
|
|
236
|
+
- pre-commit: 4.5.0 → 4.5.1
|
|
237
|
+
- mypy: 1.19.0 → 1.19.1
|
|
238
|
+
- ruff: 0.14.9 → 0.14.10
|
|
239
|
+
- nodeenv: 1.9.1 → 1.10.0
|
|
240
|
+
- mcp[cli]: Updated to latest version
|
|
241
|
+
|
|
242
|
+
### Fixed
|
|
243
|
+
- CI/CD: Restored DOCKER_README.md symlink for Docker Hub description
|
|
244
|
+
- CI/CD: Improved handling of disabled auto-merge in Dependabot workflow
|
|
245
|
+
- Types: Added missing type hints to http_endpoints.py
|
|
246
|
+
- CI/CD: Resolved workflow issues and improved GitHub Actions configuration
|
|
247
|
+
- CI/CD: Updated GitHub Actions dependencies (upload-artifact v5→v6, download-artifact v3→v4, cache v4→v5)
|
|
248
|
+
|
|
249
|
+
### Quality Assurance
|
|
250
|
+
- All 831 tests passing with 73% code coverage
|
|
251
|
+
- Zero linting errors (Ruff)
|
|
252
|
+
- Zero type checking errors (mypy)
|
|
253
|
+
- Zero high/critical security issues (Bandit, pip-audit)
|
|
254
|
+
- Comprehensive security review completed
|
|
255
|
+
|
|
256
|
+
## [1.9.0] - 2025-10-28
|
|
257
|
+
|
|
258
|
+
### 🎉 Major Release: Production-Ready with Critical Performance Fix
|
|
259
|
+
|
|
260
|
+
This release marks a significant milestone with **98% startup performance improvement** and comprehensive project health enhancements. The server is now **fully production-ready** for Claude Desktop integration.
|
|
261
|
+
|
|
262
|
+
### Fixed
|
|
263
|
+
- **🚀 Critical**: Resolved Claude Desktop timeout by making cache initialization truly async
|
|
264
|
+
- Run blocking Simplenote API calls in thread pool executor to avoid blocking event loop
|
|
265
|
+
- **Reduced server startup time from 55+ seconds to < 1 second** (98% improvement)
|
|
266
|
+
- Fixed `anyio.BrokenResourceError` during shutdown
|
|
267
|
+
- Fixed unawaited coroutine warnings in log monitor
|
|
268
|
+
- Allow graceful operation with empty cache during background loading
|
|
269
|
+
- See `CLAUDE_DESKTOP_TIMEOUT_FIX.md` for detailed technical analysis
|
|
270
|
+
|
|
271
|
+
### Added
|
|
272
|
+
- **📚 Complete documentation suite**
|
|
273
|
+
- Comprehensive CHANGELOG.md with full version history
|
|
274
|
+
- Production validation guide (`TESTING_CLAUDE_DESKTOP.md`)
|
|
275
|
+
- User feedback collection templates
|
|
276
|
+
- GitHub issue templates for bug reports and feature requests
|
|
277
|
+
- Discussion templates for community engagement
|
|
278
|
+
- Detailed project review and health metrics documentation
|
|
279
|
+
- **🔧 Code quality improvements**
|
|
280
|
+
- Phase 1 refactoring complete: Reduced high-complexity functions by 21%
|
|
281
|
+
- Cache module complexity reduced from CC 33 to < 10 (100% improvement)
|
|
282
|
+
- Maintainability Index improved from 12.7 to 16.2 (+28%)
|
|
283
|
+
- Extracted 23 helper methods for better code organization
|
|
284
|
+
- See `REFACTORING_PHASE1_COMPLETE.md` for details
|
|
285
|
+
- **📊 Enhanced monitoring and metrics**
|
|
286
|
+
- Automated complexity analysis script (`scripts/quality/check_complexity.py`)
|
|
287
|
+
- Performance benchmarking for startup time validation
|
|
288
|
+
- Comprehensive project review documentation
|
|
289
|
+
|
|
290
|
+
### Changed
|
|
291
|
+
- **✨ Project health status**
|
|
292
|
+
- Zero open issues maintained
|
|
293
|
+
- Zero open pull requests maintained
|
|
294
|
+
- Zero diagnostic errors in codebase
|
|
295
|
+
- All 756 tests passing with 69.64% coverage
|
|
296
|
+
- CI/CD pipeline running at 100% success rate
|
|
297
|
+
- **📦 Documentation improvements**
|
|
298
|
+
- Updated README with v1.9.0 highlights
|
|
299
|
+
- Enhanced troubleshooting guides
|
|
300
|
+
- Added production deployment best practices
|
|
301
|
+
- Improved contributor guidelines
|
|
302
|
+
|
|
303
|
+
### Performance
|
|
304
|
+
- **Startup time**: 55+ seconds → < 1 second (98% improvement)
|
|
305
|
+
- **Test coverage**: Maintained at 69.64% (670 tests)
|
|
306
|
+
- **Code complexity**: Functions CC ≥ 15 reduced from 28 to 22 (-21%)
|
|
307
|
+
- **Docker image size**: 346MB (optimized multi-stage build)
|
|
308
|
+
|
|
309
|
+
### Security
|
|
310
|
+
- Zero high/critical vulnerabilities
|
|
311
|
+
- All security scans passing (Bandit, Safety, CodeQL, Trivy)
|
|
312
|
+
- Enhanced input validation and rate limiting
|
|
313
|
+
- Regular automated security updates via Dependabot
|
|
314
|
+
|
|
315
|
+
### Documentation
|
|
316
|
+
- Complete version history in CHANGELOG.md
|
|
317
|
+
- Production validation guide
|
|
318
|
+
- User feedback collection process
|
|
319
|
+
- Issue and discussion templates
|
|
320
|
+
- Comprehensive project review (Grade A+)
|
|
321
|
+
|
|
322
|
+
## [1.8.1] - 2025-10-26
|
|
323
|
+
|
|
324
|
+
### Added
|
|
325
|
+
- Comprehensive quality automation and project improvements
|
|
326
|
+
- Added comprehensive cache coverage tests (14% → 83% coverage for cache module)
|
|
327
|
+
- Test performance script for startup validation
|
|
328
|
+
- Enhanced documentation for troubleshooting
|
|
329
|
+
|
|
330
|
+
### Changed
|
|
331
|
+
- Updated TODO.md with 2025-10-20 maintenance actions
|
|
332
|
+
- Upgraded actions/setup-node from v5 to v6 in CI/CD workflows
|
|
333
|
+
|
|
334
|
+
### Fixed
|
|
335
|
+
- Corrected Python 3.14 site-packages path in Docker builds
|
|
336
|
+
|
|
337
|
+
### Dependencies
|
|
338
|
+
- Upgraded MCP library from 1.14.0 to 1.18.0
|
|
339
|
+
- Upgraded Ruff from 0.14.0 to 0.14.1
|
|
340
|
+
- Upgraded pytest from 8.4.1 to 8.4.2
|
|
341
|
+
- Upgraded pytest-asyncio from 1.1.0 to 1.2.0
|
|
342
|
+
- Upgraded pytest-cov from 6.2.1 to 7.0.0
|
|
343
|
+
- Upgraded mypy from 1.18.1 to 1.18.2
|
|
344
|
+
- Upgraded coverage from 7.8.2 to 7.11.0
|
|
345
|
+
- Multiple dependency updates via Dependabot (pydantic, uvicorn, idna, etc.)
|
|
346
|
+
|
|
347
|
+
## [1.8.0] - 2025-10-19
|
|
348
|
+
|
|
349
|
+
### Changed
|
|
350
|
+
- Major dependency refresh to latest stable versions
|
|
351
|
+
- Improved metrics collection and monitoring
|
|
352
|
+
|
|
353
|
+
### Dependencies
|
|
354
|
+
- Updated multiple production and development dependencies to latest versions
|
|
355
|
+
|
|
356
|
+
## [1.7.0] - 2025-10-14
|
|
357
|
+
|
|
358
|
+
### Added
|
|
359
|
+
- CodeQL security analysis integration
|
|
360
|
+
- Enhanced CI/CD pipeline with security scanning
|
|
361
|
+
- Improved Docker multi-stage builds
|
|
362
|
+
|
|
363
|
+
### Fixed
|
|
364
|
+
- Resolved CodeQL and Trivy scanner failures in CI
|
|
365
|
+
- Fixed integration test failures in CI offline mode
|
|
366
|
+
- Updated workflow badge references in README
|
|
367
|
+
- Installed build package for CI and local testing
|
|
368
|
+
|
|
369
|
+
### Changed
|
|
370
|
+
- Upgraded Docker base image to Python 3.14-slim
|
|
371
|
+
- Upgraded GitHub Actions dependencies
|
|
372
|
+
|
|
373
|
+
## [1.6.0] - 2025-09
|
|
374
|
+
|
|
375
|
+
### Added
|
|
376
|
+
- MCP evaluations framework integration
|
|
377
|
+
- Comprehensive test suite with 700+ tests
|
|
378
|
+
- Performance monitoring and metrics collection
|
|
379
|
+
- Security hardening with multiple scanning tools
|
|
380
|
+
- HTTP endpoints for health and metrics
|
|
381
|
+
- Advanced search with boolean operators
|
|
382
|
+
- Tag filtering and pagination support
|
|
383
|
+
|
|
384
|
+
### Changed
|
|
385
|
+
- Improved cache performance with background synchronization
|
|
386
|
+
- Enhanced error handling and taxonomy
|
|
387
|
+
- Better logging and diagnostics
|
|
388
|
+
|
|
389
|
+
### Security
|
|
390
|
+
- Added Bandit security scanning
|
|
391
|
+
- Added pip-audit vulnerability scanning
|
|
392
|
+
- Added Trivy container scanning
|
|
393
|
+
- Implemented rate limiting and DoS protection
|
|
394
|
+
- Enhanced input validation and sanitization
|
|
395
|
+
|
|
396
|
+
## [1.5.0] - 2025-08
|
|
397
|
+
|
|
398
|
+
### Added
|
|
399
|
+
- Docker and Kubernetes deployment support
|
|
400
|
+
- Helm charts for production deployments
|
|
401
|
+
- Background cache synchronization
|
|
402
|
+
- Rate limiting middleware
|
|
403
|
+
- Security monitoring and alerting
|
|
404
|
+
|
|
405
|
+
### Changed
|
|
406
|
+
- Refactored server architecture for better modularity
|
|
407
|
+
- Improved error handling with custom error taxonomy
|
|
408
|
+
- Enhanced documentation with deployment guides
|
|
409
|
+
|
|
410
|
+
## [1.4.0] - 2025-07
|
|
411
|
+
|
|
412
|
+
### Added
|
|
413
|
+
- MCP protocol 2024-11-05 support
|
|
414
|
+
- Prompts capability for note templates
|
|
415
|
+
- Resources capability for note listing
|
|
416
|
+
- Tools capability for note management
|
|
417
|
+
- Basic caching implementation
|
|
418
|
+
|
|
419
|
+
### Changed
|
|
420
|
+
- Migrated to MCP Python SDK 1.0+
|
|
421
|
+
- Updated authentication to use environment variables
|
|
422
|
+
- Improved note search functionality
|
|
423
|
+
|
|
424
|
+
## [1.3.0] - 2025-06
|
|
425
|
+
|
|
426
|
+
### Added
|
|
427
|
+
- Tag management support
|
|
428
|
+
- Note filtering by tags
|
|
429
|
+
- Pagination for note lists
|
|
430
|
+
|
|
431
|
+
### Changed
|
|
432
|
+
- Improved note content parsing
|
|
433
|
+
- Better error messages
|
|
434
|
+
|
|
435
|
+
## [1.2.0] - 2025-05
|
|
436
|
+
|
|
437
|
+
### Added
|
|
438
|
+
- Note update functionality
|
|
439
|
+
- Note deletion (trash) functionality
|
|
440
|
+
- Search query support
|
|
441
|
+
|
|
442
|
+
### Changed
|
|
443
|
+
- Enhanced note listing with sorting
|
|
444
|
+
- Improved connection handling
|
|
445
|
+
|
|
446
|
+
## [1.1.0] - 2025-04
|
|
447
|
+
|
|
448
|
+
### Added
|
|
449
|
+
- Note creation capability
|
|
450
|
+
- Basic note listing
|
|
451
|
+
- Initial MCP integration
|
|
452
|
+
|
|
453
|
+
### Changed
|
|
454
|
+
- Refactored to use Simplenote Python library
|
|
455
|
+
- Improved logging
|
|
456
|
+
|
|
457
|
+
## [1.0.0] - 2025-03
|
|
458
|
+
|
|
459
|
+
### Added
|
|
460
|
+
- Initial release
|
|
461
|
+
- Basic Simplenote authentication
|
|
462
|
+
- Read-only note access
|
|
463
|
+
- Simple MCP server implementation
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
## Version History Summary
|
|
468
|
+
|
|
469
|
+
- **1.11.0** (Current) - 🚀 New tools (fuzzy search, date search, export, duplicates), dependency refresh, CI/CD fixes
|
|
470
|
+
- **1.10.1** - 🔒 Security fixes, CodeQL alerts resolved, dependency updates
|
|
471
|
+
- **1.10.0** - 🔒 Critical urllib3 CVE fix, comprehensive dependency updates
|
|
472
|
+
- **1.9.0** - 🎉 Production-ready release with 98% startup performance improvement
|
|
473
|
+
- **1.8.1** - Quality improvements, dependency updates, Claude Desktop fix preparation
|
|
474
|
+
- **1.8.0** - Major dependency refresh
|
|
475
|
+
- **1.7.0** - Security enhancements, CI/CD improvements
|
|
476
|
+
- **1.6.0** - Comprehensive testing, monitoring, advanced features
|
|
477
|
+
- **1.5.0** - Docker/Kubernetes support, production features
|
|
478
|
+
- **1.4.0** - Full MCP protocol implementation
|
|
479
|
+
- **1.3.0** - Tag management
|
|
480
|
+
- **1.2.0** - Note editing capabilities
|
|
481
|
+
- **1.1.0** - Note creation
|
|
482
|
+
- **1.0.0** - Initial release
|
|
483
|
+
|
|
484
|
+
[Unreleased]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.15.0...HEAD
|
|
485
|
+
[1.15.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.14.0...v1.15.0
|
|
486
|
+
[1.14.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.13.0...v1.14.0
|
|
487
|
+
[1.13.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.12.1...v1.13.0
|
|
488
|
+
[1.12.1]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.12.0...v1.12.1
|
|
489
|
+
[1.12.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.11.0...v1.12.0
|
|
490
|
+
[1.11.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.10.1...v1.11.0
|
|
491
|
+
[1.10.1]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.10.0...v1.10.1
|
|
492
|
+
[1.10.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.9.0...v1.10.0
|
|
493
|
+
[1.9.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.8.1...v1.9.0
|
|
494
|
+
[1.12.1]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.12.0...v1.12.1
|
|
495
|
+
[1.12.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.10.1...v1.12.0
|
|
496
|
+
[1.10.1]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.10.0...v1.10.1
|
|
497
|
+
[1.10.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.9.0...v1.10.0
|
|
498
|
+
[1.9.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.8.1...v1.9.0
|
|
499
|
+
[Unreleased]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.16.0...HEAD
|
|
500
|
+
[1.16.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.15.0...v1.16.0
|
|
501
|
+
[1.8.1]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.8.0...v1.8.1
|
|
502
|
+
[1.8.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.7.0...v1.8.0
|
|
503
|
+
[1.7.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.6.0...v1.7.0
|
|
504
|
+
[1.6.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.5.0...v1.6.0
|
|
505
|
+
[1.5.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.4.0...v1.5.0
|
|
506
|
+
[1.4.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.3.0...v1.4.0
|
|
507
|
+
[1.3.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.2.0...v1.3.0
|
|
508
|
+
[1.2.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.1.0...v1.2.0
|
|
509
|
+
[1.1.0]: https://github.com/docdyhr/simplenote-mcp-server/compare/v1.0.0...v1.1.0
|
|
510
|
+
[1.0.0]: https://github.com/docdyhr/simplenote-mcp-server/releases/tag/v1.0.0
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Thomas Juul Dyhr
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|