Skip to content

mcpx: shebang-first interpreter dispatch + script.interpreter + script.cwd (split of #1919) #2167

Closed

Description

@dezren39

Split of #1919 (Approach C, parts 1–3) by triage task 2814 on 2026-10-29. Full analysis, dispatch table, and open questions live on #1919; this issue tracks only the dispatch slice.

Scope

  1. Dispatch order: (1) source/file starts with #! → that interpreter verbatim; (2) script.interpreter setting (command line; --shell/--interpreter only as registry aliases — no per-language flag family); (3) script.language / file extension (rank reserved for mcpx: Python as a first-class script language, 1:1 with TypeScript #1917); (4) configured TypeScript runtime — today's behaviour, unchanged when unset.
  2. Harness posture for non-JS interpreters: MCPX_ENDPOINT/MCPX_SESSION/MCPX_SOCKET/MCPX_RUNTIME + args in the environment, same execsvc stdout/stderr/exit/timeout machinery, and the absence of the generated client stated once rather than discovered.
  3. script.cwd policy: caller | script | config | workdir, default caller.

Out of scope: daemon-side file resolution (#1919 part 4 — the sibling split issue), Python parity (#1917).

Acceptance criteria

Activity

  1. added
    enhancementNew feature or request
    priority/normalOrdinary priority (the default)
    queue/queuedHas a queued task in the Supabase agent queue
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    on Oct 29, 2026
  2. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  3. added
    work/assignedQueue worker lifecycle state
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 30, 2026
  4. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked (not started, lane budget)

    • Agent: openchamber scheduled lane (queue worker repo-worker-code)
    • Session / ID: queue task 3201 (small_fix, mcpx: shebang-first interpreter dispatch + script.interpreter + script.cwd (split of #1919) #2167 parts 1-3 of mcpx: exec should run any shebang, and resolve file scripts the same way local or remote #1919) — claimed with ~12 min left in a 30-min lane, parked 20 min, no branch created
    • Why not started: this is a 45-minute body of work (dispatch order + script.interpreter in the settings registry + script.cwd policy + non-JS env/exec handling + tests). Two earlier tasks in this shift were blocked on the repo-wide CI runner stall, which left no honest window for it; a half-built branch would be worse than none.
    • Recon for the next lane: the packet cites runner.Detect returning three JS runtimes — that symbol does not exist on main 3a425552. internal/runner/runtimes.go exposes ParseSetup, Setup.lookup, Resolve(prefer, permSpec, s) and build(candidate, perms); there is no per-language dispatch function there. Start by finding the actual dispatch site (grep for the configured TypeScript runtime across internal/cli, internal/execsvc, internal/api) before implementing, and treat the packet's file:line evidence as stale until confirmed.
    • Also: the repo's Actions pool was stalled all shift (24 runs queued, no non-skipped job completing since ~05:10Z), so any PR opened here would have parked on CI too.
    • Resume: confirm the dispatch site → implement shebang > script.interpreter > script.language/extension > configured TS runtime → script.cwd → tests.
  5. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Oct 30, 2026
  6. 235 remaining items

  7. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Oct 31, 2026
  8. dezren39 commented on Oct 31, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: parked
    task: 3201 (repo-health-code-pilot, lane B)
    state: Parked 20m on CI. Run 41211362870: all jobs complete except final: CI time budget (queued, runner backlog). stress: PR changed tests FAILED but its log is unavailable until the run completes, so the failing tests are not yet identified. Codex clean on 0847133; lint, plugin tests, docs build pass; laptop post-merge execsvc/runner/daemon PASS (lane F).
    resume: run 41211362870 complete -> read stress job 124566873865 log -> if failures are only the filed main-baseline family (#2846/#2716/#2697) or the proven one-off flake, merge -> close #2167 -> complete fixed_merged; if a PR-touched test failed, fix on branch queue/3201-2167-shebang-dispatch first.

  9. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Oct 31, 2026
  10. dezren39 commented on Oct 31, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  11. dezren39 commented on Oct 31, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)enhancementNew feature or requestpriority/normalOrdinary priority (the default)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions