chore(deps): bump actions/upload-pages-artifact from 3 to 5#1
Open
dependabot[bot] wants to merge 1 commit into
Open
chore(deps): bump actions/upload-pages-artifact from 3 to 5#1dependabot[bot] wants to merge 1 commit into
dependabot[bot] wants to merge 1 commit into
Conversation
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 5. - [Release notes](https://github.com/actions/upload-pages-artifact/releases) - [Commits](actions/upload-pages-artifact@v3...v5) --- updated-dependencies: - dependency-name: actions/upload-pages-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
kostadis
pushed a commit
that referenced
this pull request
Apr 29, 2026
The bash auto-save hooks (`mempal_save_hook.sh`, `mempal_precompact_hook.sh`) hardcode `--palace "$MEMPAL_CHAT_PALACE"` per design-doc invariant #1, but the Python harness used by the Cursor and Codex wrappers (`mempalace.hooks_cli`) was shelling out to `mempalace mine` without a palace flag. With the loud-fail config landed in f7d9d0a that path errors out at runtime; with a permissive `default_palace` set, it would silently mine session transcripts into whichever curated palace the precedence chain resolved to — exactly the cross-pollination invariant #1 forbids. Add `_chat_palace_path()` mirroring the legacy bash hooks' resolution (`MEMPAL_CHAT_PALACE` override, falls back to `~/.mempalace/palaces/chat`) and wire it into all three hook-fired mine sites: - `_maybe_auto_ingest` — background mine on Stop - `_mine_sync` — synchronous mine on PreCompact - `_ingest_transcript` — transcript ingest from every Stop/PreCompact `_chat_palace_path` deliberately ignores `MEMPALACE_PALACE_PATH` (the generic top-of-precedence env var) so a user who sets that for an unrelated reason cannot accidentally redirect hook-driven writes. Adds eight regression tests covering default chat resolution, the `MEMPAL_CHAT_PALACE` override, the `MEMPALACE_PALACE_PATH` non-effect, and end-to-end `--palace` injection on all three callsites. Made-with: Cursor
kostadis
pushed a commit
that referenced
this pull request
May 2, 2026
- Resolve UU conflict in hooks_cli.py: take develop/HEAD approach (mine synchronously via _mine_sync, then pass through unconditionally). _mine_sync already catches subprocess.TimeoutExpired — fixes Copilot #1. - Add tests/test_palace_locks.py: 4 tests covering mine_global_lock non-blocking semantics (acquire, second-acquire raises MineAlreadyRunning, reusable after release, release on exception) — fixes Copilot #4. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
kostadis
pushed a commit
that referenced
this pull request
May 2, 2026
…ut, tests Addresses the six Copilot review comments on the initial commit. 1) #6 (critical) — mcp_server.py `_get_collection` bypassed ChromaBackend The MCP server creates its palace collection directly via `chromadb.PersistentClient.get_or_create_collection` in `_get_collection`, not through `ChromaBackend.get_collection`. That path was missing the `hnsw:num_threads=1` metadata, so the primary crash surface for #974 and #965 was untouched by the original patch. Fixed by passing `hnsw:num_threads=1` at the mcp_server create site too. Documented in a code comment that the setting is only honored at creation time — existing palaces created before this fix still need a `mempalace nuke` + re-mine to gain the protection. 2) #3 — mine_global_lock over-serialized mines across unrelated palaces Replaced the single global lock file `mine_global.lock` with a per-palace lock keyed by `sha256(os.path.abspath(palace_path))` (`mine_palace_<hash>.lock`). Mines against the same palace still collapse to a single runner (the correctness boundary), but mines against *different* palaces are now free to run in parallel. `mine_global_lock` is kept as a backward-compatible alias for `mine_palace_lock` so any external callers that imported the previous name keep working. 3) #1 — hook_precompact swallowed OSError but not subprocess.TimeoutExpired `subprocess.run(..., timeout=60)` raises `TimeoutExpired` on slow palaces. The previous `except OSError` clause didn't catch it, so the hook could raise and fail to emit any JSON decision — leaving the harness without a block/passthrough signal. Fixed by catching `(OSError, subprocess.TimeoutExpired)` together and always falling through to the block decision so the hook reliably emits a response. 4) #2 + #4 — tests - tests/test_hooks_cli.py: added `test_precompact_first_two_attempts_block`, `test_precompact_passes_through_after_cap`, and `test_precompact_counter_is_per_session` to lock in the #955 deadlock fix. - tests/test_palace_locks.py (new): covers `mine_palace_lock` single-acquire, reuse-after-release, cross-process serialization on the same palace, non-interference across different palaces, path normalization, and the `mine_global_lock` back-compat alias. 5) #5 — known limitation, documented but not auto-fixed Copilot suggested detecting collections missing `hnsw:num_threads=1` and calling `collection.modify(metadata=...)` to retrofit existing palaces. Verified against chromadb 1.5.7: `modify(metadata=...)` replaces metadata rather than merging, and re-passing `hnsw:space="cosine"` then raises `ValueError: Changing the distance function of a collection once it is created is not supported currently.` The HNSW runtime configuration (`configuration_json`) also does not expose `num_threads` in chromadb 1.5.x, so the flag appears to be read only at creation time. Rather than paper over the limitation with a best-effort `modify` that silently drops `hnsw:space`, documented in the mcp_server comment that pre-existing palaces need a `mempalace nuke` + re-mine to gain the protection. Fresh palaces are always protected. Testing - pytest tests/test_palace_locks.py tests/test_hooks_cli.py tests/test_backends.py tests/test_cli.py → **98 passed, 0 failed**. - Runtime validation with two concurrent `mempalace mine` calls: - Different palaces → both complete in parallel ✓ - Same palace → one completes, the other exits with "another `mine` is already running against <palace> — exiting cleanly." ✓
kostadis
pushed a commit
that referenced
this pull request
May 2, 2026
The bash auto-save hooks (`mempal_save_hook.sh`, `mempal_precompact_hook.sh`) hardcode `--palace "$MEMPAL_CHAT_PALACE"` per design-doc invariant #1, but the Python harness used by the Cursor and Codex wrappers (`mempalace.hooks_cli`) was shelling out to `mempalace mine` without a palace flag. With the loud-fail config landed in f7d9d0a that path errors out at runtime; with a permissive `default_palace` set, it would silently mine session transcripts into whichever curated palace the precedence chain resolved to — exactly the cross-pollination invariant #1 forbids. Add `_chat_palace_path()` mirroring the legacy bash hooks' resolution (`MEMPAL_CHAT_PALACE` override, falls back to `~/.mempalace/palaces/chat`) and wire it into all three hook-fired mine sites: - `_maybe_auto_ingest` — background mine on Stop - `_mine_sync` — synchronous mine on PreCompact - `_ingest_transcript` — transcript ingest from every Stop/PreCompact `_chat_palace_path` deliberately ignores `MEMPALACE_PALACE_PATH` (the generic top-of-precedence env var) so a user who sets that for an unrelated reason cannot accidentally redirect hook-driven writes. Adds eight regression tests covering default chat resolution, the `MEMPAL_CHAT_PALACE` override, the `MEMPALACE_PALACE_PATH` non-effect, and end-to-end `--palace` injection on all three callsites. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps actions/upload-pages-artifact from 3 to 5.
Release notes
Sourced from actions/upload-pages-artifact's releases.
Commits
fc324d3Merge pull request #139 from Tom-van-Woudenberg/patch-1fe9d4b7Merge branch 'main' into patch-10ca1617Merge pull request #137 from jonchurch/include-hidden-files57f0e84Update action.yml4a90348v7 --> hash56f665aUpdate upload-artifact action to version 7f7615f5Addinclude-hidden-filesinput7b1f4a7Merge pull request #127 from heavymachinery/pin-sha4cc19c7Pinactions/upload-artifactto SHA2d163beMerge pull request #107 from KittyChiu/mainDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)