kubeflow / kubeflow/docs-agent

[Pre-work] Codebase cleanup before GSoC project work begins

Open
#72 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
42
Forks
111
Avg merge
6d 23m
Merged PRs (30d)
2

Description

Context

Before any new features land, there are 6 structural problems in the existing codebase that will block or corrupt downstream work if left unresolved. This issue tracks all of them.

These are not improvements — they are fixes to things that are already broken or ambiguous. Zero new features.

  • Estimated: Week 1–2.

Execution Order

The order matters. Each item either unblocks the next or can safely run in parallel.

#72 ── ADR-008 (decide storage pattern)
         ↓
       #28 ── Standardize MilvusClient across all servers
         ↓
       #73 ── Kustomize restructure          ←┐
         ↓                                    │ parallel
       #74 ── _init() race condition    ───────┘
       #75 ── httpx per-request client  ── (parallel with #73/#74)
         ↓
       #76 ── CORS tightening  (needs Kustomize overlays first)
Why this order
  • ADR first — two storage patterns (store_milvus vs store_via_feast) co-exist after PR #58. Every pipeline issue downstream assumes one canonical path. Can't write that code until this decision is documented.
  • MilvusClient (#28) secondserver/app.py and server-https/app.py still use the legacy connections.connect() global state API. The _init() race (#74) and the 3-collection schema both inherit this bug. Fix the API first.
  • Kustomize (#73) before CORS (#76) — the clean CORS fix is an env var injected per overlay (localhost in dev, production domain in OCI). Without overlays, you're hardcoding values.
  • Concurrency bugs (#74, #75) before agent layer — the Kagent-managed agent layer builds directly on top of these servers. Fix races now so the agent doesn't inherit them.

Child Issues

# What Depends On Blocks
#72 (this) ADR-008 — formalize pymilvus over Feast #28, pipeline work
#28 Standardize MilvusClient across all servers #72 #74, ISSUE-06
#73 Restructure manifests/ into Kustomize base/overlay #28 #76, ISSUE-03/04/05
#74 Fix _init() race condition in mcp-server/server.py #28 Kagent agent layer
#75 Fix httpx.AsyncClient per-request in server-https/app.py #28 Kagent agent layer
#76 Replace allow_origins=["*"] with env-var allowlist #73 ISSUE-16

ADR-008 Task (this issue)

  • PR #58 merged a Feast POC (store_via_feast()) but the project is continuing with direct pymilvus.
    The decision is implicitly made but never written down.

Action:

  • Write docs/adr/ADR-008-vector-store-selection.md
  • Document: context, decision (MilvusClient/pymilvus), rationale (proven,
    lighter deps, thread-safe), future path (Feast when feast[milvus] hits GA)
  • Mark kagent-feast-mcp/pipelines/ as legacy/optional in a comment
  • Reference ADR-008 in README.md

Acceptance Criteria

  • docs/adr/ADR-008-vector-store-selection.md exists and is merged
  • kagent-feast-mcp/pipelines/kubeflow-pipeline.py has a legacy comment

Child Issues

  • #72
    • (this) — ADR-008: formalize pymilvus over Feast
  • #28
  • #73
  • #74
  • #75
  • #76

Note: closed before project work starts

References

  • PR #58 — merged Feast POC that created the ambiguity
  • GSoC design discussion: #59
  • ADR format reference

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the ADR format reference and PR #58 for the storage decision context. Create docs/adr/ADR-008-vector-store-selection.md, add the requested legacy comment to kagent-feast-mcp/pipelines/kubeflow-pipeline.py, and reference the ADR in README.md. Done means the ADR exists with the listed sections and the acceptance criteria are satisfied.

Written by the indexing model from the issue text.

Assessment

Tech stack
markdown, python
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
Half a day
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.