Commit Graph
44 Commits
Author SHA1 Message Date
MythEclipse c733f3bfe1 a 2026-06-11 16:39:04 +00:00
MythEclipse 8c65e33a74 chore(Machine_Learning): clear notebook outputs and add .gitignore 2026-06-11 16:31:38 +00:00
MythEclipseandClaude 7a7e5b5955 fix: update Google Drive file ID to correct dataset link
Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:19:38 +00:00
MythEclipseandClaude b83b2e132f feat: download dataset from Google Drive when running locally
- Add  dep to requirements.txt
- Non-Colab path: download dataset_jagung.zip from Drive using file ID
  if not present locally, then extract as usual
- Keeps Colab path unchanged (drive.mount)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:18:25 +00:00
MythEclipseandClaude ddced09bbc feat: make notebook dual-compatible (Colab + local)
- Add IS_COLAB auto-detection (try/except google.colab)
- Guard all /content/ paths behind IS_COLAB check
- Local paths resolve relative to Machine_Learning/ directory
- Remove unused imports (tarfile, pathlib, duplicate PIL)
- Consolidate sklearn imports into cell 2

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:17:32 +00:00
MythEclipseandClaude e791a71425 chore: trim requirements.txt to only ML pipeline deps, fix venv path, add .venv to gitignore
- requirements.txt: 230 → 11 top-level packages (removed transitive deps, CUDA/JAX/PyTorch/HuggingFace/Jupyter noise)
- CLAUDE.md: update venv setup to point at repo-root .venv
- .gitignore: add .venv/ and venv/ entries
- Memory: record venv location to avoid duplicate creation

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 15:14:55 +00:00
MythEclipseandClaude 837cfe933a feat: push deploy pipeline - auth, sidebar layout, ML artifacts, LFS
Notable changes:
- Add .gitattributes for LFS tracking on ML model artifacts
- Add AuthGuard to all protected routes + login/register/logout flow
- Add collapsible Sidebar replacing old Navbar
- Redesign MainLayout with sidebar + mobile header
- Add password show/hide toggle to AuthForm
- Add Logout button to MobileNav
- Update footer credit to ATLAS Project - Pijak x IBM SkillsBuild
- Update deploy.yml: generate ONNX in CI (vs HuggingFace download)
- Remove deprecated ML scripts (download/upload model .sh, .gitignore)
- Remove stale MEMORY.md
- Add ML model artifacts (TFLite, SavedModel, TFJS)
- Update notebook.ipynb training pipeline

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 20:26:48 +07:00
MythEclipse 3e2f04413e chore(ml): remove machine learning model files 2026-06-11 20:23:57 +07:00
MythEclipse 09602b3fe0 refactor(web): add value formatter to ChartCard component
Introduce a `valueFormatter` prop to the `ChartCard` component to allow
customized data presentation in tooltips. This enables more readable
units for specific metrics, such as converting bytes to MiB or
seconds to milliseconds.
2026-06-08 02:03:23 +07:00
MythEclipse b0dd1f289a chore(api): update uploader base URL domain
Update the default `uploaderBaseUrl` from `.tech` to `.my.id` due to the
previous domain being decommissioned.
2026-06-08 01:53:02 +07:00
MythEclipse 64dcfa70d8 feat(web): add client-side telemetry for API calls, errors, and scan operations 2026-06-08 01:23:51 +07:00
MythEclipse 89dcbe8fa2 feat(ml-service): add detailed ML observability metrics for inference, predictions, and errors 2026-06-08 01:21:47 +07:00
MythEclipse c45f771f24 feat(telemetry): add comprehensive Prometheus metrics and expand dashboard with system, API, ML, and Node.js runtime sections 2026-06-08 01:20:42 +07:00
MythEclipse b7a3c530a7 refactor(web): replace custom telemetry API with direct Prometheus queries
Rewrite the telemetry page logic to bypass the custom proxy API in
favor of direct Prometheus queries.

- Implement `queryRange` and `queryInstant` helpers for Prometheus API
- Replace `TelemetryAPI` client with direct fetch calls to Prometheus
- Update data fetching logic to use standard Prometheus query parameters
- Simplify state management and data transformation for charts
2026-06-08 01:07:13 +07:00
MythEclipse 26f99fa4d4 feat(web): compute memory usage client-side and add app-specific metrics to telemetry dashboard 2026-06-08 00:54:59 +07:00
MythEclipse f5ac0a8795 feat(web): implement telemetry dashboard with data visualization
Add a comprehensive telemetry dashboard page featuring real-time
system statistics and metric visualization using recharts.

- Integrate recharts for area and bar chart rendering
- Implement TelemetryAPI client for stats, discovery, and chart data
- Add dashboard UI with stat cards and responsive charts
- Remove legacy nginx sub_filter proxy configuration in favor of
  direct API communication to telemetry.imrnes.team
2026-06-08 00:31:30 +07:00
MythEclipse 65d0040c0d fix(web): escape quotes in sub_filter for fetch calls
Update the sub_filter pattern for fetch requests to include escaped
double quotes. This ensures that path rewriting correctly handles
JavaScript fetch calls that use double-quoted strings, preventing
broken resource paths in the telemetry dashboard.
2026-06-08 00:11:02 +07:00
MythEclipse 4589766f27 build(web): switch to alpine-based nginx runner for sub_filter support
Migrate the web runner stage from the official nginx alpine image to a
standard alpine image with the nginx package installed. This ensures
the presence of the `http_sub_module` required for path rewriting in
the telemetry proxy configuration.

- Replace `nginx:1.27-alpine` with `alpine:3.20` and `apk add nginx`
- Update Nginx configuration file path to `/etc/nginx/http.d/default.conf`
- Update web asset root directory to `/var/lib/nginx/html`
- Add `X-Forwarded-For` and `X-Forwarded-Proto` headers to proxy locations
2026-06-08 00:00:33 +07:00
MythEclipse 4dde9d8408 refactor(web): implement nginx reverse proxy for telemetry dashboard
Transition telemetry dashboard integration from an external URL approach to a local reverse proxy via Nginx. This simplifies client-side connectivity by routing all telemetry requests through the existing web server's domain.

- Configure Nginx to proxy `/telemetry/` sub-paths to the internal telemetry service
- Implement `sub_filter` in Nginx to rewrite root-relative paths for the SPA
- Remove `VITE_TELEMETRY_URL` build arguments and environment variable dependencies
- Simplify `TelemetryPage` to use a relative `/telemetry` base path
- Clean up deployment workflows and Dockerfile by removing unused telemetry build args
2026-06-07 23:44:57 +07:00
MythEclipse 9602a64e18 feat(web): externalize telemetry URL via environment variables
Replace the hardcoded Nginx proxy configuration with a dynamic environment variable approach. This allows the telemetry dashboard to be loaded via a public URL instead of relying on a local Tailscale proxy.

- Add `VITE_TELEMETRY_URL` build argument to Dockerfile
- Pass `VITE_TELEMETRY_URL` through GitHub Actions deployment workflow
- Remove `/telemetry/` location block from nginx.conf
- Update `TelemetryPage` to use the new environment variable and improve iframe loading state management
2026-06-07 23:31:15 +07:00
MythEclipse cd93d1a06d feat(web): add telemetry dashboard page with nginx proxy and nav integration 2026-06-07 23:21:40 +07:00
MythEclipse 0d458d9437 chore(telemetry): update subproject to latest commit 2026-06-07 23:04:22 +07:00
MythEclipse c0533f3ed9 feat(infra): add deployment architecture docs and remove unused DNS secrets from telemetry workflow 2026-06-07 23:02:35 +07:00
MythEclipse 2ade67170c feat(ci): add node-exporter cleanup and health check to deploy workflow 2026-06-07 22:59:44 +07:00
MythEclipse 204dd0311b feat(ci): add telemetry CI/CD workflow for build and deploy to Orange VPS 2026-06-07 22:58:43 +07:00
MythEclipse 420dc4725b feat: add Node Exporter service for system metrics scraping in docker-compose 2026-06-07 22:55:03 +07:00
MythEclipse b3494e2a9b fix: force-remove containers before docker compose up 2026-06-07 22:30:45 +07:00
MythEclipse 02fbb56492 fix: docker compose down before up to clear container name conflicts 2026-06-07 22:27:48 +07:00
MythEclipse ff5e5fd091 fix: add --force-recreate to docker compose up in deploy 2026-06-07 22:24:49 +07:00
MythEclipseandClaude Opus 4.8 0fc305f21b fix: create telemetry-net on deploy to fix docker compose up
App services reference telemetry-net as external, but telemetry runs
on a separate VPS. Creating the network as empty on the app VPS so
docker compose up doesn't fail.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:21:31 +07:00
MythEclipseandClaude Opus 4.8 521aaa184e fix: handle local VPS changes during deploy by using git reset --hard instead of pull
Switches from git pull --ff-only to git fetch + git reset --hard
origin/main to avoid failing when VPS has uncommitted local changes
to tracked files (apps/ml-service/Dockerfile, docker-compose.yml).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:18:17 +07:00
MythEclipseandClaude Opus 4.8 685cf0955b fix: sync bun.lock with package.json changes
The lockfile was out of sync causing Docker builds to fail with
'lockfile had changes, but lockfile is frozen' on CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 22:14:14 +07:00
MythEclipse 64567986e1 feat: update ML service Dockerfile to archlinux base and add port bindings for api/ml metrics 2026-06-07 21:40:09 +07:00
MythEclipse 6933e5512f docs(telemetry): separate production cross-VPS and local dev architecture docs 2026-06-07 21:15:32 +07:00
MythEclipse 7e0e052200 docs: clarify telemetry stack local-dev vs production separation in docker-compose.telemetry.yml 2026-06-07 21:13:15 +07:00
MythEclipse 36216601e3 docs: add telemetry stack documentation to CLAUDE.md, METRICS.md, and README.md 2026-06-07 21:00:22 +07:00
MythEclipse 2c41b80f97 feat: expose /metrics endpoint and add telemetry ClickHouse credentials 2026-06-07 20:57:45 +07:00
MythEclipseandClaude Opus 4.8 0da578c546 chore: add bun.lock, docker-compose telemetry network, and METRICS.md documentation
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-07 18:14:35 +07:00
MythEclipse 5a47b0c658 feat(web): add client-side telemetry with Web Vitals and dev metrics endpoint 2026-06-07 18:13:11 +07:00
MythEclipse eefb16ad1d feat(ml-service): add Prometheus metrics and request telemetry instrumentation 2026-06-07 18:12:32 +07:00
MythEclipse ede1c480be feat(api): add Prometheus metrics and OpenTelemetry instrumentation for HTTP, auth, classifications, and diagnoses 2026-06-07 18:12:32 +07:00
MythEclipse 3b7ccad619 chore: add telemetry submodule and ignore .claude/ directory 2026-06-07 18:12:32 +07:00
MythEclipse 04d7f11722 fix: update Traefik certresolver from letsencrypt to cloudflare for web, api, and ml services 2026-05-29 14:52:42 +07:00
MythEclipse c72246fb87 fix: update .gitignore and modify Traefik rules for API and ML services in docker-compose.yml 2026-05-29 14:38:53 +07:00