Mix tasks¶
These commands require a source checkout. Packaged-release equivalents are listed where available.
| Task | Purpose |
|---|---|
memhouse.identity.bootstrap |
Create the Account and first administrator |
memhouse.portability.export |
Write a whole-Account logical archive |
memhouse.portability.import |
Load or verify an archive |
memhouse.eval.smoke |
Developer sanity pass over the real write/read path |
memhouse.eval.benchmark |
Run one benchmark fixture and score it |
memhouse.eval.release |
Run the deterministic release matrix |
memhouse.eval.verify |
Validate a report's provenance |
memhouse.release.check |
Fail unless the tree is releasable |
Packaged standalone releases additionally provide bin/update --check and
bin/update --version MAJOR.MINOR.PATCH; these are not Mix tasks.
memhouse.identity.bootstrap¶
Provisions the community Account, first password identity, root administrator grant with downward propagation, and a 12-hour bearer token.
CARTULARY_BOOTSTRAP_PASSWORD='a long password' \
mix memhouse.identity.bootstrap \
--email admin@example.test \
--name 'Local Admin'
| Switch | Notes |
|---|---|
--email, -e |
Required. Becomes the sign-in identity and, normalised, the peer key |
--name, -n |
Display name. Defaults to the email |
--password |
Prefer the environment variable — an argument is visible in shell history and the process list |
There is no fallback password. Re-running for an existing email raises. The whole bootstrap is one transaction, so a failure never leaves a half-created administrator.
In a release: call MemHouse.Identity.bootstrap_human/1 through
bin/memhouse rpc — see the
Quickstart.
memhouse.portability.export¶
Default output is memhouse-export-YYYY-MM-DD.tar.gz in the working
directory. Read inside one Account-scoped transaction, so the snapshot is
internally consistent.
In a release:
bin/memhouse rpc 'MemHouse.Release.export!("/secure/path/account.tar.gz")'
See Export and import for what is included.
memhouse.portability.import¶
mix memhouse.portability.import --input /secure/path/account.tar.gz
mix memhouse.portability.import --input /secure/path/account.tar.gz --validate-only
Before writing, import verifies the manifest, every resource and blob hash, and the complete audit hash chain.
Import requires a fresh target: migrated, with no Account holding the archived id or occupying the community slot. It refuses rather than blending two histories.
In a release: MemHouse.Release.import!/1 and
MemHouse.Release.validate_archive!/1 through bin/memhouse rpc.
memhouse.eval.smoke¶
A developer sanity check, not a graded evaluation: it ingests a few messages, asks a few questions, and prints what came back. No scores, no thresholds.
It writes real rows
There is no dry-run mode and no cleanup. Point it at a scratch database, and never reuse an Account key that holds real user data.
memhouse.eval.benchmark¶
Runs one fixture end to end through the ordinary write and answer paths and
scores it. Recognised shapes: LoCoMo, LongMemEval, ConvoMem, BEAM, and
MemHouse's own {"messages": [...], "questions": [...]}.
| Switch | Notes |
|---|---|
--dataset, -d |
Required. Hashed, so the report names the exact data |
--benchmark, -b |
Inferred from shape when omitted |
--profile, -p |
Default balanced |
--account |
Default eval-benchmark |
--run-id |
Seeds the scope root; give concurrent runs distinct ids |
--limit-cases / --limit-messages / --limit-questions |
Truncate for a fast loop — recorded in the report, because a truncated run is not comparable |
--no-model |
Deterministic local extractor and answerer |
Also writes real rows. Same warning applies.
memhouse.eval.release¶
mix memhouse.eval.release \
--no-model \
--assert-thresholds \
--output /private/tmp/memhouse-release-eval.json
Runs specs/eval/release-suite.json against floors in
specs/eval/deterministic-thresholds.json. Only release guardrails block;
ablations inform.
memhouse.eval.verify¶
Checks that a report carries enough provenance to be quotable: application version, timestamp, benchmark, retrieval profile and version, deadline, strategy override, run limits, dataset id with SHA-256 and split, all four model-role identities, judge, and metrics.
Provenance only — it re-runs nothing and compares nothing to a floor.
memhouse.release.check¶
mix memhouse.release.check --eval-report /private/tmp/memhouse-release-eval.json
mix memhouse.release.check --tag v0.3.0 --eval-report /private/tmp/...
Fails unless mix.exs, changelog, documentation, git tag, and evaluation
evidence describe one release. There is no warning-only outcome.
--allow-missing-eval exists for metadata-only lanes; a real release must
supply the report.