rename(547): the server is grimoire — package, image, DB defaults, backups
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 12s
CI & Build / TypeScript typecheck (push) Successful in 56s
CI & Build / integration (push) Successful in 1m4s
CI & Build / Python tests (push) Successful in 1m55s
CI & Build / Build & push image (push) Successful in 44s
CI & Build / Python lint (push) Successful in 3s
CI & Build / Plugin hooks (push) Successful in 12s
CI & Build / TypeScript typecheck (push) Successful in 56s
CI & Build / integration (push) Successful in 1m4s
CI & Build / Python tests (push) Successful in 1m55s
CI & Build / Build & push image (push) Successful in 44s
Step 2 of the Scribe -> Grimoire rename. - src/scribe -> src/grimoire, and every import, patch target, module path, hypercorn entry point and `python -m grimoire.restore` with it; pyproject, uv.lock and the frontend package are named grimoire. - Image git.fabledsword.com/bvandeusen/fabledgrimoire; CI's Postgres service runs as grimoire / grimoire_test. - Compose files default the DB user, database and (prod) volume to grimoire, each overridable from .env, so an install created as Scribe keeps its data by setting POSTGRES_USER, POSTGRES_DB and PGDATA_VOLUME. - Backups are written as grimoire-<ts>.tar with format grimoire-backup-tar. Archives named scribe-* with the scribe-backup-tar manifest still restore and are still counted at the destination (folder and S3), with tests. - Exports, the MCP auth realm, the ASGI scope key and the persistent logger carry the new name. Kept on purpose: the secret-sealing key label stays "scribe.secrets.v1", because every stored secret was derived under it. Plugin identity (plugin name, hooks, env vars, .scribe marker, skills) is step 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,9 +37,9 @@ async def _sweep_sql(**kwargs):
|
||||
return result
|
||||
|
||||
session.execute = _execute
|
||||
with patch("scribe.services.notes.async_session") as cls:
|
||||
with patch("grimoire.services.notes.async_session") as cls:
|
||||
cls.return_value = session
|
||||
from scribe.services.notes import notes_due_for_verification
|
||||
from grimoire.services.notes import notes_due_for_verification
|
||||
await notes_due_for_verification(user_id=7, **kwargs)
|
||||
return captured["sql"]
|
||||
|
||||
@@ -166,11 +166,11 @@ async def _mark(note, still_true=True, writable=True):
|
||||
result = MagicMock()
|
||||
result.scalars.return_value.first.return_value = note
|
||||
session.execute = AsyncMock(return_value=result)
|
||||
with patch("scribe.services.notes.async_session") as cls, \
|
||||
patch("scribe.services.access.can_write_note",
|
||||
with patch("grimoire.services.notes.async_session") as cls, \
|
||||
patch("grimoire.services.access.can_write_note",
|
||||
AsyncMock(return_value=writable)):
|
||||
cls.return_value = session
|
||||
from scribe.services.notes import mark_note_verified
|
||||
from grimoire.services.notes import mark_note_verified
|
||||
return await mark_note_verified(note_id=1, user_id=7,
|
||||
still_true=still_true), session
|
||||
|
||||
@@ -225,7 +225,7 @@ def test_the_row_carries_the_check_in_full():
|
||||
verify_with="curl the AMO docs", expires_when="AMO allows re-signing",
|
||||
verified_at=datetime.now(timezone.utc) - timedelta(days=74),
|
||||
)
|
||||
from scribe.services.notes import verification_row
|
||||
from grimoire.services.notes import verification_row
|
||||
row = verification_row(note)
|
||||
assert row["verify_with"] == "curl the AMO docs"
|
||||
assert row["expires_when"] == "AMO allows re-signing"
|
||||
@@ -236,7 +236,7 @@ def test_a_never_checked_row_says_never_not_none():
|
||||
"""None means "this is a decision, the question does not apply"; "never"
|
||||
means "it asserts a fact and nobody has confirmed it". The second is the
|
||||
one worth acting on, and collapsing them loses the sweep's point."""
|
||||
from scribe.services.notes import verification_row
|
||||
from grimoire.services.notes import verification_row
|
||||
row = verification_row(fake_note(verify_with="a check", verified_at=None))
|
||||
assert row["last_verified"] == "never"
|
||||
assert row["days_since_verified"] is None
|
||||
|
||||
Reference in New Issue
Block a user