feat(openaxe): port upstream permission, config, and session-resume features - #17
Merged
Conversation
Three changes remove startup serialization:
- Pre-start import("@/server/server") at config-mod so its module eval
overlaps the worker boot instead of blocking the first internal fetch
- Prewarm the shared instance boot (7 warm GETs + AppRuntime build,
fire-and-forget, warms before runtime imports) so the sync's first
requests hit a boot already in progress
- Mark the TUI sync "complete" after the blocking batch; the non-blocking
tail (sessions, lsp, mcp, vcs...) streams in without gating the model
Measured (idle machine, OPENAXE_STARTUP_TIMING=1): sync-blocking-done
16846ms -> 8810ms, ready 8974ms -> 6447ms, TTF 7430ms -> ~5800ms.
Also adds env-gated startup-timing marks across openaxe and tui
(OPENAXE_STARTUP_TIMING=1, tee'd to OPENAXE_STARTUP_TIMING_LOG) for
regression measurement.
Route learning reviews through the AI SDK (generateText) with an optional experimental.learning.provider config, falling back to the agent's own provider/model. Replaces the raw chat/completions fetch and API-key plumbing.
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
Ports 4 high-priority upstream (anomalyco/opencode) features into openaxe, based on the feature-research report (v1.16–v1.18 train). The other 4 recommended features were already present in openaxe (bound tool output, MCP abort/OAuth/pagination, previous-agent tracking, bounded compaction) — verified, no changes needed.
Changes
Permissions (
bcfdd0fff)experimental.subagent_depth_limit(v1.18.2): off by default; when set,task/kanban-swarm reject spawning subagents past the depth limit with a clear error.Config (
5d47b076b)configBoundary: truein a config file stops upward config traversal — directories above the boundary file are not merged.Session resume (
e856b26c5)POST /session/:sessionID/resume+ CLI integration —openaxe run --continue <session>with no message re-enters the drain when the last assistant turn was interrupted/pending; returns false (and the existing "You must provide a message or a command" error) when nothing is pending. SDK regenerated.Verification
bun run typecheck(turbo, 13 packages): clean, run in pre-commit on every commit.bun test: 231 pass / 0 fail across the 6 touched test files (config, plan-mode-subagent-bypass, permission/next, tool/task, tool/kanban-swarm, httpapi-session) — real HttpApi server, real tmpdirs, real parentID chains, no mocks.