Skip to content

chore: sync upstream v3.3.6 (ruff pin + COCA hoist) - #222

Merged
jphein merged 1 commit into
mainfrom
chore/sync-upstream-3.3.6
May 26, 2026
Merged

chore: sync upstream v3.3.6 (ruff pin + COCA hoist)#222
jphein merged 1 commit into
mainfrom
chore/sync-upstream-3.3.6

Conversation

@jphein

@jphein jphein commented May 26, 2026

Copy link
Copy Markdown
Collaborator

Summary

Syncs techempower-org/mempalace:main with upstream MemPalace/mempalace:main v3.3.6 release.

Three commits brought in:

Conflicts resolved

Two files conflicted on the entity_detector import line:

  • mempalace/miner.py
  • mempalace/palace.py

Both upstream and fork hoisted COCA imports to module level, but the fork additionally imports _apply_known_systems_prepass (our Tier 3 linguistics cleanup for multi-word compound entities like "Claude Code", "GitHub Copilot"). Resolution keeps both imports — the hot-path concern from upstream is satisfied because both helpers are already at module level, and the fork's compound pre-pass is preserved.

Third conflict at palace.py:364 was the call site of _apply_known_systems_prepass itself, kept on the fork side.

Test plan

  • CI green (lint + tests)
  • No regression in entity extraction (known-systems compounds still detected)

Upstream refs: MemPalace#1610, MemPalace#1614

Copilot AI review requested due to automatic review settings May 26, 2026 12:42
@gemini-code-assist

Copy link
Copy Markdown

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

…ot paths

Two release-blocking fixes for v3.3.6:

1. CI ruff pin drift
   .github/workflows/ci.yml installed ruff==0.15.9 while pyproject.toml
   [dev] extras and .pre-commit-config.yaml both pin 0.15.14. Ruff's
   formatter output can change between minor versions, so a contributor
   running `pip install -e ".[dev]"` and formatting locally with 0.15.14
   would produce output the 0.15.9 lint job rejects. Same failure mode
   that surfaced on PR MemPalace#1579 (2026-05-22). Aligning CI to 0.15.14 keeps
   the three pin sites in lock-step.

2. COCA filter imports inside per-drawer hot paths
   PR MemPalace#1605 (COCA content-word filter, shipping in 3.3.6) introduced
   `from .entity_detector import _get_coca_filter` and
   `from .palace import _candidate_entity_words` inside
   _extract_entities_for_metadata (called per drawer) and
   build_closet_lines (called per closet). Python caches module imports
   so the runtime cost after the first call is small, but the import
   machinery still runs Python bytecode every invocation — gemini
   flagged this on the original PR. Hoisting to module-level removes
   the per-call import overhead.

   The hoist is identical to PR MemPalace#1612, which targets develop. Folding
   it into the release so 3.3.6 doesn't ship the perf regression that
   3.3.7 would immediately have to fix.

Verification: ruff check + format clean on 0.15.14, full pytest
(2258 passed / 12 skipped) on Linux Py 3.9 / 3.11 / 3.13 via
`pip install -e ".[dev]"` (CI-matching).
@jphein
jphein force-pushed the chore/sync-upstream-3.3.6 branch from f7922ec to 29f0538 Compare May 26, 2026 13:36
@jphein
jphein merged commit f7e971f into main May 26, 2026
7 checks passed
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.

3 participants