perf(cli): avoid eager API imports - #146
Merged
Paul-Kyle merged 1 commit intoAug 23, 2026
Merged
Conversation
Import the wiki footer and category maps from their core definitions so ordinary CLI startup does not initialize FastAPI or the provenance UI. Keep the historical API re-export intact and add an isolated subprocess regression for the import boundary. Signed-off-by: WilliamK112 <164879897+WilliamK112@users.noreply.github.com>
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.
Summary
palinode.api.server_MEMORY_CATEGORY_DIRSbeside_TYPE_TO_CATEGORYinpalinode.core.memory_write, while preserving the historical API re-exportpalinode.cliimport loads neither FastAPI norpalinode.api.serverFixes #143.
Import-time measurement
Measured with Python 3.11 using five fresh post-warmup subprocesses per revision:
palinode.cliimport time 331 ms (323-367 ms)palinode.cliimport time 188 ms (187-210 ms)Before this change, the trace included
palinode.api.server(about 78-81 ms cumulative in the measured runs). After the change, that module is absent; a direct module check also reports bothfastapiandpalinode.api.serveras unloaded.Validation
ruff check palinode/ tests/ scripts/bandit -r palinode/ -llgit diff --checkAI assistance disclosure: I used OpenAI Codex to help inspect the import graph, implement the scoped change, run measurements, and validate the patch. I reviewed the final diff and evidence before submitting.