Tags

Tags give the ability to mark specific points in history as being important
  • v0.6.8

    v0.6.8 — CI only: pipeline split, Codeberg mirror, archiving, mirror issue pull-back
  • v0.6.7

    v0.6.7 — fix missing Codex install command in README
  • v0.6.6

    v0.6.6 — Claude Code + Codex plugin manifests, README agent integrations section
  • v0.6.5

    v0.6.5 — CI status badge
  • v0.6.4

    8b2063a9 · v0.6.4: add README badges ·
    v0.6.4 — README badges
  • v0.6.3

    v0.6.3 — shorten server.json description to <=100 chars (MCP Registry limit)
  • v0.6.2

    v0.6.2 — list on the official MCP Registry (server.json + OIDC publish)
  • v0.6.1

    v0.6.1 — third-party license notices (THIRD_PARTY.md + LICENSES/)
  • v0.6.0

    v0.6.0 — MCP server + agent skill + plugin
  • v0.5.2

    v0.5.2 — republish v0.5.1 code
    
    No source change. v0.5.1 tag on remote points at an incomplete
    intermediate commit (638687a) that was missing the touch_events /
    touch_count smc work + tests; the complete code is at 53f1ecf on
    main but never got tagged because the second tag attempt aborted
    on "tag already exists".
    
    v0.5.2 tags main at the complete code so the CI-published Docker
    image matches the v0.5.1 changelog entry. Pin consumers to
    psyb0t/wickworks:v0.5.2.
  • v0.5.1

    v0.5.1 — surface OB mitigation flags + per-OB touch_count
    
    Additive schema change to the order-block primitive: every OB now ships
    with three freshness signals so consumers can pick their criterion:
    
      - mitigated_wick : later bar's wick traversed the zone (lib loose)
      - mitigated_close: later bar's body broke past (lib strict)
      - touch_count    : number of distinct touch events (trader-eye)
    
    The two lib flags fire only on INVALIDATING breaks (price went past
    the zone in the wrong direction). touch_count fires on ANY range
    intersection — captures "price visited this level" without requiring
    a full break.
    
    Cost: one extra smc.ob() call (mitigation_close) + a numpy edge-count
    per OB (touch_count). Sub-ms total. OB cap raised 20 -> 40 since we no
    longer pre-filter.
    
    Breaking for FE renderers that assumed every emitted OB was live.
    Quanthex consumer updated to gate on wick + use touch_count for graded
    weighting (0 fresh = full, 1 = half, 2+ = re-emit as S/R primitive).
    
    323 unit tests pass.
  • v0.5.0

    v0.5.0 — surface OB mitigation flags
    
    Additive schema change to the order-block primitive: every OB now ships
    with mitigated_wick + mitigated_close booleans so consumers can pick
    their freshness criterion at draw time. wickworks no longer drops
    mitigated OBs server-side — the caller decides.
    
      - mitigated_wick : later bar's wick fully traversed the zone (loose,
                         lib default; was the legacy server-side filter)
      - mitigated_close: later bar's close crossed into/through the zone
                         (stricter; "looks mitigated by eye" criterion)
    
    Cost: one extra smc.ob() call per analysis to derive the close-criterion
    flags. OB cap raised 20 -> 40 to compensate for no longer filtering.
    
    Breaking for FE renderers that assumed every emitted OB was live.
    Quanthex scoring stays on the wick criterion (no score behavior change).
    
    321 unit tests pass.
  • v0.4.0

    v0.4.0 — human-readable metadata catalog + GET /metadata
    
    New feature, backwards compatible.
    
    Adds GET /metadata returning a static catalog of every indicator,
    signal, and level the compute endpoint emits, with human labels,
    descriptions, interpretation hints, units, and categories. Consumers
    fetch once on startup; cache invalidates on version bump.
    
    Includes lookup(path) helper with three-tier fallback (exact ->
    strip array indices -> bare leaf) so dynamic dot-paths like
    retracements[42].Direction or prevTimeframe.rsi still resolve.
    
    Covers all ~70 top-level registry indicators plus nested object
    fields for SMC events, retracements, sessions, and divergences.
    
    321 unit tests passing (11 new metadata tests).
  • v0.3.3

    wickworks v0.3.3 — single source of truth for version
    
    Drops the hardcoded __version__ literal in src/wickworks/__init__.py
    in favour of importlib.metadata.version("wickworks"). pyproject.toml
    is now the only place a release number lives, so the /health
    endpoint can't drift from the tag again the way it did between
    v0.3.1 and v0.3.2.
    
    No runtime behavior change.
  • v0.3.2

    wickworks v0.3.2 — filter ±Inf/NaN from JSON; preserve crypto precision
    
    Hardens the JSON output path: indicator series and SMC events route
    through safe_float so ±Inf / NaN never reach FastAPI (previously
    crashed the response with HTTPException 500 on symbols whose internals
    divided by zero, e.g. neousd, flwusd). analyze() bails early on a
    degenerate last-bar close to avoid the downstream divide-by-price
    storm.
    
    safe_float gets a decimals=None opt-out so crypto prices below 1e-6
    (SHIB / PEPE / micro-caps down to ~1e-15) are no longer silently
    floored to zero by the default 6-decimal round, which previously
    caused the `price > 0` guard to bail on perfectly valid symbols.
    
    Bug-fix only — no API shape change. 310 unit tests pass.
  • v0.3.1

    wickworks v0.3.1 — Bar.ge=0 + doc surface trim
    
    - Bar.tickVolume / realVolume: Pydantic now enforces ge=0 to match
      the schema's `minimum: 0` (negatives previously slipped through to
      volume indicators).
    - schema.json + README scrubbed of alias-doc noise; only the
      canonical camelCase wire shape is documented. Runtime still accepts
      snake_case as an undocumented convenience.
    
    No API shape changes. Regression tests added.
  • v0.3.0

    wickworks v0.3.0 — primitives-only purification
    
    Breaking: removes divergences + divTrends outputs and the entire
    signals/ package. Wickworks now emits only raw indicators, SMC
    structural facts, and summaries. Derived signals (divergence,
    crossovers, golden/death crosses) are the consumer's job.
    
    Includes:
    - README rewritten with primitives-only contract
    - schema.json published as release artifact
    - registry trimmed, signals/ package deleted
    - tests adjusted for new shape
  • v0.2.0

    wickworks v0.2.0 — per-indicator preflight + structured 400
    
    Each requested indicator's min-bar requirement is now checked before
    any compute work runs. Under-fed requests are rejected with a 400 that
    lists every deficit at once — no silent all-null series, no whack-a-mole.
    
    Breaking: insufficient bars is now 400 (structured body) instead of 422
    (plain string). 422 stays for Pydantic-level malformed payloads.
  • v0.1.0

    e35b8e97 · f ·
    wickworks v0.1.0 — initial release
    
    FastAPI OHLC primitives service. Single endpoint POST /analyze: send bars +
    indicator config, get back canonical indicator series, divergences, SMC
    structure, and a compact summary block.
    
    Highlights
    - ~55 indicators routed through one registry (pandas_ta + smartmoneyconcepts
      + numba-accelerated SMC fast path)
    - Closed-form math reference tests, determinism, append-only stability,
      warmup-region and indicator-isolation coverage (~280 tests)
    - Volume contract pinned: tickVolume is canonical; realVolume is accepted
      but silently ignored by the registry
    - Docker image: psyb0t/wickworks