Commit Graph
10 Commits
Author SHA1 Message Date
asepharyana 966d86ff67 refactor: migrate thread/async/queue/scheduler infra to mytheclipse
Deploy Scraper / build-and-deploy (push) Canceled after 0s
- bootstrap: TracingLayer from mytheclipse-tracing (composed with scraper
  env filter), RuntimeConfig::auto() thread logging, init job queue + cron.
- proxy_fetch: leader task via ::mytheclipse::spawn_io, gzip decompression
  offloaded to ::mytheclipse::compute (sized rayon pool, panic-isolated),
  bounded by new async fetch limiter (tokio Semaphore bridge).
- queue: new infrastructure/queue module over mytheclipse-queue
  (InMemoryQueue + WorkerPool + BackpressureEnforcer) for repair jobs.
- scheduler: new infrastructure/scheduler.rs using mytheclipse::cron for
  the daily 02:00 UTC image-cache cleanup.
- deps: add mytheclipse-queue + mytheclipse-tracing path deps; mytheclipse
  -> full feature; rayon 1.12; keep path deps for unpublished crates.
- tests: infra_round2 runtime smoke tests (compute panic isolation,
  spawn_io, backpressure admission, cron parse, queue roundtrip).
- Fix: local cache::mytheclipse bridge module shadowed the mytheclipse
  crate name; use leading :: at spawn_io/compute call sites.
2026-08-30 19:40:01 +07:00
asepharyana c7ffd29e79 refactor: migrate infra to mytheclipse crates (retry, cache, event, ratelimit, config)
Deploy Scraper / build-and-deploy (push) Canceled after 0s
Replace hand-rolled infrastructure with the custom mytheclipse library:

- retry (src/infrastructure/scraping/retry.rs): backoff crate -> mytheclipse
  RetryConfig + retry() with retry_all predicate; same call-site helpers.
- cache (src/infrastructure/cache): deadpool raw AsyncCommands ->
  mytheclipse_cache::RedisCache bridge (src/infrastructure/cache/mytheclipse.rs),
  typed JSON wrapper keeps the Cache<'a> API used by use cases.
- events (src/events/bus.rs): custom broadcast pub/sub ->
  mytheclipse_event InMemoryEventBus + TypedEventBus alias.
- ratelimit (src/presentation/middleware/ratelimit.rs): hand-rolled window ->
  mytheclipse::RateLimiter token bucket.
- config (src/config/mod.rs): config crate -> mytheclipse_config ConfigLoader,
  preserving env-only fallback (config files optional).

No route/API/Redis-key changes. mytheclipse-cache path-dep points at local
source (redis 0.32 aligned with deadpool). Removed backoff/config deps.
2026-08-30 18:53:00 +07:00
asepharyana 6ebff90d5b ci: deploy via Attic binary cache (attic.asepharyana.my.id) instead of ssh copy
Deploy Scraper / build-and-deploy (push) Canceled after 0s
Push build result to attic cache directly from runner, then VPS
substitutes it via nix-store --realise. ssh copy retained only as fallback.
2026-08-27 20:38:36 +07:00
asepharyana d1b24f8f85 ci: add standalone Nix build + deploy workflow; remove parent notify
Deploy Scraper / build-and-deploy (push) Canceled after 0s
Repo is now self-contained: flake.nix (cargo build) + deploy.yml
(nix build -> nix copy -> nix-env profile -> systemctl restart scraper).
No longer dispatches submodule-updated to asepharyana-hub.
2026-08-27 19:46:35 +07:00
asepharyana ad0d4f4992 chore: update dependabot-auto-merge.yml
Notify Parent Repo / dispatch (push) Canceled after 0s
2026-08-26 08:53:39 +07:00
asepharyana 7ff47a79bc chore: update dependabot.yml 2026-08-26 08:53:38 +07:00
asepharyana c709c84a4d feat: add dependabot auto-merge workflow 2026-08-25 20:32:55 +07:00
asepharyana 55cfd513e3 feat: update dependabot config 2026-08-25 18:16:42 +07:00
asepharyana 380ecfcd9b feat: update dependabot config 2026-08-25 18:12:56 +07:00
asepharyana a23698a6c4 feat: add dependabot config (npm auto-deps) 2026-08-25 18:08:40 +07:00