Commit graph

191 commits

Author SHA1 Message Date
Mahad Kalam
10a30290e8
Bundle and package updates (#1092)
* Update Bundle + Bun

* Let's use Rails 8.2?

* ffs

* arghhhh
2026-03-19 12:09:09 +00:00
Mahad Kalam
8d00418059
Spring cleaning (#1074)
* fix: use owner/repo format for project badges

Updates badge URLs to use GitHub-style owner/repo format (e.g., "hackclub/hackatime")
instead of project names. This ensures compatibility with external badge services that
expect repository paths.

Changes:
- Add Repository#full_path method to get owner/repo format
- Update settings controller to pass both display names and repo paths
- Update Badges component to display project names but use repo paths in URLs

* fix: improve user lookup in API v1 stats endpoint

Use the robust lookup_user method for username parameter in the /api/v1/stats endpoint
to ensure consistent user lookup across all API endpoints. This properly handles Slack
UIDs (HCA IDs), numeric user IDs, and usernames in the correct priority order.

* fix: reduce clutter on new user homepage

Simplify the new user experience by:
- Removing redundant "Hello friend" text from setup notice (header already provides context)
- Hiding GitHub link banner when setup notice is shown to focus user on primary action

This reduces visual clutter and helps new users focus on completing setup first.

* fix: enable full app layout for new OAuth application page

Remove layout=false directive that was preventing the app header and navigation
from appearing on the new OAuth application creation page.

* fix: add antigravity editor to docs

Add documentation for Antigravity, a VSCode fork from Google with built-in AI
features. Includes setup instructions for tracking time with Hackatime using the
WakaTime extension.

* fix: improve stat card subtitle positioning

Remove absolute positioning from subtitle text to allow it to flow naturally after
the main value. This prevents the subtitle from being pushed to the bottom when
other cards have longer content.

* fix: align settings action buttons to card end on larger screens

Remove width constraint from footer to allow action buttons to align to the right
edge of the full card width instead of being constrained to a narrower container.

* fix: improve heartbeat importer visibility on light themes

Update import provider cards and radio buttons to have better contrast on light themes:
- Use bg-surface-100 instead of bg-darker for better card visibility
- Increase radio button border thickness and use darker border color
- Add hover and focus states for better interactivity

* Split up settings controller + perf + goal display

* Make stat card subtitles larger

* Fix AG + VS Code

* Remove Shiba refs

* Bundle update
2026-03-15 15:26:32 +00:00
Mahad Kalam
667d3a7c93
WakaTime/Hackatime v1 imports + Settings v2 (#1062)
* Imports are back!!

* Settings UI v3

* Use Inertia forms for heartbeat imports

* Update app/javascript/pages/Users/Settings/Data.svelte

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update Bundle

* Fix broken Form/Button markup in Data.svelte settings page

* Update JS deps

* Greptile fixes

* Remove dead code

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-12 21:27:10 +00:00
Mahad Kalam
1f695850e5
Bring back Mailkick (#1021)
* Sources say Charlie Kick is stable. Please god

* Some tests + guards + unsub URL fix

* Fix lockfile!

* bin/rubocop -A

* if this does not work I am going to kms

* phew
2026-03-01 14:26:54 +00:00
Mahad Kalam
c846217ce6
Revert all commits after d5d987a8f4 (#1020)
Reverts the following commits:
- 2e3cfd60 Revert Mailkick
- de320443 Merge branch 'main'
- efd189a8 Add safety-hatch for summary emails
- d5c62922 Remove exploding queries (#1018)
- 2b37201d Bump actions/upload-artifact from 6 to 7 (#1007)
- a4c10b47 Expand scopes to all time for summaries/goals (#1017)
- 4dec2f44 Unsubscribe links + slow job monitoring (#1016)
2026-03-01 13:09:10 +00:00
Mahad Kalam
4dec2f44a4
Unsubscribe links + slow job monitoring (#1016)
* Notable + unsubscribe links

* Add the migrations/initializers!

* oops

* Fix a bug

* Address Copilot warn

* Fixes

* stop swallowing errors!!!!

* Flipper flag WeeklySummaryEmailJob

* Split WeeklySummaryEmailJob into new email
2026-03-01 12:11:38 +00:00
Mahad Kalam
d5d987a8f4
Email layout v2 (#1015)
* Better emails!

* Fix tests?

* bit o' cleanup

* add rant

* pt2

* pt3

* Update tests

* oop

* man what on earth

* ffs!!!!!

* Revert "ffs!!!!!"

This reverts commit b58bfed0f4c6288e95d0a111aeb3d7d7900ac9e7.

* Revert "man what on earth"

This reverts commit 8752cc2200eb3b852ea545d10ccbd555ab09d2b4.

* Revert "Fix tests?"

This reverts commit 810ebde73376ff7da0595e6b927f1b464d62b4a4.

* Ignore external Google Fonts link in premailer
2026-03-01 07:18:24 +00:00
Mahad Kalam
26663ddad5
Set up R2! (#1013)
* Set up R2!

* Update .env.example
2026-02-28 23:55:39 +00:00
Mahad Kalam
afb7e260e8
Temporarily disable weekly summaries (#1012)
* Bit of SEO stuff + disable weekly summaries for now

* Update bundle
2026-02-28 23:41:57 +00:00
Mahad Kalam
64849e2656 Fix migration! 2026-02-23 20:20:05 +00:00
Mahad Kalam
1b7e0462dc
Make large exports go to ActiveStorage (#990)
* Make em go to ActiveStorage

* Oops!
2026-02-21 11:53:18 +00:00
Mahad Kalam
d3af585822
Several tests and fixes. (#987)
* Several tests and fixes.

* Harden safe_return_url to reject URLs containing colons

Adds an extra guard in safe_return_url to reject paths containing ':'
characters, preventing edge-case scheme-like redirects (e.g.
/javascript:...). Addresses CodeQL URL redirection warning.

* Oops!
2026-02-20 15:30:48 +00:00
dependabot[bot]
2dda452270
Bump good_job from 4.13.2 to 4.13.3 (#982)
Bumps [good_job](https://github.com/bensheldon/good_job) from 4.13.2 to 4.13.3.
- [Release notes](https://github.com/bensheldon/good_job/releases)
- [Changelog](https://github.com/bensheldon/good_job/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bensheldon/good_job/compare/v4.13.2...v4.13.3)

---
updated-dependencies:
- dependency-name: good_job
  dependency-version: 4.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 06:19:43 +00:00
Mahad Kalam
535eae15cd
Update Gemfile.lock (#974) 2026-02-18 00:28:09 +00:00
Mahad Kalam
f16c991808
Remove unused public_activity + downsize activity graph Inertia payload (#946)
* Remove public_activity

* Continue removal

* Uh-oh, re-add pganalyze

* Fix Vite HMR not working
2026-02-15 09:54:29 +00:00
Mahad Kalam
ad95cf6c4f
Add PostHog (#906)
* Add PostHog

* Queue Posthog *after* adding to DB

* Update app/services/posthog_service.rb

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Add /api/v1/banned_users/counts

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-15 08:44:39 +00:00
Mahad Kalam
d18899f6a4
Update gemlock (#941) 2026-02-15 01:34:03 +00:00
Mahad Kalam
0f42cd4b90 Optimizations and code cleanup 2026-02-09 21:05:50 +00:00
Mahad Kalam
ef3f36c829
Inertia migration/UI3 (#911)
* Inertia p1?

* Inertia'fied signed out homepage?

* Split up signed in page

* WIP signed in v2?

* Better signed in?

* Clean up extensions page!

* Fix currently hacking

* Better docs page?

* Docs update 2

* Clean up "What is Hackatime?" + get rid of that godawful green dev mode

* Better nav?

* Cleaner settings?

* Fix commit times

* Fix flashes + OS improv

* Setup v2

* Readd some of the syncers?

* Remove stray emdash

* Clean up Step 3

* Oops, remove .vite

* bye bye, /inertia-example

* bin/rubocop -A

* Fix docs vuln
2026-02-09 11:26:30 +00:00
dependabot[bot]
04f6378bf8
Bump oj from 3.16.13 to 3.16.14 (#905)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 14:35:55 -05:00
Mahad Kalam
0f4d4f82c3
faster local imports (#904) 2026-02-04 14:35:48 +00:00
Mahad Kalam
166d9d30a0
ahoy is walking the plank (#903)
* Remove Ahoy

* Simplify migration

* sync migrations

* Update db/migrate/20260204113033_drop_ahoy_tables.rb

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-04 13:13:48 +00:00
dependabot[bot]
cdce5d24d3
Bump bootsnap from 1.21.1 to 1.22.0 (#897)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Echo <github@3kh0.net>
2026-02-03 22:15:34 -05:00
Echo
8e6387b35b
bump brakeman to 8.0.2 (#901) 2026-02-03 22:03:54 -05:00
dependabot[bot]
f7bb9f443a
Bump thruster from 0.1.17 to 0.1.18 (#896)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Echo <github@3kh0.net>
2026-02-03 22:00:13 -05:00
Mahad Kalam
7e54f109ba
Revert "Add PgHero (#894)" (#895) 2026-02-02 17:45:00 -05:00
Mahad Kalam
a2716fcdb0
Add PgHero (#894) 2026-02-02 21:17:26 +00:00
Echo
041f8ee3bb
feat: derive dummy users for testing (#880)
* install faker

* carry username over to display

* feat: derive dummies from you
2026-02-02 00:13:33 -05:00
Echo
50d4e15a1c
Fix deletion failures in Heartbeat model (#877)
* fix deletion failures

* update gems
2026-01-30 20:11:02 -05:00
Tom (Deployor)
8d0215ff0f
feat: added actual api docs (rswag) + ci enforcement (#846)
* feat: add API documentation and CI checks

- Add Rswag for automated API documentation generation
- Add Swagger specs for all endpoints
- Add CI step to enforce that swagger.yaml stays in sync with code
- Add static test keys in seeds.rb for easier testing
- Update AGENTS.md and README.md to support this

* Merge branch 'main' of https://github.com/deployor/hackatime

* Merge branch 'main' into main

* Deprecations! Yay! :)

* It was wan addicent i swear linter! Dont hurt me

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Copilot..... we love you! Also this project is open and so are api docs meant to be if another AI reads ts!

* Merge branch 'main' of https://github.com/deployor/hackatime

* Merge branch 'main' into main

* Merge branch 'main' into main

* Update app/controllers/api/admin/v1/admin_controller.rb

If you say so

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update spec/requests/api/v1/my_spec.rb

I guessss?

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Failed my own CI wow.... EMBARRASSINGGGG

* Merge branch 'main' into main

* Merge branch 'main' into main

* clarify wording on internal/revoke

* Merge branch 'main' into main

* update swagger docs
2026-01-27 01:05:49 -05:00
dependabot[bot]
ee30618cdd
Bump pagy from 43.2.7 to 43.2.8 (#857)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 15:33:04 -05:00
Echo
eaf61f3c71
bundle update (#814) 2026-01-21 16:45:31 -05:00
dependabot[bot]
4632c49aa0
Bump puma from 7.1.0 to 7.2.0 (#813)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 16:40:34 -05:00
Echo
789d83300c
update deps (#804) 2026-01-19 02:17:03 -05:00
Echo
283aaf678e
bundle update (#792) 2026-01-16 17:36:16 -05:00
dependabot[bot]
926c77273a
Bump bootsnap from 1.20.1 to 1.21.0 (#784)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 23:45:10 -05:00
dependabot[bot]
34f5a0d603
Bump public_activity from 3.0.1 to 3.0.2 (#783)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 23:44:31 -05:00
dependabot[bot]
880e06bdea
Bump rails from 8.1.1 to 8.1.2 (#780)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Echo <github@3kh0.net>
2026-01-12 22:51:01 -05:00
Echo
46e0457e36
bundle update (#779) 2026-01-08 12:39:26 -05:00
dependabot[bot]
f96420befe
Bump importmap-rails from 2.2.2 to 2.2.3 (#776)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 12:29:02 -05:00
dependabot[bot]
a109cb9bef
Bump countries from 8.0.4 to 8.1.0 (#759)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:48:19 -05:00
dependabot[bot]
228aaa4436
Bump pg from 1.6.2 to 1.6.3 (#755)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-30 21:18:56 +01:00
Kartikey Chauhan
d3d0aaaa22 chore: update deps 2025-12-28 09:42:07 +05:30
Echo
6a1123a410
bundle update (#716) 2025-12-19 10:57:59 -05:00
dependabot[bot]
c00ef02e71
Bump tailwindcss-ruby from 4.1.16 to 4.1.18 (#715)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 13:58:01 -05:00
dependabot[bot]
35b35bd0b2
Bump good_job from 4.13.0 to 4.13.1 (#713)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 14:03:41 -05:00
dependabot[bot]
4aa7384e9c
Bump selenium-webdriver from 4.38.0 to 4.39.0 (#695)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 17:49:45 -05:00
Echo
1f9e43ae78
bundle update (#688) 2025-12-05 15:38:13 -05:00
dependabot[bot]
5f4cc09758
Bump pagy from 43.1.8 to 43.2.0 (#686)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 16:58:42 -05:00
dependabot[bot]
51c5e7edf1
Bump dotenv-rails from 3.1.8 to 3.2.0 (#683)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 14:01:01 -05:00