Skip to content

feat(pricingx,storagex): gold/mutual-fund live providers + storage ab… - #19

Merged
ihsanarifr merged 3 commits into
mainfrom
feature/storagex-gold-mutualfund
Jul 7, 2026
Merged

feat(pricingx,storagex): gold/mutual-fund live providers + storage ab…#19
ihsanarifr merged 3 commits into
mainfrom
feature/storagex-gold-mutualfund

Conversation

@ihsanarifr

Copy link
Copy Markdown
Member

…straction

pricingx:

  • YahooGold provider: fetches GC=F (gold futures USD/oz) + USDIDR=X (USD/IDR), converts to IDR/gram (÷ 31.1034768). Category "gold". (T047)
  • NewYahooMutualFund: Yahoo Finance NAV provider for category "mutual_fund"; falls back to stale on failure per Constitution IV. (T049)
  • Refactor Yahoo.GetPrice to share fetchYahooChart helper with YahooGold.

storagex:

  • Storage interface: Put/Get/Delete for binary blobs. (T016)
  • MemStorage: in-memory implementation for tests.
  • LocalStorage: local filesystem implementation for development.

Claude-Session: https://claude.ai/code/session_016Ja58bJ35AXEd4hn9VVTgP

Summary

Checklist

  • Tests added or updated (run make test → green)
  • Coverage thresholds met (make coverage — core ≥ 85%, security ≥ 95%)
  • Godoc comments on all exported identifiers
  • CHANGELOG.md updated under [Unreleased]
  • No breaking changes OR marked with ! in commit / BREAKING CHANGE: footer
  • go mod tidy run — no stale entries in go.sum
  • make lint passes with zero new warnings
  • Benchmarks added for new hot-path functions (if applicable)

Related Issues

ihsanarifr and others added 3 commits July 7, 2026 12:08
…straction

pricingx:
- YahooGold provider: fetches GC=F (gold futures USD/oz) + USDIDR=X (USD/IDR),
  converts to IDR/gram (÷ 31.1034768). Category "gold". (T047)
- NewYahooMutualFund: Yahoo Finance NAV provider for category "mutual_fund";
  falls back to stale on failure per Constitution IV. (T049)
- Refactor Yahoo.GetPrice to share fetchYahooChart helper with YahooGold.

storagex:
- Storage interface: Put/Get/Delete for binary blobs. (T016)
- MemStorage: in-memory implementation for tests.
- LocalStorage: local filesystem implementation for development.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Ja58bJ35AXEd4hn9VVTgP
…indows CI)

Windows holds an exclusive lock on open file handles; os.Remove fails with
"file is being used by another process" if the handle is still open.
Replace defer r.Close() with an explicit r.Close() before s.Delete().

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Ja58bJ35AXEd4hn9VVTgP
GoReleaser v2.17.0 removed 'conventional-commits' as a valid changelog.use
value. Switch to 'git' which honours the existing sort/filter configuration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Ja58bJ35AXEd4hn9VVTgP
@ihsanarifr
ihsanarifr merged commit a867bba into main Jul 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant