Skip to content

Clarify or implement runtime semantics for gateway.enabled and gateway.home #193

@MicroMilo

Description

@MicroMilo

Problem

gateway.enabled and gateway.home can be represented/saved through the config/UI, but the runtime does not currently consume these fields.

This appears to be an accidental config/runtime contract mismatch rather than intentional behavior: users can save fields that look operational, but they do not affect gateway startup, lifecycle, or home directory resolution.

Current Behavior

  • gateway.enabled can be present in config.
  • gateway.home can be present in config.
  • Runtime gateway parsing/startup does not use these fields.
  • Gateway behavior is instead driven by other fields such as bindAddress, port, idleSessionTimeout, staticAssetsPath, and maxPerSessionMcpInstances.
  • gateway.home is not clearly connected to existing PILOT_HOME path resolution.
  • gateway.enabled does not affect an already-started CLI gateway process.

Expected Behavior

These fields should either be removed from the user-facing config surface or given explicit runtime semantics.

Possible intended semantics:

  1. gateway.enabled and gateway.home are not supported runtime controls:

    • Remove them from the UI/config editor, or mark them as reserved/unsupported.
    • Avoid suggesting that changing them will affect runtime behavior.
  2. gateway.enabled and gateway.home are supported:

    • Define whether gateway.home is equivalent to or derived from PILOT_HOME.
    • Define whether gateway.enabled controls only UI-managed gateway lifecycle or also CLI startup.
    • Implement runtime behavior and status reporting accordingly.

Impact

Users may believe they can disable the gateway or switch the PilotDeck home directory through config, while the actual runtime continues unchanged. This is especially confusing for multi-instance setups, isolated test environments, and debugging config reload issues.

Evidence / Code Areas

Relevant areas to inspect:

  • UI/config surface that saves gateway.enabled and gateway.home
  • Runtime gateway config parser
  • CLI gateway startup path
  • Existing PILOT_HOME / PilotDeck home resolution helpers
  • Gateway status and reload reporting

Product Decision Needed

Please decide whether these fields are supported runtime controls or unsupported/reserved config fields.

Acceptance Criteria

  • gateway.enabled and gateway.home no longer create false expectations.
  • Either the UI/config no longer exposes them as effective runtime controls, or runtime behavior explicitly supports them.
  • If supported, documentation and tests cover the exact lifecycle/path semantics.
  • Runtime status/API responses make the effective gateway state clear.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions