Commit graph

1839 commits

Author SHA1 Message Date
Mahad Kalam
922e7384c0
Fix email from name/dates, login flash, wakatime_setup redirect, Sunday 6:30pm GMT (#1067)
* Smol fixes

* Map <<LAST_LANGUAGE>

* whoops

* Fix

* Move emails from Friday to Sunday
2026-03-13 10:53:57 +00:00
Mahad Kalam
607480ff8d
Imports v2.5 (#1065)
* Imports are back!!

* Settings UI v3

* Use Inertia forms for heartbeat imports

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

* Update Bundle

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

* Update JS deps

* Greptile fixes

* Remove dead code

* Fixy wixy

* woohoo

* fixes

* Fix

* Fixes

* Fix TC

* Fix TC

* welp

* test

* Even more Greptile fixes
2026-03-13 09:34:40 +00:00
github-actions[bot]
cf72b56a4b
Update Linguist languages.yml to latest upstream (#1061)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>
2026-03-12 21:28:30 +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
ea9596cb7d
Linguist auto-updater! (god I hate GHA) (#1059) 2026-03-12 08:48:06 +00:00
Mahad Kalam
60db83996a
Revert "Revert "Migrate Lapse heartbeats + concurrent index on heartbeats' user_agent"" (#1058)
* Revert "Revert "Migrate Lapse hbs + concurrent index on heartbeats' user_agen…"

This reverts commit 1d6947903b.

* Delete db/migrate/20260311170528_update_lapse_heartbeat_language.rb
2026-03-11 17:26:40 +00:00
Mahad Kalam
1d6947903b
Revert "Migrate Lapse hbs + concurrent index on heartbeats' user_agent (#1056)" (#1057)
This reverts commit cda06a30be.
2026-03-11 17:18:46 +00:00
Mahad Kalam
cda06a30be
Migrate Lapse hbs + concurrent index on heartbeats' user_agent (#1056)
* Add concurrent index on heartbeats user_agent

* whoops, forgot to commit :skulk:
2026-03-11 17:08:38 +00:00
Mahad Kalam
606bdaed01
Clean up migrations + schema.rb (#1055)
* Drop unused heartbeat lookup tables and their FK columns

Remove 8 abandoned normalization tables (heartbeat_branches,
heartbeat_categories, heartbeat_editors, heartbeat_languages,
heartbeat_machines, heartbeat_operating_systems, heartbeat_projects,
heartbeat_user_agents) and their corresponding foreign key columns
from the heartbeats table. None had models, associations, or any
application code referencing them.

* Remove migrations cancelling each other out
2026-03-11 16:52:35 +00:00
Mahad Kalam
55a63b4ec1
Make Linguist extensible via languages_custom.yml (#1054)
* Support custom language definitions via languages_custom.yml

* Add workflow to auto-update Linguist languages.yml from upstream

* Use deep_merge
2026-03-11 16:05:03 +00:00
Mahad Kalam
06d58362e1
Add Lapse as a recognized language with color (#1053) 2026-03-11 13:06:48 +00:00
Freddie Yershon
6d0bfa433f
Add Hackastreak extension to the list (#1045)
* Add HackaStreak extension to the list

* Update app/javascript/pages/Extensions/Index.svelte

* Fix description casing for HackaStreak extension

* Add button label for extension installation

* Apply suggestion from @skyfallwastaken

Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>

* Fix description formatting for HackaStreak

I think this is right, I'm not 100% sure?

---------

Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>
2026-03-07 22:23:26 +00:00
Micha Albert
504964a518
Fix ban notice wording (#1038)
* Fix ban notice wording

* fix CI for ban notice

* resolve ban message changes

* fix CI for revised ban notice changes
2026-03-05 05:19:02 +00:00
Mahad Kalam
2cbf2b6cdc
Add installer repo to README (#1036) 2026-03-04 12:45:57 +00:00
Mat Manna
9c9b97f7af
Add HCA OAuth Instructions to DEVELOPMENT.md (#1025)
* add new icon from bounty

* docs: add local oauth instructions to DEVELOPMENT.md

* docs: edit language / spacing a bit for consistency

* docs: add vite build step to local development instructions

* docs: apply suggestion from @skyfallwastaken

Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>

---------

Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>
2026-03-03 19:48:58 +00:00
Mahad Kalam
75180f5c51
Add LICENSE 2026-03-03 15:58:43 +00:00
Mahad Kalam
9c91d71a1b
Remove maintenance mode middleware, controller, and page (#1031) 2026-03-02 20:07:17 +00:00
AJ
6fb37ad075
Update Settings > Integrations page to match theme (#1029)
* Update Integrations.svelte

Change Reconnect GitHub button from white text to black text

* Changed it from text-black to text-on-primary

* Update Integrations.svelte
2026-03-02 19:53:12 +00:00
Mahad Kalam
d16c67d1e9
Add maintenance page (#1030)
* Add maintenance page

* Update the page a lil

* Oops

* Fixes!
2026-03-02 16:01:40 +00:00
Mahad Kalam
483c723bc4
Fix stats_controller's total_seconds param (#1022) 2026-03-01 19:07:07 +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
0c7fb13c82
Revert Mailkick (#1019) 2026-03-01 12:56:23 +00:00
Mahad Kalam
de32044332 Merge branch 'main' of https://github.com/hackclub/hackatime 2026-03-01 12:43:51 +00:00
Mahad Kalam
efd189a8c4 Add safety-hatch for summary emails 2026-03-01 12:43:41 +00:00
Mahad Kalam
d5c6292220
Remove exploding queries (#1018) 2026-03-01 12:42:28 +00:00
dependabot[bot]
2b37201dac
Bump actions/upload-artifact from 6 to 7 (#1007)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mahad Kalam <55807755+skyfallwastaken@users.noreply.github.com>
2026-03-01 12:19:36 +00:00
Mahad Kalam
a4c10b473a
Expand scopes to all time for summaries/goals (#1017)
* Expand scopes to all time for summaries/goals

* oops i forgor to remove the second line
2026-03-01 12:18:22 +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
cb67e125d0
Work around aws_sdk_s3 + R2 incompatibility (#1014) 2026-03-01 00:08:20 +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
66f928ca24
OS switcher tabs updates (#1002)
* Add OS switcher tabs to WakatimeSetup page

- Add segmented control with macOS/Linux/Codespaces, Windows, and Advanced tabs
- Default tab is auto-detected from user agent (server-side)
- Show WSL option in mac/linux tab label only when user is on Windows
- Use modal-matching cubic-bezier easing for tab transitions

* Add system test for WakatimeSetup OS switcher tabs

* Extract repeated tab classes into tabClass helper

* Remove Xcode reference from setup subtitle

* Show Xcode in subtitle only on macOS/Linux tab

* pf

* Update test/system/wakatime_setup_test.rb

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

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-25 10:43:52 +00:00
Mahad Kalam
36816f59b3
Add OS switcher tabs to WakatimeSetup page (#1001)
- Add segmented control with macOS/Linux/Codespaces, Windows, and Advanced tabs
- Default tab is auto-detected from user agent (server-side)
- Show WSL option in mac/linux tab label only when user is on Windows
- Use modal-matching cubic-bezier easing for tab transitions
2026-02-25 10:24:01 +00:00
Mahad Kalam
df9e4d8aef
Split test and test_system (#1000) 2026-02-24 12:57:09 +00:00
Mahad Kalam
8b8297f45a
Add Linguist colours + langmapper (#999)
* Let's use Linguist for colours?

* oops
2026-02-24 12:53:13 +00:00
Mahad Kalam
de363bc8d2 oop 2026-02-23 22:25:09 +00:00
Mahad Kalam
2816314df9
Weekly summary emails + move off Loops (#998)
* Weekly summary emails + move off Loops

* Remove unused asset
2026-02-23 22:15:02 +00:00
Mahad Kalam
5bd4b7b0c7 Fix mirror auth 2026-02-23 20:46:28 +00:00
Mahad Kalam
1a28bc744a
UI tweak (#996) 2026-02-23 20:26:33 +00:00
Mahad Kalam
64849e2656 Fix migration! 2026-02-23 20:20:05 +00:00
Mahad Kalam
8c0227cb57
Bye, warehouse! (#994) 2026-02-23 20:16:03 +00:00
Mahad Kalam
7317cc45e7
Imports + mirrors :DD (#993)
* Imports + mirrors :DD

* Stuff and things

* Fixes

* Fixes x2

* Tests!

* Hmm
2026-02-23 15:00:43 +00:00
Mahad Kalam
73223f1ec7
TIL Hackatime uses the Disk service?! (#991) 2026-02-21 12:42:56 +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
44777ad644
Data export fix + async exports + more tests (#989)
* Fix data export + Capybara

* Continue?

* A ton of system tests :D + test cleanup

* More system tests

* Add placeholder keys for tests?

* Get rid of the double-query!

* Speed up CI Chrome setup by avoiding snap installs

* Pin CI Chrome version to reduce system test flakiness

* Stabilize integrations settings system test interaction
2026-02-21 11:28:21 +00:00
Mahad Kalam
ef50839744
Fix modal close button alignment when icon is present (#988)
Change flex alignment from items-center to items-start so the X button
stays at the top-right corner instead of vertically centering with the
icon + title block.
2026-02-20 18:44:23 +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
Mahad Kalam
694526ded9
Small README tweaks (#986)
Updated README.md with new images and documentation link.
2026-02-20 06:21:23 +00:00