Skip to content

Remove unused YAGNI types and config fields #51

Closed

Description

@rhuss

Summary

Architecture review found unused types and config fields that expand the public API surface without implementation backing.

Finding 1: Unused option types

File: types/options.go

CreateOptions, GetOptions, DeleteOptions, and UpdateOptions are empty structs never accepted by any method. They mislead users into thinking they can configure something.

Fix: Remove from types/options.go and v1/options.go. Add back when a method actually accepts them.

Finding 2: Unused Config fields

File: types/config.go:13-18

Config.Timeout, Config.RetryPolicy, and Config.Logger are marked "reserved for future use" but silently ignored by NewClient. Users setting Timeout: 5*time.Second get no timeout behavior.

Fix: Remove Timeout, RetryPolicy, Logger from Config. Remove RetryPolicy struct from types/types.go. Add back when implemented.

Finding 3: Unused WatchOptions fields

File: types/options.go:29-34

WatchOptions.TimeoutSeconds and WatchOptions.LabelSelector are reserved but never read by Watch.

Fix: Remove the reserved fields, leaving only StopOnTerminal.

Source

Multi-agent code review (Architecture agent), PR NVIDIA/OpenShell#2271

Activity

  1. rhuss commented on Aug 5, 2026

    @rhuss
    OwnerAuthor

    Those are will be filled by the second drop.

  2. rhuss commented on Aug 8, 2026

    @rhuss
    OwnerAuthor

    Deferred to the next upstream contribution PR. These types exist in the upstream NVIDIA/OpenShell repo (merged in Drop A) with // reserved for future use comments. Removing them here would just re-introduce them on the next proto sync. Added to brainstorm/030-upstream-review-findings.md for tracking.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions