Files
club-3090/docs
noonghunna 8a9ea6ca45 chore(chat-template): re-vendor latest froggeric Qwen3.6 template for re-eval (#150)
Re-vendors the froggeric Qwen3.6 chat template from the latest upstream
snapshot for maintainer re-evaluation only.

Provenance:
- Previous upstream revision: unrecoverable. The existing local snapshot was
  introduced by local commit 84498d47aa with
  SHA256 94e944287ffaf8c3ed8b5840a0c92fd4ca3caefa721f4f5e31e92605e63f1ad4,
  but no exact upstream commit/release match was found in available froggeric
  qwen3.5/qwen3.6 archive v8-v19 or main history.
- New upstream revision: c31fd393e531dbacd92b6deb99a2037cc949f950,
  timestamp 2026-05-16T13:44:07Z, release label v19,
  SHA256 4649b3fa3db3fda4d51173ed4ff0175fde7ece8bbceb9d595d04d862020c9746.

Structured diff summary:
- System/tools setup: system/developer content is now extracted once and
  reused for tool and non-tool paths; tool definitions render function payloads
  rather than raw tool wrappers when present.
- enable_thinking gate: ns_flags now tracks has_tools, last_tool_failed, and
  consecutive_failures in addition to enable_thinking. The template still
  honors enable_thinking plus think_on/think_off markers, but preserve_thinking
  now defaults toward preserving non-empty reasoning unless explicitly false.
- Tool-call and streaming-sensitive formatting: tool instructions now require
  reasoning inside a think block before a tool call, final answers immediately
  after closing think when no tool is needed, and one fully closed tool_call per
  function. Tool-call emission is normalized to newline-started XML blocks.
  No explicit streaming branch was added, but these boundary/whitespace changes
  should be covered by the #145 streaming/tool-call smoke.
- Reasoning delimiters: the template now handles </think>, </thinking>,
  malformed </ think>, and </think > endings, removes embedded tool_call
  content from assistant text when structured tool calls are present, and avoids
  emitting empty historical think blocks.
- Qwen 4: no Qwen 4-specific branch was found in the upstream template.
- Whitespace/Jinja control: multiple spacing and newline changes affect
  system/tool prompts, think/content boundaries, tool_call boundaries, and the
  thinking-disabled generation prompt. Treat tokenization and prefix-cache
  behavior as validation targets.

Validation:
- bash scripts/tests/test-patch-attribution.sh

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 22:47:30 +00:00
..

club-3090 docs index

Two tracks. Pick the one that matches what you're doing.

  • User track"I have GPUs and a model; how do I serve it?"
  • Contributor / maintainer track"I'm working on the v0.8.0 pull pipeline, patches, or the calibration loop."

Every link below resolves to a file in this repo.


User track

Start here if you want to run a model.

Doc What it is
PULL.md Start here for any model not in the curated list. The v0.8.0 universal flow: evaluate any safetensors HF repo against this stack's KV math, honest about confidence.
SINGLE_CARD.md 1× RTX 3090 — workload → curated config → quick start.
DUAL_CARD.md 2× RTX 3090 (PCIe / no NVLink) — workload → config → quick start.
MULTI_CARD.md 3+ GPUs — TP scaling math, derivation from dual.yml, valid TP values.
HARDWARE.md Card-class questions — 4090/5090, power caps, NVLink, laptop EC power.
GLOSSARY.md TPS / KV / MTP / TP and the rest of the vocabulary.
FAQ.md Common setup and operational questions.
COMPARISONS.md Self-host vs cloud APIs — cost crossover and when each wins.
EXAMPLES.md Worked end-to-end usage examples.

Contributor / maintainer track

The v0.8.0 pull pipeline (in pipeline order)

A model slug flows through these stages. Read them in order to understand the whole.

Stage Doc What it owns
[D] COMPOSE_GENERATOR.md The #141 compose generator — the substrate that owns the arch→patches matrix.
Gate PULL_GATE.md scripts/pull.sh — the locked 6-stratum abort taxonomy, [C0]/[C2a]/[B]/[C1] gates, §4.1 confidence×verdict table.
[E] PULL_EMIT_DERIVED.md Download → boot → smoke for a download-eligible derived model; writes the §6 capture artifacts.
[F] LOOP.md The calibration loop — reads the capture bundle, classifies, runs the inbound-trust pipeline, dedups failures into the tracker.

Patch & model contribution

Doc What it is
PATCH_POLICY.md When/how a patch ships, the local-overlay vs upstream rules.
PATCH_ATTRIBUTION.md The Phase-A patch-attribution matrix — arch → engine-pin → required patches.
ADDING_MODELS.md How a new model gets added to the curated catalog.
KV_MATH.md The KV-cache math the [B] fit verdict is computed from.

Stack reference & ops

Doc What it is
ARCHITECTURE.md Repo/stack architecture overview.
UPSTREAM.md Upstream PR / issue tracker for this stack.
NIGHTLY_BUMP_RUNBOOK.md Procedure for bumping the vLLM nightly pin.
CI_RUNNER_SETUP.md CI runner provisioning.
CONTAINER_RUNTIMES.md Docker / container runtime notes.

Reference matrices & deep dives

These are cross-cutting references both tracks reach for.

Doc What it is
engines/ Per-engine deep dives — vLLM, llama.cpp, SGLang.
INFERENCE_ENGINES.md Engine picker — which engine for which workload, and structural gaps.
CLIFFS.md The accumulated-context / prefill failure modes (Cliff 2, Cliff 2b) and how to detect them.
DTYPE_MATRIX.md Supported dtype × model × engine matrix.
KERNEL_MATRIX.md Quant-kernel availability and alignment constraints.
QUALITY_TEST.md The quality-test harness and what it measures.
STRUCTURED_COT.md The bounded-thinking / structured-CoT compose path.
TQ3_MTP_GENESIS.md TQ3 KV × MTP × Genesis-patch results and config.