Skip to content

feat(harness-ops): supply the restart consumer's and lanes telemetry's --app-slug from a lane_app_slug userConfig key #8002

Description

@kyle-sexton

This was generated by AI during attend-queue.

Refs: #7207
Depends on: #7999

Agent Brief

Type: Feature
Summary: harness-ops declares a lane_app_slug userConfig key and passes it as --app-slug to the restart consumer and the lanes telemetry upsert.

Current behavior:
The restart consumer accepts --app-slug and carries it into the commands it prints, but only an operator passing the flag supplies it. No harness-ops userConfig key holds it.

Desired behavior:
The harness-ops manifest declares an optional string key lane_app_slug. The lanes skill's restart-consumer and telemetry-upsert invocations pass --app-slug '${user_config.lane_app_slug}'. An empty or literal-placeholder value is treated as absent in both scripts. The README's userConfig table lists the key.

Key interfaces:

  • harness-ops userConfig: new lane_app_slug (string, optional).
  • Restart consumer and lanes telemetry upsert: treat an empty or placeholder --app-slug as absent.

Acceptance criteria:

  • plugins/harness-ops/.claude-plugin/plugin.json declares an optional string userConfig key lane_app_slug, and the README userConfig table lists it. Check: the PR's CI runs scripts/validate-plugins.sh and it passes.
  • plugins/harness-ops/skills/lanes/SKILL.md passes --app-slug '${user_config.lane_app_slug}' at the restart-consumer and telemetry-upsert invocations (around :202 and :406). Check: the PR's CI runs the check-skills job and it passes.
  • restart-consumer.sh and telemetry-upsert.sh treat an empty or literal ${user_config.lane_app_slug} value as absent, and each test file has a placeholder-slug case. Check: the PR's CI runs restart-consumer.test.sh and telemetry-upsert.test.sh and both pass.
  • A harness-ops fragment exists (scripts/new-changelog-fragment.sh harness-ops minor), and scripts/check-changelog-fragments.sh --check passes.

Out of scope:

  • work-items and source-control keys.
  • Adding --app-slug to the telemetry upsert itself (the item this depends on).

This was generated by AI during backlog shaping. Split from #7207; the owner approved filing it in an attended backlog-shaping session on 2026-10-18.

Activity

  1. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    work-class: mechanicalDeterministic, trivially reversible maintenance: dependency bumps, lint/format, sync.
    on Oct 18, 2026
  2. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 22, 2026
  3. github-actions commented on Oct 25, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (attempt 1 of 2).

  4. github-actions commented on Oct 25, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: mechanical
    Basis: automated intake triage; the lanes App applied this class.

    Size: Small
    Complexity: Low
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: add an optional lane_app_slug userConfig key to harness-ops, pass it as --app-slug in the lanes skill's restart-consumer and telemetry-upsert calls, and have both scripts treat an empty or placeholder value as absent. The change also covers README docs, tests and a changelog fragment. The acceptance criteria are specific and checkable. The dependency #7999 doesn't appear among the open issues, so I treated it as not blocking. No likely duplicates found.

    Automated triage, applied by the lanes App.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: mechanicalDeterministic, trivially reversible maintenance: dependency bumps, lint/format, sync.

    Fields

    No fields configured for Feature.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions