• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dangernoodle-io / ouroboros / 29162922768
92%

Build:
DEFAULT BRANCH: main
Ran 11 Jul 2026 06:09PM UTC
Jobs 1
Files 69
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

11 Jul 2026 06:09PM UTC coverage: 89.742% (+0.1%) from 89.62%
29162922768

push

github

web-flow
feat: add mcpkit-typed kb write tool on the dark server (OU-2) (#135)

Adds the kb write tool (create/upsert by natural key, or an id-addressed
partial update) as a mcpkit Capability (kbCapability) composed onto the
existing dark buildServerV2, calling internal/kb.WriteAndUpdateBatch
directly for the atomic single-tx write + [[Title]] autolink + FTS
rebuild. The old handleKB/parseKBEntry* handlers and their tests are
untouched and remain live -- deleted at cutover (OU-3).

- id presence dispatches create vs update, reproducing parseKBEntryID's
  dual-type decode (JSON number or numeric string, positive int64 only)
  and its exact "invalid id: %v" error text
- entries[] is deliberately non-schema-required (omitempty) so an
  omitted/empty entries[] reaches the handler's own check instead of
  failing schema validation, preserving the verbatim
  "entries array is required (batch-only mode)" message -- same pattern
  as OU-1's domain field, now also covered by a wire test
  (TestWireKBV2_OmittedEntries_ReturnsVerbatimMessage)
- kbEntryInput.ID is `any`, not a custom-decode struct type: a throwaway
  probe proved a struct with unexported fields (needed to store a decoded
  int64/error out-of-band) infers an empty "type":"object" input schema,
  which go-sdk validates incoming arguments against before the handler
  runs -- rejecting every real id (a JSON number or string) outright. `any`
  reflects as an unrestricted schema, matching old mcp-go's untyped id
  field; the raw decoded value is parsed by parseKBIDV2, a direct port of
  parseKBEntryID
- accepted stricter-validation divergence on every other field: go-sdk's
  JSON unmarshal rejects a wrong-typed field with a whole-call decode
  error, where the old untyped parser silently coerced it to a zero value
- buildServerV2's version param gets a documented //nolint:unparam: adding
  a fourth test call site (all passing the literal "test") tips a
  golangci-lint unparam heuristic that held quiet at three
... (continued)

6929 of 7721 relevant lines covered (89.74%)

1.06 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29162922768.1 11 Jul 2026 06:09PM UTC 69
89.74
GitHub Action Run
Source Files on build 29162922768
  • Tree
  • List 69
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29162922768
  • 5050301b on github
  • Prev Build on main (#29162012001)
  • Next Build on main (#29163838890)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc