Skip to content

chore(deps): bump actions/upload-pages-artifact from 3 to 5#1

Open
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/github_actions/actions/upload-pages-artifact-5
Open

chore(deps): bump actions/upload-pages-artifact from 3 to 5#1
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/github_actions/actions/upload-pages-artifact-5

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Apr 15, 2026

Bumps actions/upload-pages-artifact from 3 to 5.

Release notes

Sourced from actions/upload-pages-artifact's releases.

v5.0.0

Changelog

See details of all code changes since previous release.

v4.0.0

What's Changed

Full Changelog: actions/upload-pages-artifact@v3.0.1...v4.0.0

v3.0.1

Changelog

See details of all code changes since previous release.

Commits
  • fc324d3 Merge pull request #139 from Tom-van-Woudenberg/patch-1
  • fe9d4b7 Merge branch 'main' into patch-1
  • 0ca1617 Merge pull request #137 from jonchurch/include-hidden-files
  • 57f0e84 Update action.yml
  • 4a90348 v7 --> hash
  • 56f665a Update upload-artifact action to version 7
  • f7615f5 Add include-hidden-files input
  • 7b1f4a7 Merge pull request #127 from heavymachinery/pin-sha
  • 4cc19c7 Pin actions/upload-artifact to SHA
  • 2d163be Merge pull request #107 from KittyChiu/main
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot 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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

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>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Apr 15, 2026
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants