Commit Graph

8507 Commits

Author SHA1 Message Date
Adrien Maston f2ac4e67f0 Remove underline on search results 2025-12-19 16:14:21 +01:00
Adrien Maston 7203a7ca24 Make sticky headers on activity feed full width 2025-12-19 16:07:17 +01:00
Adrien Maston 573ffe0ee4 Add titles to pins and search permas 2025-12-19 15:44:36 +01:00
Adrien Maston b49aa9cbf1 Don't load the navigable list controller on mobile 2025-12-19 12:16:04 +01:00
Andy Smith 586cc79ebb Adjust button offset for bottom notch on mobile 2025-12-18 11:23:05 -06:00
Andy Smith d751ae5522 Move closure message to its own grid area 2025-12-18 11:17:10 -06:00
Adrien Maston 5d6f3f5156 Allow search perma's form to target the whole page
... to pick up the url change and <head> update
2025-12-18 10:13:55 +01:00
Adrien Maston 9bbf739b2a Tweak columns in card perma
... when the container is larger than needed
2025-12-18 10:12:24 +01:00
Adrien Maston b815fdc49b Merge branch 'mobile-app/scoped-styles' into mobile-app/prepare-webviews
* mobile-app/scoped-styles:
  Replace android and ios css layers with platform layer
  Change how show-on-native works
  Use the correct css layers for Android and iOS
2025-12-18 08:53:59 +01:00
Adrien Maston 389b817bb4 Replace android and ios css layers with platform layer 2025-12-18 08:31:15 +01:00
Adrien Maston 190d310108 Change how show-on-native works 2025-12-17 18:58:43 +01:00
Adrien Maston e3302a4377 Use the correct css layers for Android and iOS 2025-12-17 17:47:28 +01:00
Adrien Maston 86ec2959fb Move pins perma panel out of turbo frame 2025-12-17 12:55:58 +01:00
Adrien Maston b040424e2f Make search perma mobile friendly 2025-12-17 12:50:36 +01:00
Adrien Maston 92e63d80cc Make my/pins perma mobile-friendly 2025-12-17 12:30:08 +01:00
Adrien Maston 12bc237665 Horizontal column picker
... in card perma
2025-12-17 11:34:31 +01:00
Adrien Maston a4d0c2d6bb Tweak card perma's body 2025-12-17 10:45:29 +01:00
Adrien Maston 0f26baee09 Hide elements
Menu, back buttons, bottom bar
2025-12-17 10:45:24 +01:00
Adrien Maston 3c9c4cafea Use buttons above title layout 2025-12-17 10:45:17 +01:00
Adrien Maston a936bc1c47 Make icon buttons bigger 2025-12-17 10:45:11 +01:00
Adrien Maston 60bbb31344 Add base files 2025-12-17 09:08:46 +01:00
Adrien Maston 5b7aa67bb3 Add platform attribute 2025-12-17 08:56:08 +01:00
Jeremy Daer a5a0cda295 Fix tailscale serve: use localhost:PORT, helpful error on Linux
Tailscale serve only supports localhost or 127.0.0.1 as proxy targets.
On Linux, prompts user to run `sudo tailscale set --operator=$USER` if access denied.
2025-12-16 14:47:09 -08:00
David Heinemeier Hansson a755ecdec9 Must be run as sudo 2025-12-16 14:36:51 -08:00
Jason Zimdars 79070f5cef Merge pull request #2172 from basecamp/hide-when-singular-entry
Hide the 'Show history' button if there are no other entries to expand
2025-12-16 16:13:53 -06:00
Jason Zimdars 5949b421e9 Hide the 'Show history' button if there are no other entries to expand 2025-12-16 16:09:09 -06:00
Jeremy Daer a2c69b4d1b Merge pull request #2170 from basecamp/monosaas
Repatriate fizzy-saas
2025-12-16 12:45:54 -08:00
Jason Zimdars d74f1535d6 Merge pull request #2171 from basecamp/collapse-system-comments
Collapse and expand system comments
2025-12-16 14:33:40 -06:00
Jeremy Daer c691d39ecf Integrate fizzy-saas as vendored gem at saas/
- Update Gemfile.saas to use path: "saas" instead of GitHub source
- Update config/database.yml to reference local saas/ directory
- Update bin/setup to source saas/bin/setup directly
- Remove redundant dotfiles (ruby-version, gitignore, rubocop, github workflows)
- Add saas/db exclusions to root rubocop config
2025-12-16 12:25:22 -08:00
Jason Zimdars 8659e19671 Collapse and expand system comments 2025-12-16 14:21:48 -06:00
Jeremy Daer bf47dfde91 Merge fizzy-saas repository into saas/
Consolidates fizzy-saas back into the main repo as a vendored gem.
Full commit history preserved with files under saas/ prefix.

* saas-import/main: (131 commits)
  Format
  Remove nested if
  Move presentation method to a regular view helper
  Format
  Rename to stripe_session to avoid confusions
  Extract method
  Make active_subscription a private method
  More concise
  Prefer if/else over early return
  Rename param to remove redundant bit
  This is needed for vat id collection
  Enable tax id collection
  Grab and show the next amount to pay from Stripe
  Add system to comp accounts
  Add record to track overridden limits
  Enable automatic taxes and calculate based on mandatory billing address
  Remove redundant condition
  Don't prevent creating drafts, or you won't get to see the upgrade banner
  Give this some padding
  Show different things to non-admins
  ...
2025-12-16 12:02:48 -08:00
Jeremy Daer bf6ddcb933 Add --tailscale flag to bin/dev for remote access (#2168)
Enables sharing dev sites over Tailscale serve. Uses port convention
4xxxx (prepending 4 to the dev port, echoing TLS 443) so multiple apps
can run simultaneously on different ports.

Usage: bin/dev --tailscale
2025-12-16 09:54:53 -08:00
Jeremy Daer 97ffe00672 My life for a trailing comma 2025-12-16 09:54:04 -08:00
Jeremy Daer a68bd2775d Fix Tailscale host match. Rails wraps the regexp in its own anchors and port-match. 2025-12-16 09:35:26 -08:00
Jorge Manrubia 212743fe3f Merge pull request #2165 from basecamp/revert-css
Revert "Mobile app / Scoped stylesheets" (#1698)
2025-12-16 17:35:19 +01:00
Jorge Manrubia 0278fe6ae4 Revert "Mobile app / Scoped stylesheets" (#1698)
This reverts commit 39c1906e67.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 17:20:18 +01:00
Mike Dalessio 2b388dd241 Merge pull request #2164 from basecamp/flavorjones/user-validate-name
Validate User name presence and handle blank names gracefully
2025-12-16 10:49:13 -05:00
Jorge Manrubia 761cc8b6d5 Merge pull request #2050 from basecamp/billing
Add billing system (monthly subscriptions)
2025-12-16 16:47:16 +01:00
Jorge Manrubia ee80b87c8c Add billing system with Stripe
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Jason Zimdars <jz@37signals.com>
2025-12-16 16:44:20 +01:00
Mike Dalessio b75d2ae6d8 Validate User name presence and handle blank names gracefully
Addresses an issue where User#familiar_name assumed `name` was always
present, potentially raising an exception during view rendering. Now
User validates name presence, and User#familiar_name handles blank
strings without error, in case any existing invalid records exist.
2025-12-16 10:44:10 -05:00
Jorge Manrubia 8382111ef2 Merge pull request #23 from basecamp/billing
Add monthly subscriptions
2025-12-16 16:27:41 +01:00
Kevin McConnell 76400765c1 Merge pull request #2159 from basecamp/upgrade-thruster
Update Thruster
2025-12-16 14:41:43 +00:00
Adrien Maston 39c1906e67 Merge pull request #1698 from basecamp/mobile-app/scoped-stylesheets
Mobile app / Scoped stylesheets
2025-12-16 15:34:37 +01:00
Adrien Maston 04332bc526 Merge branch 'main' into mobile-app/scoped-stylesheets
* main:
  Use decimals for ordered lists
  Update cached fragments
  Revert "Merge pull request #1865 from basecamp/public-avatar-caching"
  Show only public cards on public boards
  Swap order of avatar links
  Limit length of full name during signup
  Make layout bulletproof
  Serve own avatar from its own endpoint
2025-12-16 15:30:31 +01:00
Kevin McConnell 14f337739d Update Thruster 2025-12-16 13:28:49 +00:00
Jorge Manrubia 3c197debd2 Format 2025-12-16 12:00:46 +01:00
Jorge Manrubia 5b2fa6b74a Remove nested if 2025-12-16 12:00:23 +01:00
Jorge Manrubia 2671e52821 Move presentation method to a regular view helper 2025-12-16 12:00:23 +01:00
Jorge Manrubia bf045b9907 Format 2025-12-16 12:00:23 +01:00
Jorge Manrubia 8d11c62b7c Rename to stripe_session to avoid confusions 2025-12-16 12:00:23 +01:00