Skip to content

chore(release): sync main back to develop after v3.3.5 - #1442

Merged
igorls merged 17 commits into
developfrom
chore/sync-3.3.5-back-to-develop
May 10, 2026
Merged

chore(release): sync main back to develop after v3.3.5#1442
igorls merged 17 commits into
developfrom
chore/sync-3.3.5-back-to-develop

Conversation

@igorls

@igorls igorls commented May 10, 2026

Copy link
Copy Markdown
Member

Summary

Merges main back into develop after the v3.3.5 release shipped (#1434). Mirrors the 25bfd37 chore(release): sync 3.3.4 version bump back into develop pattern from last cycle.

What this brings to develop

From the 3.3.5 release prep:

  • CHANGELOG.md — corrected KG date validator entry on the v3.3.5 section (per Copilot review on chore(release): 3.3.5 #1434). The shipped entry now accurately describes sanitize_iso_temporal() (accepts YYYY-MM-DD + canonical UTC datetimes, rejects partials/naive/non-UTC) instead of the pre-fix(kg): accept ISO datetimes for temporal inputs #1417 wording that survived into the original release-prep commit.
  • CHANGELOG.md[3.3.4] date corrected from 2026-05-01 (my mistake from UTC publishedAt) to 2026-04-30 (the canonical local date the maintainer originally tagged).

Catching up older 3.3.4-cycle work that was on main but never synced back:

The 25bfd37 "sync 3.3.4 version bump" commit moved the version number but not the CHANGELOG/code tweaks that landed on chore/release-3.3.4-prep. Those are coming over now:

Conflicts

None. ort merge strategy resolved cleanly — main has everything from develop plus these additions.

Test plan

  • Local merge clean — no conflicts
  • CI green on Linux 3.9/3.11/3.13, Windows, macOS, lint

After merge

develop is fully aligned with the shipped 3.3.5 state. Next cycle's CHANGELOG entries can start under a new ## [3.3.6] — unreleased header at the top.

For the next release, suggest the existing release-prep pattern should explicitly include a post-release sync PR in the runbook so this drift doesn't accumulate again.

bensig and others added 17 commits April 20, 2026 11:46
release: v3.3.3 — sync develop → main for tag cut
Bumps every version source from 3.3.3 to 3.3.4:
- pyproject.toml
- mempalace/version.py (canonical)
- .claude-plugin/plugin.json
- .claude-plugin/marketplace.json
- .codex-plugin/plugin.json
- README.md badge

Dates the CHANGELOG section and adds entries for the bug fixes that
landed this cycle (#1135, #1191, #1230, #1231) plus expands the #1194
entry to credit the lookup-side recovery path from #1197.

Pre-tag verification:
- 1441 passed, 1 skipped (full suite minus benchmarks, all platforms)
- ruff check + format clean
- 44/44 in test_version_consistency + test_readme_claims (6-file sync)
- JPH invariant: pyproject.toml + .claude-plugin/plugin.json both
  reference mempalace-mcp
- Wheel build + fresh-venv install: mempalace --version reports 3.3.4,
  mempalace-mcp --help works (catches the v3.3.2-class regression)
Agent-Logs-Url: https://github.com/MemPalace/mempalace/sessions/01a1089d-da46-4dc8-85e8-d7e50763dd58

Co-authored-by: igorls <4753812+igorls@users.noreply.github.com>
The fix landed this cycle and is documented under 3.3.4. The 3.3.0
Bug Fixes block is shipped history and shouldn't grow new entries
retroactively.
The PR documenting the fix is #1232; referencing it from inside its
own changelog entry is circular.
Three fixes landed on develop after the initial release-prep cut and
were brought in via the develop merge. Document them in the 3.3.4
Bug Fixes section so the release notes reflect what users will
actually receive.

- #1287 - HNSW divergence floor scales with hnsw:sync_threshold
  (resolves a silent-fallback regression introduced by the
  interaction between #1191 and #1227 in this release)
- #1262 - ChromaBackend get_or_create_collection split, fixing the
  stop-hook SIGSEGV class on legacy palaces with mismatched stored
  metadata (#1089)
- #1288 / #1254 - repair --mode max-seq-id heuristic now decodes
  BLOB-typed embeddings.seq_id, restoring the un-poison path added
  in #1135 for palaces where chromadb 1.5.x writes seq_ids natively
The release was originally cut on 2026-04-27 but did not tag that day.
Three additional bug fixes have been folded in since then (#1262,
#1287, #1288) and the actual tag will happen on 2026-04-30. Update
the header date to match.
The same try/except split that #1262 applied at the backend layer
(ChromaBackend.get_collection) was needed at the parallel call site
in mcp_server._get_collection(create=True), which carries the same
metadata payload directly to chromadb's Python client. Both reopen
paths in mempalace now bypass get_or_create_collection on existing
collections, closing the SIGSEGV class for both tool_add_drawer
and tool_diary_write (the Stop hook's path).
# Conflicts:
#	.claude-plugin/marketplace.json
#	.claude-plugin/plugin.json
#	.codex-plugin/plugin.json
#	CHANGELOG.md
#	README.md
#	mempalace/version.py
#	pyproject.toml
#	uv.lock
Copilot review on PR #1434 caught that the existing 3.3.5 entry
described the validator as it was authored under #1167 — accepting
``YYYY``/``YYYY-MM``/``YYYY-MM-DD`` and rejecting ISO datetimes — but
PR #1417 (closes #1374) merged into develop on 2026-05-10 and
inverted that: ``sanitize_iso_temporal()`` now rejects partial dates
and accepts canonical UTC datetimes (``YYYY-MM-DDTHH:MM:SSZ`` /
``+00:00``). ``sanitize_iso_date()`` is kept as a backwards-compat
wrapper.

Update the bullet to describe the *shipped* behavior, name both
functions, list both accepted and rejected forms, and call out the
3.3.4 → 3.3.5 behavior change for partial-date inputs that now error.
Reference both #1167 (original) and #1374/#1417 (the expansion).
Copilot AI review requested due to automatic review settings May 10, 2026 23:37
@igorls
igorls requested a review from milla-jovovich as a code owner May 10, 2026 23:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Syncs main back into develop after the v3.3.5 release so develop reflects the shipped release state (including the changelog corrections and the release-review follow-up fixes/tests that previously only existed on main).

Changes:

  • Update CHANGELOG.md to reflect the shipped KG temporal validator behavior (sanitize_iso_temporal() semantics) and correct the v3.3.4 release date.
  • Align wing normalization in palace_graph with the shared normalize_wing_name() rule (and treat empty/whitespace-only inputs as unset).
  • Add/adjust regression tests around None documents in CLI search output and tool_check_duplicate behavior when vector search is disabled.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/test_searcher.py Adds regression coverage for CLI search rendering when Chroma returns None documents.
tests/test_palace_graph_tunnels.py Adds a focused test for the updated wing normalization behavior in palace_graph.
tests/test_mcp_server.py Adds a regression test ensuring tool_check_duplicate short-circuits when vector search is disabled.
mempalace/palace_graph.py Switches _normalize_wing to use shared normalize_wing_name() and handle blank inputs.
mempalace/mcp_server.py Updates typing for _vector_capacity_status and reorders tool_check_duplicate to probe vector-disabled status before touching Chroma.
mempalace/entity_detector.py Updates documented detect_entities() output shape to include topics.
CHANGELOG.md Corrects KG temporal validation entry and fixes the v3.3.4 date.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request enhances the MCP knowledge-graph tools by implementing more robust temporal validation via sanitize_iso_temporal(), which now supports full ISO-8601 UTC datetimes while rejecting partial or naive inputs. The entity_detector was updated to include a 'topics' category, and tool_check_duplicate in the MCP server now correctly short-circuits when vector search is disabled. Additionally, wing name normalization was standardized using a shared utility, and several tests were added to verify these changes and prevent crashes when handling null documents in search results. I have no feedback to provide.

@igorls
igorls merged commit bc5c354 into develop May 10, 2026
10 checks passed
@igorls igorls added this to the v3.3.6 milestone May 15, 2026
pull Bot pushed a commit to FaZios/mempalace that referenced this pull request May 27, 2026
Brings in the three commits that landed on main during the v3.3.6
release cycle but not on develop:

  - 62a555c fix(release): align ruff pin to 0.15.14 + hoist COCA
            imports out of hot paths (MemPalace#1614)
  - a1cf052 Merge pull request MemPalace#1614 from MemPalace/fix/release-3.3.6-ruff-pin-align
  - db1fbe8 Merge pull request MemPalace#1610 from MemPalace/release/3.3.6

Resolves conflicts in miner.py and palace.py where develop's MemPalace#1613
(known-systems lexicon, Tier 3) had added _apply_known_systems_prepass
to module-top imports + the prepass call in build_closet_lines. Main
side had only the COCA hoist from MemPalace#1614. Resolution: keep develop's
side (the prepass additions).

Mirrors the v3.3.5 sync-back pattern (MemPalace#1442).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants