Skip to content

Make REPL syntax discovery reflect entry availability - #1065

Merged
taras merged 2 commits into
mainfrom
codex/repl-syntax-1053
Nov 1, 2026
Merged

taras merged 2 commits into
mainfrom
codex/repl-syntax-1053

Conversation

@taras

@taras taras commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

REPL syntax discovery describes the components available to ordinary entries. Named Assert and AssertEquals references explain their Markdown-test context and provide a complete REPL.Test example; ordinary entries retain their existing admission rules.

Discovery uses finalized entry installations and current session components. Same-named session components retain precedence, selected Plugins agree with execution, and permission refusal remains distinct from missing resolution. CLI run-profile assertions remain available. The integration preserves both this feature and main’s nested Output journeys.

Validation: the original feature feedback at f49c528 passed 48 focused tests / 197 steps, Deno source checks, Node typechecking, changed-file lint and formatting. Production-boundary journeys cover ordinary execution, named test references, unknown names, denied file writes, component refresh and Plugin selection. The documented test example executes with one attempt and zero replacement retries. The integrated head 5317150 passed 20 affected tests / 92 steps and both typechecks; the original Planner accepted the feature and the integration at their exact heads.

Independent Astra review passes 5317150 with no actionable correctness or minimalism findings. Measurements are not applicable to this on-demand documentation change; no timing or memory assurance is claimed. Required CI is green at the same reviewed head.

Fixes #1053.

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown

PR #1065: Make REPL syntax discovery reflect entry availability

7 files, +386 / -50

Scope

🟡 436 lines changed. PRs under 400 receive more thorough review.

Structural

Oxlint structural signals:

  • no-unused-vars ×1: packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
  • no-empty-function ×1: packages/cli/src/repl-profile.ts
  • no-unnecessary-type-assertion ×1: packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts

Slop

✅ Slop indicators look low.

Static Analysis

Oxlint: 7 diagnostics across 2 files (6 rules)
Density: 0.018 violations/added-line

no-unsafe-type-assertion (2): packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
no-unused-vars (1): packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
no-array-sort (1): packages/cli/src/repl-profile.ts
no-empty-function (1): packages/cli/src/repl-profile.ts
unbound-method (1): packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
no-unnecessary-type-assertion (1): packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts

Correctness

FILE: packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
PATTERN: signal cluster
CONCERN: Multiple Oxlint violations in same file (no-unused-vars, unbound-method, no-unnecessary-type-assertion)
QUESTION: Are these violations due to unreviewed generated code or redundant test scaffolding?

FILE: packages/cli/src/repl-profile.ts
PATTERN: no-array-sort
CONCERN: Unnecessary array sort in syntax discovery logic
QUESTION: Is the sort operation required for correct behavior or an extraneous abstraction?

FILE: packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
PATTERN: no-unnecessary-type-assertion
CONCERN: Redundant type assertion in syntax documentation
QUESTION: Could readable type be inferred without explicit satisfies assertion?

FILE: packages/cli/tests/fixtures/repl/issue-883/sidekick-harness.ts
PATTERN: no-unused-vars
CONCERN: Unused variable in test harness setup
QUESTION: Is held variable properly utilized throughout test lifecycle?

@taras taras left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correctness/minimalism review: PASS for 5317150. No actionable findings.

The ordinary REPL catalog now uses its actual registry, finalized includes, and entry installations. Named documentation adds test-component references while retaining ordinary symbols for identity-based availability. Ordinary overrides remain authoritative, unknown names refuse the whole lookup, and descriptive lookup does not install test execution behavior into ordinary entries. The change reuses the existing inspection and reference APIs without adding a public API.

Evidence reviewed: the published seven-file diff, selection/registration/reference implementations and callers, repository contracts, and supplied focused results. At this head, the REPL journey and CLI syntax suites passed (20 tests, 92 steps), with Deno and Node typechecks. Earlier feature-revision evidence separately covers 48 tests/197 steps and the bounded admission, denied-write, and REPL.Test experiment; those results are not attributed to this head. I did not repeat tests or wait for CI.

Performance: measurements are not applicable. The changed construction is reached on explicit documentation requests; rendering, input, ordinary dispatch, and cleanup paths are unchanged. No concrete performance-sensitive affected caller was found. No benchmarks or profilers were run, and no timing or memory claim is made.

Main health and required CI checks remain merge gates.

@taras
taras marked this pull request as ready for review November 1, 2026 23:21
@taras
taras merged commit 2e67bab into main Nov 1, 2026
58 checks passed
@taras
taras deleted the codex/repl-syntax-1053 branch November 1, 2026 23:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make REPL syntax discovery distinguish unavailable components

1 participant