release: Ledger interface and commercial hardening - #83
Conversation
There was a problem hiding this comment.
Coding-Dev-Tools has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
💡 Codex Review
engraphis/engraphis/service.py
Line 5168 in b345ad2
When a workspace has no entity rows and the graph falls back to mem_links, an as_of request still filters both endpoint memories against the current wall clock. The Time view consequently omits links whose memories were valid at the selected date but are closed now, and can include currently live links even when they were not valid at that date; the fallback nodes also lack temporal metadata to correct this client-side. Use temporal_anchor for these validity predicates when supplied.
AGENTS.md reference: AGENTS.md:L145-L147
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0315467116
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5e33d80823
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9487ac8940
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8e950123df
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 77952b4ce6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c47031d55f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b8fffae943
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d745f2a0eb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # This process binds all container interfaces. Even though the published host port is | ||
| # loopback-only, require an explicit bearer so a changed port mapping cannot silently | ||
| # expose the legacy v1 API. Compose fails before creating the container if it is absent. | ||
| ENGRAPHIS_API_TOKEN: ${ENGRAPHIS_API_TOKEN:?Set ENGRAPHIS_API_TOKEN before starting the api profile} |
There was a problem hiding this comment.
Move the API token check behind profile activation
On a fresh clone without ENGRAPHIS_API_TOKEN, the documented default docker compose up is blocked even though engraphis-api belongs to an inactive profile: Compose interpolates the entire file before selecting active profiles, and ${VAR:?error} aborts when the variable is unset or empty (Docker Compose interpolation syntax). Enforce the token only when the API-profile container actually starts rather than during global interpolation.
Useful? React with 👍 / 👎.
| if not _loopback(args.host) and not os.environ.get("ENGRAPHIS_API_TOKEN", "").strip(): | ||
| ap.error("non-loopback serving requires ENGRAPHIS_API_TOKEN") |
There was a problem hiding this comment.
Load the project token before rejecting non-loopback starts
When ENGRAPHIS_API_TOKEN is configured only in the project .env, this check runs before engraphis.config is imported and therefore sees an empty process environment, rejecting a secured --host 0.0.0.0 launch even though the app's configuration loader would load that token immediately afterward. Load dotenv/config before this check or validate settings.api_token instead.
AGENTS.md reference: AGENTS.md:L36-L38
Useful? React with 👍 / 👎.
| state.graphWorkspace = ''; | ||
| state.graphData = null; | ||
| state.graphDataIncludeCode = false; | ||
| state.graphDataShowUnlinked = false; | ||
| state.selectedMemory = ''; |
There was a problem hiding this comment.
Clear scoped Ask results when switching workspaces
After asking a question in workspace A and then switching to workspace B, this transition resets graph and Library state but leaves answer-panel and retrieval-list untouched, so A's answer and citations remain displayed under B; an in-flight Ask request can also repopulate them after the switch because askMemory() has no workspace/epoch guard. Clear these panels and invalidate outstanding Ask requests during the workspace transition.
AGENTS.md reference: AGENTS.md:L148-L149
Useful? React with 👍 / 👎.
Summary
This PR publishes the audited 1.1.2 Ledger release candidate.
/classic.Final graph hardening
Show unlinked nodesaction that reloads the correct graph payload.Why
The review found several subtle graph correctness and reliability regressions: future evidence could appear in a historical view, old relations could crowd out live ones, and the unlinked-node control did not consistently affect either loading or rendering. This change makes the reviewed release candidate reliable and accurately documented.
User impact
Ledger users get one working unlinked-node action, a readable connected-only overview by default, and trustworthy historical graph views. Classic remains available without the removed complete-graph control.
Validation
python -m pytest tests -qnpx playwright test tests/e2e/ledger.spec.js tests/e2e/graph-engine.spec.js— 22 passedruff check .git diff --checkpython -m eval.harness --dataset eval/datasets/sample.jsonl --k 5python -m eval.harness --dataset eval/datasets/codemem.jsonl --k 5python -m eval.ablation