Replace fmt, errors, strings, path/filepath, encoding/json with Core
primitives across 23 files. Keep encoding/json for streaming
NewDecoder/NewEncoder, strings for Fields/FieldsFuncSeq.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bug: Resource.Create was POSTing to item path (/issues/{index})
instead of collection path (/issues). Same class as the List fix.
Tests: path validation on all service methods, Update tests for
issues/repos, CreateComment test, ListComments test, PR merge
error case (conflict handling).
227 lines of test coverage added by Codex agent.
Co-Authored-By: Virgil <virgil@lethean.io>
The Resource path like /repos/{owner}/{repo}/issues/{index} is the
item path. List operations need the collection path (without the
trailing /{placeholder}). Fixed by deriving the collection path at
construction time — only strips the last segment if it's a pure
placeholder like /{index}, not mixed segments like /repos.
Co-Authored-By: Virgil <virgil@lethean.io>