gitextract_3xz67y80/ ├── .claude/ │ └── CLAUDE.md ├── .dockerignore ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── config.yml │ │ └── preapproved.md │ ├── dependabot.yml │ └── workflows/ │ ├── ci-checks.yml │ ├── ci-oss.yml │ ├── ci-saas.yml │ ├── dependabot-sync-saas-lockfile.yml │ ├── publish-image.yml │ └── test.yml ├── .gitignore ├── .gitleaks.toml ├── .gitleaksignore ├── .mise.toml ├── .rubocop.yml ├── .ruby-version ├── AGENTS.md ├── CONTRIBUTING.md ├── Dockerfile ├── Gemfile ├── Gemfile.saas ├── LICENSE.md ├── README.md ├── Rakefile ├── STYLE.md ├── app/ │ ├── assets/ │ │ ├── images/ │ │ │ └── .keep │ │ └── stylesheets/ │ │ ├── _global.css │ │ ├── access-tokens.css │ │ ├── android.css │ │ ├── animation.css │ │ ├── attachments.css │ │ ├── autoresize.css │ │ ├── avatars.css │ │ ├── bar.css │ │ ├── base.css │ │ ├── blank-slates.css │ │ ├── bubble.css │ │ ├── buttons.css │ │ ├── card-columns.css │ │ ├── card-perma.css │ │ ├── cards.css │ │ ├── circled-text.css │ │ ├── color-picker.css │ │ ├── comments.css │ │ ├── credentials.css │ │ ├── dialog.css │ │ ├── dividers.css │ │ ├── drag_and_drop.css │ │ ├── events.css │ │ ├── expandable.css │ │ ├── filters.css │ │ ├── flash.css │ │ ├── font-face.css │ │ ├── golden-effect.css │ │ ├── header.css │ │ ├── icons.css │ │ ├── import.css │ │ ├── inputs.css │ │ ├── ios.css │ │ ├── knobs.css │ │ ├── layout.css │ │ ├── lexxy.css │ │ ├── lightbox.css │ │ ├── markdown.css │ │ ├── native.css │ │ ├── nav.css │ │ ├── notifications.css │ │ ├── pagination.css │ │ ├── panels.css │ │ ├── performance-notice.css │ │ ├── pins.css │ │ ├── popup.css │ │ ├── print.css │ │ ├── pwa.css │ │ ├── qr-codes.css │ │ ├── reactions.css │ │ ├── reset.css │ │ ├── search.css │ │ ├── separators.css │ │ ├── settings.css │ │ ├── spinners.css │ │ ├── steps.css │ │ ├── syntax.css │ │ ├── theme-switcher.css │ │ ├── toggles.css │ │ ├── tooltips.css │ │ ├── trays.css │ │ ├── user.css │ │ ├── utilities.css │ │ └── welcome-letter.css │ ├── channels/ │ │ └── application_cable/ │ │ └── connection.rb │ ├── controllers/ │ │ ├── account/ │ │ │ ├── cancellations_controller.rb │ │ │ ├── entropies_controller.rb │ │ │ ├── exports_controller.rb │ │ │ ├── imports_controller.rb │ │ │ ├── join_codes_controller.rb │ │ │ └── settings_controller.rb │ │ ├── admin_controller.rb │ │ ├── application_controller.rb │ │ ├── boards/ │ │ │ ├── columns/ │ │ │ │ ├── closeds_controller.rb │ │ │ │ ├── not_nows_controller.rb │ │ │ │ └── streams_controller.rb │ │ │ ├── columns_controller.rb │ │ │ ├── entropies_controller.rb │ │ │ ├── involvements_controller.rb │ │ │ └── publications_controller.rb │ │ ├── boards_controller.rb │ │ ├── cards/ │ │ │ ├── assignments_controller.rb │ │ │ ├── boards_controller.rb │ │ │ ├── closures_controller.rb │ │ │ ├── columns_controller.rb │ │ │ ├── comments/ │ │ │ │ └── reactions_controller.rb │ │ │ ├── comments_controller.rb │ │ │ ├── drafts_controller.rb │ │ │ ├── goldnesses_controller.rb │ │ │ ├── images_controller.rb │ │ │ ├── not_nows_controller.rb │ │ │ ├── pins_controller.rb │ │ │ ├── previews_controller.rb │ │ │ ├── publishes_controller.rb │ │ │ ├── reactions_controller.rb │ │ │ ├── readings_controller.rb │ │ │ ├── self_assignments_controller.rb │ │ │ ├── steps_controller.rb │ │ │ ├── taggings_controller.rb │ │ │ ├── triages_controller.rb │ │ │ └── watches_controller.rb │ │ ├── cards_controller.rb │ │ ├── client_configurations_controller.rb │ │ ├── columns/ │ │ │ ├── cards/ │ │ │ │ └── drops/ │ │ │ │ ├── closures_controller.rb │ │ │ │ ├── columns_controller.rb │ │ │ │ ├── not_nows_controller.rb │ │ │ │ └── streams_controller.rb │ │ │ ├── left_positions_controller.rb │ │ │ └── right_positions_controller.rb │ │ ├── concerns/ │ │ │ ├── authentication/ │ │ │ │ └── via_magic_link.rb │ │ │ ├── authentication.rb │ │ │ ├── authorization.rb │ │ │ ├── block_search_engine_indexing.rb │ │ │ ├── board_scoped.rb │ │ │ ├── card_scoped.rb │ │ │ ├── column_scoped.rb │ │ │ ├── current_request.rb │ │ │ ├── current_timezone.rb │ │ │ ├── day_timelines_scoped.rb │ │ │ ├── filter_scoped.rb │ │ │ ├── request_forgery_protection.rb │ │ │ ├── routing_headers.rb │ │ │ ├── set_platform.rb │ │ │ ├── turbo_flash.rb │ │ │ └── view_transitions.rb │ │ ├── events/ │ │ │ ├── day_timeline/ │ │ │ │ └── columns_controller.rb │ │ │ └── days_controller.rb │ │ ├── events_controller.rb │ │ ├── filters/ │ │ │ └── settings_refreshes_controller.rb │ │ ├── filters_controller.rb │ │ ├── join_codes_controller.rb │ │ ├── landings_controller.rb │ │ ├── my/ │ │ │ ├── access_tokens_controller.rb │ │ │ ├── identities_controller.rb │ │ │ ├── menus_controller.rb │ │ │ ├── passkey_challenges_controller.rb │ │ │ ├── passkeys_controller.rb │ │ │ ├── pins_controller.rb │ │ │ └── timezones_controller.rb │ │ ├── notifications/ │ │ │ ├── bulk_readings_controller.rb │ │ │ ├── readings_controller.rb │ │ │ ├── settings_controller.rb │ │ │ ├── trays_controller.rb │ │ │ └── unsubscribes_controller.rb │ │ ├── notifications_controller.rb │ │ ├── prompts/ │ │ │ ├── boards/ │ │ │ │ └── users_controller.rb │ │ │ ├── cards_controller.rb │ │ │ ├── tags_controller.rb │ │ │ └── users_controller.rb │ │ ├── public/ │ │ │ ├── base_controller.rb │ │ │ ├── boards/ │ │ │ │ ├── columns/ │ │ │ │ │ ├── closeds_controller.rb │ │ │ │ │ ├── not_nows_controller.rb │ │ │ │ │ └── streams_controller.rb │ │ │ │ └── columns_controller.rb │ │ │ ├── boards_controller.rb │ │ │ └── cards_controller.rb │ │ ├── pwa_controller.rb │ │ ├── qr_codes_controller.rb │ │ ├── searches/ │ │ │ └── queries_controller.rb │ │ ├── searches_controller.rb │ │ ├── sessions/ │ │ │ ├── magic_links_controller.rb │ │ │ ├── menus_controller.rb │ │ │ ├── passkeys_controller.rb │ │ │ └── transfers_controller.rb │ │ ├── sessions_controller.rb │ │ ├── signups/ │ │ │ └── completions_controller.rb │ │ ├── signups_controller.rb │ │ ├── tags_controller.rb │ │ ├── users/ │ │ │ ├── avatars_controller.rb │ │ │ ├── data_exports_controller.rb │ │ │ ├── email_addresses/ │ │ │ │ └── confirmations_controller.rb │ │ │ ├── email_addresses_controller.rb │ │ │ ├── events_controller.rb │ │ │ ├── joins_controller.rb │ │ │ ├── push_subscriptions_controller.rb │ │ │ ├── roles_controller.rb │ │ │ └── verifications_controller.rb │ │ ├── users_controller.rb │ │ ├── webhooks/ │ │ │ └── activations_controller.rb │ │ └── webhooks_controller.rb │ ├── helpers/ │ │ ├── accesses_helper.rb │ │ ├── application_helper.rb │ │ ├── avatars_helper.rb │ │ ├── boards_helper.rb │ │ ├── bridge_helper.rb │ │ ├── cards_helper.rb │ │ ├── clipboard_helper.rb │ │ ├── columns_helper.rb │ │ ├── comments_helper.rb │ │ ├── emoji_helper.rb │ │ ├── entropy_helper.rb │ │ ├── events_helper.rb │ │ ├── excerpt_helper.rb │ │ ├── filters_helper.rb │ │ ├── forms_helper.rb │ │ ├── hotkeys_helper.rb │ │ ├── html_helper.rb │ │ ├── login_helper.rb │ │ ├── messages_helper.rb │ │ ├── my/ │ │ │ └── menu_helper.rb │ │ ├── notifications_helper.rb │ │ ├── pagination_helper.rb │ │ ├── qr_codes_helper.rb │ │ ├── reactions_helper.rb │ │ ├── rich_text_helper.rb │ │ ├── tenanting_helper.rb │ │ ├── time_helper.rb │ │ ├── users_helper.rb │ │ └── webhooks_helper.rb │ ├── javascript/ │ │ ├── application.js │ │ ├── controllers/ │ │ │ ├── application.js │ │ │ ├── assignment_limit_controller.js │ │ │ ├── auto_click_controller.js │ │ │ ├── auto_save_controller.js │ │ │ ├── auto_submit_controller.js │ │ │ ├── autoresize_controller.js │ │ │ ├── badge_controller.js │ │ │ ├── bar_controller.js │ │ │ ├── beacon_controller.js │ │ │ ├── boards_form_controller.js │ │ │ ├── bridge/ │ │ │ │ ├── buttons_controller.js │ │ │ │ ├── form_controller.js │ │ │ │ ├── insets_controller.js │ │ │ │ ├── overflow_menu_controller.js │ │ │ │ ├── share_controller.js │ │ │ │ ├── stamp_controller.js │ │ │ │ ├── text_size_controller.js │ │ │ │ └── title_controller.js │ │ │ ├── bubble_controller.js │ │ │ ├── card_hotkeys_controller.js │ │ │ ├── clear_offline_cache_controller.js │ │ │ ├── clicker_controller.js │ │ │ ├── collapsible_columns_controller.js │ │ │ ├── combobox_controller.js │ │ │ ├── copy_to_clipboard_controller.js │ │ │ ├── css_variable_counter_controller.js │ │ │ ├── details_controller.js │ │ │ ├── dialog_controller.js │ │ │ ├── dialog_manager_controller.js │ │ │ ├── drag_and_drop_controller.js │ │ │ ├── drag_and_strum_controller.js │ │ │ ├── element_removal_controller.js │ │ │ ├── expandable_on_native_controller.js │ │ │ ├── fetch_on_visible_controller.js │ │ │ ├── filter_controller.js │ │ │ ├── filter_form_controller.js │ │ │ ├── filter_settings_controller.js │ │ │ ├── form_controller.js │ │ │ ├── frame_controller.js │ │ │ ├── frame_reloader_controller.js │ │ │ ├── hotkey_controller.js │ │ │ ├── index.js │ │ │ ├── knob_controller.js │ │ │ ├── lightbox_controller.js │ │ │ ├── local_save_controller.js │ │ │ ├── local_time_controller.js │ │ │ ├── magic_link_controller.js │ │ │ ├── multi_selection_combobox_controller.js │ │ │ ├── nav_section_expander_controller.js │ │ │ ├── navigable_list_controller.js │ │ │ ├── notifications_controller.js │ │ │ ├── outlet_auto_save_controller.js │ │ │ ├── pagination_controller.js │ │ │ ├── reaction_delete_controller.js │ │ │ ├── reaction_emoji_controller.js │ │ │ ├── related_element_controller.js │ │ │ ├── retarget_links_controller.js │ │ │ ├── scroll_to_controller.js │ │ │ ├── search_form_controller.js │ │ │ ├── soft_keyboard_controller.js │ │ │ ├── syntax_highlight_controller.js │ │ │ ├── theme_controller.js │ │ │ ├── timezone_cookie_controller.js │ │ │ ├── toggle_class_controller.js │ │ │ ├── toggle_enable_controller.js │ │ │ ├── tooltip_controller.js │ │ │ ├── touch_placeholder_controller.js │ │ │ ├── turbo_navigation_controller.js │ │ │ └── upload_preview_controller.js │ │ ├── helpers/ │ │ │ ├── bridge/ │ │ │ │ └── viewport_helpers.js │ │ │ ├── date_helpers.js │ │ │ ├── form_helpers.js │ │ │ ├── html_helpers.js │ │ │ ├── orientation_helpers.js │ │ │ ├── platform_helpers.js │ │ │ ├── scroll_helpers.js │ │ │ ├── text_helpers.js │ │ │ └── timing_helpers.js │ │ ├── initializers/ │ │ │ ├── bridge/ │ │ │ │ └── bridge_element.js │ │ │ ├── current.js │ │ │ ├── index.js │ │ │ ├── lexxy_markdown_paste.js │ │ │ └── offline.js │ │ └── lib/ │ │ └── action_pack/ │ │ ├── passkey.js │ │ └── webauthn.js │ ├── jobs/ │ │ ├── account/ │ │ │ ├── data_import_job.rb │ │ │ └── incinerate_due_job.rb │ │ ├── application_job.rb │ │ ├── board/ │ │ │ └── clean_inaccessible_data_job.rb │ │ ├── card/ │ │ │ ├── activity_spike/ │ │ │ │ └── detection_job.rb │ │ │ ├── clean_inaccessible_data_job.rb │ │ │ └── remove_inaccessible_notifications_job.rb │ │ ├── concerns/ │ │ │ └── smtp_delivery_error_handling.rb │ │ ├── data_export_job.rb │ │ ├── delete_unused_tags_job.rb │ │ ├── event/ │ │ │ └── webhook_dispatch_job.rb │ │ ├── mention/ │ │ │ └── create_job.rb │ │ ├── notification/ │ │ │ ├── bundle/ │ │ │ │ ├── deliver_all_job.rb │ │ │ │ └── deliver_job.rb │ │ │ └── push_job.rb │ │ ├── notify_recipients_job.rb │ │ ├── push_notification_job.rb │ │ ├── storage/ │ │ │ ├── materialize_job.rb │ │ │ └── reconcile_job.rb │ │ └── webhook/ │ │ └── delivery_job.rb │ ├── mailers/ │ │ ├── account_mailer.rb │ │ ├── application_mailer.rb │ │ ├── concerns/ │ │ │ └── mailers/ │ │ │ └── unsubscribable.rb │ │ ├── export_mailer.rb │ │ ├── import_mailer.rb │ │ ├── magic_link_mailer.rb │ │ ├── notification/ │ │ │ └── bundle_mailer.rb │ │ └── user_mailer.rb │ ├── models/ │ │ ├── access.rb │ │ ├── account/ │ │ │ ├── cancellable.rb │ │ │ ├── cancellation.rb │ │ │ ├── data_transfer/ │ │ │ │ ├── account_record_set.rb │ │ │ │ ├── action_text/ │ │ │ │ │ └── rich_text_record_set.rb │ │ │ │ ├── active_storage/ │ │ │ │ │ ├── attachment_record_set.rb │ │ │ │ │ ├── blob_record_set.rb │ │ │ │ │ └── file_record_set.rb │ │ │ │ ├── entropy_record_set.rb │ │ │ │ ├── manifest.rb │ │ │ │ ├── record_set.rb │ │ │ │ └── user_record_set.rb │ │ │ ├── entropic.rb │ │ │ ├── export.rb │ │ │ ├── external_id_sequence.rb │ │ │ ├── import.rb │ │ │ ├── incineratable.rb │ │ │ ├── join_code.rb │ │ │ ├── multi_tenantable.rb │ │ │ ├── seedeable.rb │ │ │ ├── seeder.rb │ │ │ └── storage.rb │ │ ├── account.rb │ │ ├── admin.rb │ │ ├── application_platform.rb │ │ ├── application_record.rb │ │ ├── assignment.rb │ │ ├── board/ │ │ │ ├── accessible.rb │ │ │ ├── auto_postponing.rb │ │ │ ├── broadcastable.rb │ │ │ ├── cards.rb │ │ │ ├── entropic.rb │ │ │ ├── publication.rb │ │ │ ├── publishable.rb │ │ │ ├── storage.rb │ │ │ └── triageable.rb │ │ ├── board.rb │ │ ├── card/ │ │ │ ├── accessible.rb │ │ │ ├── activity_spike/ │ │ │ │ └── detector.rb │ │ │ ├── activity_spike.rb │ │ │ ├── assignable.rb │ │ │ ├── broadcastable.rb │ │ │ ├── closeable.rb │ │ │ ├── colored.rb │ │ │ ├── commentable.rb │ │ │ ├── entropic.rb │ │ │ ├── entropy.rb │ │ │ ├── eventable/ │ │ │ │ └── system_commenter.rb │ │ │ ├── eventable.rb │ │ │ ├── exportable.rb │ │ │ ├── golden.rb │ │ │ ├── goldness.rb │ │ │ ├── mentions.rb │ │ │ ├── multistep.rb │ │ │ ├── not_now.rb │ │ │ ├── pinnable.rb │ │ │ ├── postponable.rb │ │ │ ├── promptable.rb │ │ │ ├── readable.rb │ │ │ ├── searchable.rb │ │ │ ├── stallable.rb │ │ │ ├── statuses.rb │ │ │ ├── taggable.rb │ │ │ ├── triageable.rb │ │ │ └── watchable.rb │ │ ├── card.rb │ │ ├── closure.rb │ │ ├── color.rb │ │ ├── column/ │ │ │ ├── colored.rb │ │ │ └── positioned.rb │ │ ├── column.rb │ │ ├── comment/ │ │ │ ├── eventable.rb │ │ │ ├── mentions.rb │ │ │ ├── promptable.rb │ │ │ └── searchable.rb │ │ ├── comment.rb │ │ ├── concerns/ │ │ │ ├── attachments.rb │ │ │ ├── eventable.rb │ │ │ ├── filterable.rb │ │ │ ├── mentions.rb │ │ │ ├── notifiable.rb │ │ │ ├── searchable.rb │ │ │ └── storage/ │ │ │ ├── totaled.rb │ │ │ └── tracked.rb │ │ ├── current.rb │ │ ├── entropy.rb │ │ ├── event/ │ │ │ ├── description.rb │ │ │ ├── particulars.rb │ │ │ └── promptable.rb │ │ ├── event.rb │ │ ├── export.rb │ │ ├── filter/ │ │ │ ├── fields.rb │ │ │ ├── params.rb │ │ │ ├── resources.rb │ │ │ └── summarized.rb │ │ ├── filter.rb │ │ ├── identity/ │ │ │ ├── access_token.rb │ │ │ ├── joinable.rb │ │ │ └── transferable.rb │ │ ├── identity.rb │ │ ├── magic_link/ │ │ │ └── code.rb │ │ ├── magic_link.rb │ │ ├── mention.rb │ │ ├── notification/ │ │ │ ├── bundle.rb │ │ │ ├── default_payload.rb │ │ │ ├── event_payload.rb │ │ │ ├── mention_payload.rb │ │ │ ├── push_target/ │ │ │ │ └── web.rb │ │ │ ├── push_target.rb │ │ │ └── pushable.rb │ │ ├── notification.rb │ │ ├── notifier/ │ │ │ ├── card_event_notifier.rb │ │ │ ├── comment_event_notifier.rb │ │ │ └── mention_notifier.rb │ │ ├── notifier.rb │ │ ├── passkey/ │ │ │ └── authenticator.rb │ │ ├── pin.rb │ │ ├── push/ │ │ │ └── subscription.rb │ │ ├── push.rb │ │ ├── qr_code_link.rb │ │ ├── reaction.rb │ │ ├── search/ │ │ │ ├── highlighter.rb │ │ │ ├── query.rb │ │ │ ├── record/ │ │ │ │ ├── sqlite/ │ │ │ │ │ └── fts.rb │ │ │ │ ├── sqlite.rb │ │ │ │ └── trilogy.rb │ │ │ ├── record.rb │ │ │ ├── result.rb │ │ │ └── stemmer.rb │ │ ├── search.rb │ │ ├── session.rb │ │ ├── signup/ │ │ │ └── account_name_generator.rb │ │ ├── signup.rb │ │ ├── ssrf_protection.rb │ │ ├── step.rb │ │ ├── storage/ │ │ │ ├── attachment_tracking.rb │ │ │ ├── entry.rb │ │ │ └── total.rb │ │ ├── storage.rb │ │ ├── tag/ │ │ │ └── attachable.rb │ │ ├── tag.rb │ │ ├── tagging.rb │ │ ├── time_window_parser.rb │ │ ├── user/ │ │ │ ├── accessor.rb │ │ │ ├── assignee.rb │ │ │ ├── attachable.rb │ │ │ ├── avatar.rb │ │ │ ├── configurable.rb │ │ │ ├── data_export.rb │ │ │ ├── day_timeline/ │ │ │ │ ├── column.rb │ │ │ │ └── serializable.rb │ │ │ ├── day_timeline.rb │ │ │ ├── email_address_changeable.rb │ │ │ ├── filtering.rb │ │ │ ├── mentionable.rb │ │ │ ├── named.rb │ │ │ ├── notifiable.rb │ │ │ ├── role.rb │ │ │ ├── searcher.rb │ │ │ ├── settings.rb │ │ │ ├── timelined.rb │ │ │ ├── transferable.rb │ │ │ └── watcher.rb │ │ ├── user.rb │ │ ├── watch.rb │ │ ├── webhook/ │ │ │ ├── delinquency_tracker.rb │ │ │ ├── delivery.rb │ │ │ └── triggerable.rb │ │ ├── webhook.rb │ │ ├── zip_file/ │ │ │ ├── reader/ │ │ │ │ └── io.rb │ │ │ ├── reader.rb │ │ │ ├── remote_io.rb │ │ │ └── writer.rb │ │ └── zip_file.rb │ └── views/ │ ├── account/ │ │ ├── exports/ │ │ │ ├── show.html.erb │ │ │ └── show.json.jbuilder │ │ ├── imports/ │ │ │ ├── new.html.erb │ │ │ └── show.html.erb │ │ ├── join_codes/ │ │ │ ├── edit.html.erb │ │ │ ├── show.html.erb │ │ │ └── show.json.jbuilder │ │ └── settings/ │ │ ├── _cancellation.html.erb │ │ ├── _entropy.html.erb │ │ ├── _export.html.erb │ │ ├── _name.html.erb │ │ ├── _user.html.erb │ │ ├── _users.html.erb │ │ ├── show.html.erb │ │ └── show.json.jbuilder │ ├── action_text/ │ │ └── attachables/ │ │ ├── _remote_image.html.erb │ │ └── _remote_video.html.erb │ ├── active_storage/ │ │ └── blobs/ │ │ ├── _blob.html.erb │ │ └── web/ │ │ └── _representation.html.erb │ ├── bar/ │ │ └── _bar.html.erb │ ├── boards/ │ │ ├── _access_toggle.html.erb │ │ ├── _board.json.jbuilder │ │ ├── columns/ │ │ │ ├── _empty_placeholder.html.erb │ │ │ ├── closeds/ │ │ │ │ ├── show.html.erb │ │ │ │ └── show.json.jbuilder │ │ │ ├── create.turbo_stream.erb │ │ │ ├── index.json.jbuilder │ │ │ ├── not_nows/ │ │ │ │ ├── show.html.erb │ │ │ │ └── show.json.jbuilder │ │ │ ├── show.html.erb │ │ │ ├── show.json.jbuilder │ │ │ ├── streams/ │ │ │ │ ├── show.html.erb │ │ │ │ └── show.json.jbuilder │ │ │ └── update.turbo_stream.erb │ │ ├── edit/ │ │ │ ├── _auto_close.html.erb │ │ │ ├── _delete.html.erb │ │ │ ├── _name.html.erb │ │ │ ├── _publication.html.erb │ │ │ └── _users.html.erb │ │ ├── edit.html.erb │ │ ├── entropies/ │ │ │ └── update.turbo_stream.erb │ │ ├── index.json.jbuilder │ │ ├── involvements/ │ │ │ └── update.html.erb │ │ ├── new.html.erb │ │ ├── publications/ │ │ │ ├── create.turbo_stream.erb │ │ │ └── destroy.turbo_stream.erb │ │ ├── show/ │ │ │ ├── _closed.html.erb │ │ │ ├── _column.html.erb │ │ │ ├── _columns.html.erb │ │ │ ├── _expander.html.erb │ │ │ ├── _filtered_cards.html.erb │ │ │ ├── _not_now.html.erb │ │ │ ├── _stream.html.erb │ │ │ └── menu/ │ │ │ ├── _column.html.erb │ │ │ ├── _column_form.html.erb │ │ │ ├── _columns.html.erb │ │ │ └── _maximize.html.erb │ │ ├── show.html.erb │ │ └── show.json.jbuilder │ ├── cards/ │ │ ├── _broadcasts.html.erb │ │ ├── _card.json.jbuilder │ │ ├── _container.html.erb │ │ ├── _delete.html.erb │ │ ├── _messages.html.erb │ │ ├── assignments/ │ │ │ ├── _user.html.erb │ │ │ ├── create.turbo_stream.erb │ │ │ └── new.html.erb │ │ ├── boards/ │ │ │ └── edit.html.erb │ │ ├── closures/ │ │ │ ├── create.turbo_stream.erb │ │ │ └── destroy.turbo_stream.erb │ │ ├── columns/ │ │ │ ├── _column.html.erb │ │ │ └── edit.html.erb │ │ ├── comments/ │ │ │ ├── _comment.html.erb │ │ │ ├── _comment.json.jbuilder │ │ │ ├── _new.html.erb │ │ │ ├── _watchers.html.erb │ │ │ ├── create.turbo_stream.erb │ │ │ ├── destroy.turbo_stream.erb │ │ │ ├── edit.html.erb │ │ │ ├── index.json.jbuilder │ │ │ ├── show.html.erb │ │ │ ├── show.json.jbuilder │ │ │ └── update.turbo_stream.erb │ │ ├── container/ │ │ │ ├── _closure.html.erb │ │ │ ├── _closure_buttons.html.erb │ │ │ ├── _content.html.erb │ │ │ ├── _content_display.html.erb │ │ │ ├── _gild.html.erb │ │ │ ├── _image.html.erb │ │ │ ├── _save_button.html.erb │ │ │ └── footer/ │ │ │ ├── _create.html.erb │ │ │ └── _published.html.erb │ │ ├── display/ │ │ │ ├── _preview.html.erb │ │ │ ├── _previews.html.erb │ │ │ ├── _public_preview.html.erb │ │ │ ├── _public_previews.html.erb │ │ │ ├── common/ │ │ │ │ ├── _assignees.html.erb │ │ │ │ ├── _background.html.erb │ │ │ │ ├── _board.html.erb │ │ │ │ ├── _meta.html.erb │ │ │ │ └── _stamp.html.erb │ │ │ ├── mini/ │ │ │ │ ├── _assignees.html.erb │ │ │ │ ├── _meta.html.erb │ │ │ │ └── _tags.html.erb │ │ │ ├── perma/ │ │ │ │ ├── _assignees.html.erb │ │ │ │ ├── _background.html.erb │ │ │ │ ├── _board.html.erb │ │ │ │ ├── _meta.html.erb │ │ │ │ ├── _steps.html.erb │ │ │ │ └── _tags.html.erb │ │ │ ├── preview/ │ │ │ │ ├── _assignees.html.erb │ │ │ │ ├── _board.html.erb │ │ │ │ ├── _boosts.html.erb │ │ │ │ ├── _bubble.html.erb │ │ │ │ ├── _columns.html.erb │ │ │ │ ├── _comments.html.erb │ │ │ │ ├── _meta.html.erb │ │ │ │ ├── _people.html.erb │ │ │ │ ├── _steps.html.erb │ │ │ │ └── _tags.html.erb │ │ │ └── public_preview/ │ │ │ ├── _columns.html.erb │ │ │ └── _meta.html.erb │ │ ├── drafts/ │ │ │ ├── _container.html.erb │ │ │ └── show.html.erb │ │ ├── edit.html.erb │ │ ├── index.html.erb │ │ ├── index.json.jbuilder │ │ ├── not_nows/ │ │ │ └── create.turbo_stream.erb │ │ ├── pins/ │ │ │ ├── _pin_button.html.erb │ │ │ └── show.html.erb │ │ ├── previews/ │ │ │ └── index.turbo_stream.erb │ │ ├── readings/ │ │ │ └── create.turbo_stream.erb │ │ ├── show.html.erb │ │ ├── show.json.jbuilder │ │ ├── steps/ │ │ │ ├── _step.html.erb │ │ │ ├── _step.json.jbuilder │ │ │ ├── create.turbo_stream.erb │ │ │ ├── destroy.turbo_stream.erb │ │ │ ├── edit.html.erb │ │ │ ├── index.json.jbuilder │ │ │ ├── show.html.erb │ │ │ ├── show.json.jbuilder │ │ │ └── update.turbo_stream.erb │ │ ├── taggings/ │ │ │ ├── _tag.html.erb │ │ │ ├── create.turbo_stream.erb │ │ │ └── new.html.erb │ │ ├── triage/ │ │ │ └── _columns.html.erb │ │ ├── update.turbo_stream.erb │ │ └── watches/ │ │ ├── _refresh.turbo_stream.erb │ │ ├── _watch_button.html.erb │ │ ├── create.turbo_stream.erb │ │ ├── destroy.turbo_stream.erb │ │ └── show.html.erb │ ├── client_configurations/ │ │ ├── android_v1.json │ │ └── ios_v1.json │ ├── columns/ │ │ ├── _column.json.jbuilder │ │ ├── _refresh_adjacent_columns.turbo_stream.erb │ │ ├── cards/ │ │ │ └── drops/ │ │ │ ├── closures/ │ │ │ │ └── create.turbo_stream.erb │ │ │ ├── columns/ │ │ │ │ └── create.turbo_stream.erb │ │ │ ├── not_nows/ │ │ │ │ └── create.turbo_stream.erb │ │ │ └── streams/ │ │ │ └── create.turbo_stream.erb │ │ ├── left_positions/ │ │ │ └── create.turbo_stream.erb │ │ ├── right_positions/ │ │ │ └── create.turbo_stream.erb │ │ └── show/ │ │ └── _add_card_button.html.erb │ ├── entropy/ │ │ ├── _auto_close.html.erb │ │ └── _knob.html.erb │ ├── event_summaries/ │ │ └── _event_summary.html.erb │ ├── events/ │ │ ├── _day.html.erb │ │ ├── _empty_days.html.erb │ │ ├── _event.html.erb │ │ ├── day_timeline/ │ │ │ ├── _column.html.erb │ │ │ ├── _columns.html.erb │ │ │ └── columns/ │ │ │ ├── _events.html.erb │ │ │ └── show.html.erb │ │ ├── days/ │ │ │ └── index.html.erb │ │ ├── event/ │ │ │ ├── _attachments.html.erb │ │ │ ├── _layout.html.erb │ │ │ ├── attachments/ │ │ │ │ ├── _attachment.html.erb │ │ │ │ ├── _remote_image.html.erb │ │ │ │ └── _remote_video.html.erb │ │ │ └── eventable/ │ │ │ ├── _card.html.erb │ │ │ ├── _card_published.html.erb │ │ │ └── _comment.html.erb │ │ ├── index/ │ │ │ ├── _add_board_button.html.erb │ │ │ ├── _add_card_button.html.erb │ │ │ ├── _filter.html.erb │ │ │ └── filter/ │ │ │ ├── _board.html.erb │ │ │ └── _user.html.erb │ │ └── index.html.erb │ ├── filters/ │ │ ├── _filter_toggle.html.erb │ │ ├── _settings.html.erb │ │ ├── create.turbo_stream.erb │ │ ├── destroy.turbo_stream.erb │ │ ├── settings/ │ │ │ ├── _assignees.html.erb │ │ │ ├── _boards.html.erb │ │ │ ├── _cards.html.erb │ │ │ ├── _closers.html.erb │ │ │ ├── _controls.html.erb │ │ │ ├── _creators.html.erb │ │ │ ├── _indexed_by.html.erb │ │ │ ├── _manage.html.erb │ │ │ ├── _sorted_by.html.erb │ │ │ ├── _tags.html.erb │ │ │ ├── _terms.html.erb │ │ │ ├── _time_window.html.erb │ │ │ └── _toggle.html.erb │ │ └── settings_refreshes/ │ │ └── create.turbo_stream.erb │ ├── join_codes/ │ │ ├── inactive.html.erb │ │ └── new.html.erb │ ├── layouts/ │ │ ├── _lightbox.html.erb │ │ ├── _theme_preference.html.erb │ │ ├── action_text/ │ │ │ └── contents/ │ │ │ └── _content.html.erb │ │ ├── application.html.erb │ │ ├── mailer.html.erb │ │ ├── mailer.text.erb │ │ ├── public.html.erb │ │ └── shared/ │ │ ├── _colophon.html.erb │ │ ├── _flash.html.erb │ │ ├── _head.html.erb │ │ ├── _time_zone.html.erb │ │ ├── _user_css.html.erb │ │ └── _welcome_letter.html.erb │ ├── mailers/ │ │ ├── account_mailer/ │ │ │ ├── cancellation.html.erb │ │ │ └── cancellation.text.erb │ │ ├── export_mailer/ │ │ │ ├── completed.html.erb │ │ │ └── completed.text.erb │ │ ├── identity_mailer/ │ │ │ └── email_change_confirmation.text.erb │ │ ├── import_mailer/ │ │ │ ├── completed.html.erb │ │ │ ├── completed.text.erb │ │ │ ├── failed.html.erb │ │ │ └── failed.text.erb │ │ ├── magic_link_mailer/ │ │ │ ├── sign_in_instructions.html.erb │ │ │ └── sign_in_instructions.text.erb │ │ └── notification/ │ │ └── bundle_mailer/ │ │ ├── _notification.html.erb │ │ ├── _notification.text.erb │ │ ├── event/ │ │ │ ├── _body.html.erb │ │ │ └── _body.text.erb │ │ ├── mention/ │ │ │ ├── _body.html.erb │ │ │ └── _body.text.erb │ │ ├── notification.html.erb │ │ └── notification.text.erb │ ├── my/ │ │ ├── _menu.html.erb │ │ ├── access_tokens/ │ │ │ ├── _access_token.html.erb │ │ │ ├── _access_token.json.jbuilder │ │ │ ├── index.html.erb │ │ │ ├── index.json.jbuilder │ │ │ ├── new.html.erb │ │ │ └── show.html.erb │ │ ├── identities/ │ │ │ ├── _account.json.jbuilder │ │ │ └── show.json.jbuilder │ │ ├── menus/ │ │ │ ├── _accounts.html.erb │ │ │ ├── _boards.html.erb │ │ │ ├── _custom_views.html.erb │ │ │ ├── _jump.html.erb │ │ │ ├── _people.html.erb │ │ │ ├── _settings.html.erb │ │ │ ├── _shortcuts.html.erb │ │ │ ├── _tags.html.erb │ │ │ └── show.html.erb │ │ ├── passkeys/ │ │ │ ├── _passkey.html.erb │ │ │ ├── edit.html.erb │ │ │ └── index.html.erb │ │ └── pins/ │ │ ├── _pin.html.erb │ │ ├── _tray.html.erb │ │ ├── index.html.erb │ │ └── index.json.jbuilder │ ├── notifications/ │ │ ├── _notification.html.erb │ │ ├── _notification.json.jbuilder │ │ ├── _tray.html.erb │ │ ├── index/ │ │ │ ├── _read_notifications.html.erb │ │ │ └── _unread_notifications.html.erb │ │ ├── index.html.erb │ │ ├── index.json.jbuilder │ │ ├── index.turbo_stream.erb │ │ ├── notification/ │ │ │ ├── _body.html.erb │ │ │ ├── _header.html.erb │ │ │ ├── event/ │ │ │ │ ├── _body.html.erb │ │ │ │ └── _body.json.jbuilder │ │ │ └── mention/ │ │ │ ├── _body.html.erb │ │ │ └── _body.json.jbuilder │ │ ├── readings/ │ │ │ ├── create.turbo_stream.erb │ │ │ └── destroy.turbo_stream.erb │ │ ├── settings/ │ │ │ ├── _board.html.erb │ │ │ ├── _browser.html.erb │ │ │ ├── _email.html.erb │ │ │ ├── _install.html.erb │ │ │ ├── _push_notifications.html.erb │ │ │ ├── _system.html.erb │ │ │ ├── show.html.erb │ │ │ └── show.json.jbuilder │ │ ├── trays/ │ │ │ ├── show.html.erb │ │ │ └── show.json.jbuilder │ │ └── unsubscribes/ │ │ ├── new.html.erb │ │ └── show.html.erb │ ├── prompts/ │ │ ├── boards/ │ │ │ └── users/ │ │ │ ├── _user.html.erb │ │ │ └── index.html.erb │ │ ├── cards/ │ │ │ ├── _card.html.erb │ │ │ └── index.html.erb │ │ ├── commands/ │ │ │ ├── _command.html.erb │ │ │ └── index.html.erb │ │ ├── tags/ │ │ │ ├── _tag.html.erb │ │ │ └── index.html.erb │ │ └── users/ │ │ └── index.html.erb │ ├── public/ │ │ ├── _footer.html.erb │ │ ├── boards/ │ │ │ ├── card_previews/ │ │ │ │ └── index.turbo_stream.erb │ │ │ ├── columns/ │ │ │ │ ├── closeds/ │ │ │ │ │ └── show.html.erb │ │ │ │ ├── not_nows/ │ │ │ │ │ └── show.html.erb │ │ │ │ ├── show.html.erb │ │ │ │ └── streams/ │ │ │ │ └── show.html.erb │ │ │ ├── show/ │ │ │ │ ├── _closed.html.erb │ │ │ │ ├── _column.html.erb │ │ │ │ ├── _columns.html.erb │ │ │ │ ├── _not_now.html.erb │ │ │ │ └── _stream.html.erb │ │ │ └── show.html.erb │ │ └── cards/ │ │ ├── show/ │ │ │ ├── _content.html.erb │ │ │ └── _steps.html.erb │ │ └── show.html.erb │ ├── pwa/ │ │ ├── manifest.json.erb │ │ └── service_worker.js.erb │ ├── reactions/ │ │ ├── _menu.html.erb │ │ ├── _reaction.html.erb │ │ ├── _reaction.json.jbuilder │ │ ├── _reactions.html.erb │ │ ├── create.turbo_stream.erb │ │ ├── destroy.turbo_stream.erb │ │ ├── index.html.erb │ │ ├── index.json.jbuilder │ │ ├── new.html.erb │ │ └── show.json.jbuilder │ ├── searches/ │ │ ├── _form.html.erb │ │ ├── _result.html.erb │ │ ├── _results.html.erb │ │ ├── show.html.erb │ │ └── show.json.jbuilder │ ├── sessions/ │ │ ├── _footer.html.erb │ │ ├── magic_links/ │ │ │ └── show.html.erb │ │ ├── menus/ │ │ │ └── show.html.erb │ │ ├── new.html.erb │ │ ├── starts/ │ │ │ └── new.html.erb │ │ └── transfers/ │ │ └── show.html.erb │ ├── signups/ │ │ ├── completions/ │ │ │ └── new.html.erb │ │ └── new.html.erb │ ├── tags/ │ │ ├── _tag.json.jbuilder │ │ ├── index.html.erb │ │ └── index.json.jbuilder │ ├── user_mailer/ │ │ └── email_change_confirmation.html.erb │ ├── users/ │ │ ├── _access_tokens.html.erb │ │ ├── _activity_timeline.html.erb │ │ ├── _attachable.html.erb │ │ ├── _data_export.html.erb │ │ ├── _theme.html.erb │ │ ├── _transfer.html.erb │ │ ├── _user.json.jbuilder │ │ ├── avatars/ │ │ │ └── show.svg.erb │ │ ├── data_exports/ │ │ │ └── show.html.erb │ │ ├── edit.html.erb │ │ ├── email_addresses/ │ │ │ ├── confirmations/ │ │ │ │ ├── invalid_token.html.erb │ │ │ │ └── show.html.erb │ │ │ ├── create.html.erb │ │ │ └── new.html.erb │ │ ├── events/ │ │ │ └── show.html.erb │ │ ├── index.json.jbuilder │ │ ├── joins/ │ │ │ └── new.html.erb │ │ ├── show.html.erb │ │ ├── show.json.jbuilder │ │ └── verifications/ │ │ └── new.html.erb │ └── webhooks/ │ ├── _delivery.html.erb │ ├── _webhook.html.erb │ ├── _webhook.json.jbuilder │ ├── edit.html.erb │ ├── event.html.erb │ ├── event.json.jbuilder │ ├── form/ │ │ └── _actions.html.erb │ ├── index.html.erb │ ├── index.json.jbuilder │ ├── new.html.erb │ ├── show.html.erb │ └── show.json.jbuilder ├── bin/ │ ├── brakeman │ ├── bundle-both │ ├── bundle-drift │ ├── bundler-audit │ ├── ci │ ├── dev │ ├── docker-entrypoint │ ├── gitleaks-audit │ ├── importmap │ ├── jobs │ ├── kamal │ ├── minio-setup │ ├── notify_dash_of_deployment │ ├── rails │ ├── rake │ ├── rubocop │ ├── setup │ └── thrust ├── config/ │ ├── application.rb │ ├── boot.rb │ ├── brakeman.ignore │ ├── cable.yml │ ├── cache.yml │ ├── ci.rb │ ├── database.mysql.yml │ ├── database.sqlite.yml │ ├── database.yml │ ├── deploy.yml │ ├── environment.rb │ ├── environments/ │ │ ├── beta.rb │ │ ├── development.rb │ │ ├── production.rb │ │ ├── staging.rb │ │ └── test.rb │ ├── importmap.rb │ ├── initializers/ │ │ ├── action_text.rb │ │ ├── active_job.rb │ │ ├── active_storage.rb │ │ ├── active_storage_no_reuse.rb │ │ ├── active_storage_purge_on_last_attachment.rb │ │ ├── assets.rb │ │ ├── autotuner.rb │ │ ├── content_security_policy.rb │ │ ├── database_role_logging.rb │ │ ├── error_context.rb │ │ ├── extensions.rb │ │ ├── filter_parameter_logging.rb │ │ ├── inflections.rb │ │ ├── mission_control.rb │ │ ├── multi_db.rb │ │ ├── multi_tenant.rb │ │ ├── passkeys.rb │ │ ├── permissions_policy.rb │ │ ├── push_notifications.rb │ │ ├── rack_mini_profiler.rb │ │ ├── sanitization.rb │ │ ├── sqlite_schema_dumper.rb │ │ ├── table_definition_column_limits.rb │ │ ├── tenanting/ │ │ │ ├── account_slug.rb │ │ │ └── turbo.rb │ │ ├── uuid_framework_models.rb │ │ ├── uuid_primary_keys.rb │ │ ├── vapid.rb │ │ ├── vips.rb │ │ └── web_push.rb │ ├── locales/ │ │ └── en.yml │ ├── passkey_aaguids.yml │ ├── puma.rb │ ├── queue.yml │ ├── recurring.yml │ ├── routes.rb │ ├── storage.oss.yml │ └── storage.yml ├── config.ru ├── db/ │ ├── cable_schema.rb │ ├── cache_schema.rb │ ├── migrate/ │ │ ├── 20251111122540_initial_schema.rb │ │ ├── 20251111153019_add_number_to_cards.rb │ │ ├── 20251112093037_create_search_indices.rb │ │ ├── 20251112184932_remove_join_code_from_memberships.rb │ │ ├── 20251113111501_drop_memberships.rb │ │ ├── 20251113160907_add_missing_account_id_columns.rb │ │ ├── 20251113163145_ensure_account_id_index.rb │ │ ├── 20251113190256_create_search_record_shards.rb │ │ ├── 20251114084325_drop_search_results.rb │ │ ├── 20251114183203_ensure_an_identit_can_only_have_one_user_in_an_account.rb │ │ ├── 20251117190817_change_endpoint_to_text_in_push_subscriptions.rb │ │ ├── 20251117192434_change_external_account_id_to_bigint_in_accounts.rb │ │ ├── 20251117202517_change_usage_limit_to_bigint_in_account_join_codes.rb │ │ ├── 20251120110206_add_search_records.rb │ │ ├── 20251120194700_remove_all_foreign_key_constraints.rb │ │ ├── 20251120203100_add_unique_index_to_card_activity_spikes_on_card_id.rb │ │ ├── 20251121092508_add_account_key_to_search_records.rb │ │ ├── 20251121112416_remove_old_fulltext_indexes_from_search_records.rb │ │ ├── 20251125110629_increase_user_agent_length.rb │ │ ├── 20251125130010_add_a_staff_flag_to_identities.rb │ │ ├── 20251127000001_create_account_external_id_sequences.rb │ │ ├── 20251129110120_add_purpose_to_magic_links.rb │ │ ├── 20251129175717_promote_first_admin_to_owner.rb │ │ ├── 20251201100607_create_account_exports.rb │ │ ├── 20251201132341_create_identity_access_tokens.rb │ │ ├── 20251205010536_add_verified_at_to_users.rb │ │ ├── 20251205205826_create_storage_tables.rb │ │ ├── 20251210054934_add_blob_id_and_audit_context_to_storage_entries.rb │ │ ├── 20251219120755_drop_card_engagements.rb │ │ ├── 20251223000001_rename_account_exports_to_exports.rb │ │ ├── 20251223000002_create_account_imports.rb │ │ ├── 20251224092315_create_account_cancellations.rb │ │ ├── 20260121155752_make_reactions_polymorphic.rb │ │ ├── 20260206104338_add_card_id_to_notifications.rb │ │ ├── 20260209165805_notifications_data_migration.rb │ │ ├── 20260211122517_add_failure_reason_to_account_imports.rb │ │ ├── 20260212102026_fix_notifications_ordered_index.rb │ │ ├── 20260213154740_create_action_pack_passkeys.rb │ │ ├── 20260213170100_add_created_at_index_to_webhook_deliveries.rb │ │ └── 20260218120000_restore_unique_index_on_board_publication_key.rb │ ├── queue_schema.rb │ ├── schema.rb │ ├── schema_sqlite.rb │ ├── seeds/ │ │ ├── 37signals.rb │ │ ├── cleanslate.rb │ │ └── honcho.rb │ └── seeds.rb ├── docs/ │ ├── API.md │ ├── development.md │ ├── docker-deployment.md │ └── kamal-deployment.md ├── lib/ │ ├── action_pack/ │ │ ├── passkey/ │ │ │ ├── challenges_controller.rb │ │ │ ├── form_helper.rb │ │ │ ├── holder.rb │ │ │ └── request.rb │ │ ├── passkey.rb │ │ ├── railtie.rb │ │ ├── web_authn/ │ │ │ ├── authenticator/ │ │ │ │ ├── assertion_response.rb │ │ │ │ ├── attestation.rb │ │ │ │ ├── attestation_response.rb │ │ │ │ ├── attestation_verifiers/ │ │ │ │ │ └── none.rb │ │ │ │ ├── data.rb │ │ │ │ └── response.rb │ │ │ ├── cbor_decoder.rb │ │ │ ├── cose_key.rb │ │ │ ├── current.rb │ │ │ ├── public_key_credential/ │ │ │ │ ├── creation_options.rb │ │ │ │ ├── options.rb │ │ │ │ └── request_options.rb │ │ │ ├── public_key_credential.rb │ │ │ └── relying_party.rb │ │ └── web_authn.rb │ ├── assets/ │ │ └── .keep │ ├── auto_link_scrubber.rb │ ├── deployment/ │ │ └── database_resolver.rb │ ├── deployment.rb │ ├── fizzy.rb │ ├── rails_ext/ │ │ ├── action_mailer_mail_delivery_job.rb │ │ ├── action_pack_passkey_infer_name_from_aaguid.rb │ │ ├── active_record_date_arithmetic.rb │ │ ├── active_record_replica_support.rb │ │ ├── active_record_uuid_type.rb │ │ ├── active_storage_analyze_job_skip_detached.rb │ │ ├── active_storage_analyze_job_suppress_broadcasts.rb │ │ ├── active_storage_authorization.rb │ │ ├── active_storage_blob_service_url_for_direct_upload_expiry.rb │ │ ├── active_support_array_conversions.rb │ │ ├── prepend_order.rb │ │ └── string.rb │ ├── tasks/ │ │ ├── dev.rake │ │ ├── saas.rake │ │ └── search.rake │ └── web_push/ │ ├── notification.rb │ └── pool.rb ├── log/ │ └── .keep ├── public/ │ ├── 400.html │ ├── 404.html │ ├── 406-unsupported-browser.html │ ├── 422.html │ ├── 500.html │ ├── error.css │ └── robots.txt ├── saas/ │ ├── .kamal/ │ │ ├── hooks/ │ │ │ ├── post-deploy │ │ │ └── pre-connect │ │ ├── secrets.beta │ │ ├── secrets.production │ │ └── secrets.staging │ ├── Dockerfile │ ├── LICENSE.md │ ├── README.md │ ├── Rakefile │ ├── app/ │ │ ├── assets/ │ │ │ └── images/ │ │ │ └── fizzy/ │ │ │ └── saas/ │ │ │ └── .keep │ │ ├── controllers/ │ │ │ ├── admin/ │ │ │ │ ├── audits_controller.rb │ │ │ │ └── stats_controller.rb │ │ │ ├── concerns/ │ │ │ │ └── card/ │ │ │ │ ├── storage_limited/ │ │ │ │ │ ├── commenting.rb │ │ │ │ │ ├── creation.rb │ │ │ │ │ └── publishing.rb │ │ │ │ └── storage_limited.rb │ │ │ └── my/ │ │ │ └── devices_controller.rb │ │ ├── jobs/ │ │ │ └── application_push_notification_job.rb │ │ ├── models/ │ │ │ ├── account/ │ │ │ │ ├── storage_exception.rb │ │ │ │ └── storage_limited.rb │ │ │ ├── application_push_device.rb │ │ │ ├── application_push_notification.rb │ │ │ ├── identity/ │ │ │ │ └── devices.rb │ │ │ ├── notification/ │ │ │ │ └── push_target/ │ │ │ │ └── native.rb │ │ │ ├── saas_record.rb │ │ │ ├── session/ │ │ │ │ └── devices.rb │ │ │ └── subscription.rb │ │ └── views/ │ │ ├── admin/ │ │ │ └── stats/ │ │ │ └── show.html.erb │ │ ├── cards/ │ │ │ ├── comments/ │ │ │ │ └── saas/ │ │ │ │ ├── _new.html.erb │ │ │ │ └── _storage_limit_exceeded.html.erb │ │ │ └── container/ │ │ │ └── footer/ │ │ │ └── saas/ │ │ │ ├── _create.html.erb │ │ │ ├── _storage_limit_exceeded.html.erb │ │ │ └── _storage_limit_notice.html.erb │ │ ├── layouts/ │ │ │ └── fizzy/ │ │ │ └── saas/ │ │ │ └── application.html.erb │ │ ├── my/ │ │ │ └── devices/ │ │ │ └── index.html.erb │ │ ├── notifications/ │ │ │ └── settings/ │ │ │ └── _native_devices.html.erb │ │ └── signup/ │ │ ├── completions/ │ │ │ └── new.html.erb │ │ └── new.html.erb │ ├── bin/ │ │ ├── broadcast_to_bc │ │ └── setup │ ├── config/ │ │ ├── database.yml │ │ ├── deploy.beta.yml │ │ ├── deploy.beta1.yml │ │ ├── deploy.beta2.yml │ │ ├── deploy.beta3.yml │ │ ├── deploy.beta4.yml │ │ ├── deploy.production.yml │ │ ├── deploy.staging.yml │ │ ├── deploy.yml │ │ ├── environments/ │ │ │ ├── beta.rb │ │ │ ├── development.rb │ │ │ ├── production.rb │ │ │ └── staging.rb │ │ ├── push.yml │ │ ├── routes.rb │ │ └── storage.yml │ ├── db/ │ │ ├── migrate/ │ │ │ ├── 20251202200249_create_console1984_tables.console1984.rb │ │ │ ├── 20251202205753_create_auditing_tables.audits1984.rb │ │ │ ├── 20251203144630_create_account_subscriptions.rb │ │ │ ├── 20251215140000_create_account_overridden_limits.rb │ │ │ ├── 20251215160000_create_account_billing_waivers.rb │ │ │ ├── 20251215170000_add_next_amount_due_in_cents_to_account_subscriptions.rb │ │ │ ├── 20251216000000_add_bytes_used_to_account_overridden_limits.rb │ │ │ ├── 20260114203313_create_action_push_native_devices.rb │ │ │ ├── 20260126230838_create_auditor_tokens.audits1984.rb │ │ │ ├── 20260317000000_drop_billing_tables.rb │ │ │ └── 20260319142914_create_account_storage_exceptions.rb │ │ └── saas_schema.rb │ ├── exe/ │ │ └── push-dev │ ├── fizzy-saas.gemspec │ ├── lib/ │ │ ├── fizzy/ │ │ │ ├── saas/ │ │ │ │ ├── authorization.rb │ │ │ │ ├── engine.rb │ │ │ │ ├── gvl_instrumentation.rb │ │ │ │ ├── metrics.rb │ │ │ │ ├── signup.rb │ │ │ │ ├── testing.rb │ │ │ │ ├── transaction_pinning.rb │ │ │ │ ├── true_client_ip.rb │ │ │ │ └── version.rb │ │ │ └── saas.rb │ │ ├── rails_ext/ │ │ │ └── active_record_tasks_database_tasks.rb │ │ ├── tasks/ │ │ │ └── fizzy/ │ │ │ └── saas_tasks.rake │ │ └── yabeda/ │ │ ├── gvl.rb │ │ └── solid_queue.rb │ ├── public/ │ │ └── .well-known/ │ │ ├── apple-app-site-association │ │ └── assetlinks.json │ ├── script/ │ │ ├── configure-lb-beta.sh │ │ ├── configure-lb-production.sh │ │ └── configure-lb-staging.sh │ └── test/ │ ├── controllers/ │ │ ├── .keep │ │ ├── admin/ │ │ │ ├── audits_controller_test.rb │ │ │ └── stats_controller_test.rb │ │ ├── card/ │ │ │ ├── storage_limited/ │ │ │ │ ├── commenting_test.rb │ │ │ │ ├── creation_test.rb │ │ │ │ └── publishing_test.rb │ │ │ └── storage_limited_test.rb │ │ ├── comment/ │ │ │ └── storage_limited_test.rb │ │ ├── my/ │ │ │ └── devices_controller_test.rb │ │ └── non_production_remote_access_test.rb │ ├── fixtures/ │ │ ├── application_push_devices.yml │ │ └── files/ │ │ └── .keep │ ├── helpers/ │ │ └── .keep │ ├── integration/ │ │ └── .keep │ ├── lib/ │ │ └── true_client_ip_test.rb │ ├── mailers/ │ │ └── .keep │ └── models/ │ ├── account/ │ │ ├── storage_exception_test.rb │ │ └── storage_limited_test.rb │ ├── identity_test.rb │ ├── notification/ │ │ └── push_target/ │ │ └── native_test.rb │ ├── session/ │ │ └── devices_test.rb │ └── signup_test.rb ├── script/ │ ├── create-identities.rb │ ├── fetch-prod-db.rb │ ├── fix-active-storage-links.rb │ ├── import-sqlite-database.rb │ ├── load-prod-db-in-dev.rb │ ├── maintenance/ │ │ ├── fix_cross_account_taggings.rb │ │ ├── remove_duplicated_search_queries.rb │ │ └── remove_duplicated_tags.rb │ ├── migrations/ │ │ ├── 20250924-populate-identities.rb │ │ ├── 20251028-populate_membership_id_on_users.rb │ │ ├── 20251029-populate-column-positions.rb │ │ ├── 20251205-backfill-verified-at.rb │ │ ├── 20260123-remove-draft-cards-from-search-index.rb │ │ ├── 20260204-fix-misplaced-comment-events.rb │ │ ├── backfill-storage-ledger.rb │ │ ├── convert-absolute-attachment-urls-to-relative.rb │ │ ├── convert-relative-attachment-urls-to-absolute.rb │ │ ├── copy-blobs-to-pure.rb │ │ ├── fill_account_closure_reasons.rb │ │ ├── generate_comments_from_events.rb │ │ ├── migrate-content-to-slugged-urls.rb │ │ ├── migrate-disk-service-blobs.rb │ │ ├── migrate_to_flat_card_urls.rb │ │ ├── migrate_to_new_cards_url_scheme.rb │ │ ├── populate_columns_from_workflow_stages.rb │ │ ├── renaming/ │ │ │ ├── content.rb │ │ │ └── files.rb │ │ ├── reset_boards_ids.rb │ │ ├── reset_cards_ids.rb │ │ └── split-sibling-paragraphs-with-p-br.rb │ ├── populate.rb │ └── remove-lb-admin-production.sh ├── storage/ │ └── .keep ├── test/ │ ├── application_system_test_case.rb │ ├── channels/ │ │ └── application_cable/ │ │ └── connection_test.rb │ ├── controllers/ │ │ ├── account/ │ │ │ └── cancellations_controller_test.rb │ │ ├── accounts/ │ │ │ ├── entropies_controller_test.rb │ │ │ ├── exports_controller_test.rb │ │ │ ├── join_codes_controller_test.rb │ │ │ └── settings_controller_test.rb │ │ ├── active_storage/ │ │ │ └── direct_uploads_controller_test.rb │ │ ├── admin/ │ │ │ └── mission_control_test.rb │ │ ├── allow_browser_test.rb │ │ ├── api/ │ │ │ └── flat_json_params_test.rb │ │ ├── api_test.rb │ │ ├── boards/ │ │ │ ├── columns/ │ │ │ │ ├── closeds_controller_test.rb │ │ │ │ ├── not_nows_controller_test.rb │ │ │ │ └── streams_controller_test.rb │ │ │ ├── columns_controller_test.rb │ │ │ ├── entropies_controller_test.rb │ │ │ ├── involvements_controller_test.rb │ │ │ └── publications_controller_test.rb │ │ ├── boards_controller_test.rb │ │ ├── cards/ │ │ │ ├── assignments_controller_test.rb │ │ │ ├── boards_controller_test.rb │ │ │ ├── closures_controller_test.rb │ │ │ ├── comments/ │ │ │ │ └── reactions_controller_test.rb │ │ │ ├── comments_controller_test.rb │ │ │ ├── drafts_controller_test.rb │ │ │ ├── goldnesses_controller_test.rb │ │ │ ├── images_controller_test.rb │ │ │ ├── not_nows_controller_test.rb │ │ │ ├── pins_controller_test.rb │ │ │ ├── previews_controller_test.rb │ │ │ ├── publishes_controller_test.rb │ │ │ ├── reactions_controller_test.rb │ │ │ ├── readings_controller_test.rb │ │ │ ├── self_assignments_controller_test.rb │ │ │ ├── steps_controller_test.rb │ │ │ ├── taggings_controller_test.rb │ │ │ ├── triages_controller_test.rb │ │ │ └── watches_controller_test.rb │ │ ├── cards_controller_test.rb │ │ ├── client_configurations_controller_test.rb │ │ ├── columns/ │ │ │ ├── cards/ │ │ │ │ └── drops/ │ │ │ │ ├── closures_controller_test.rb │ │ │ │ ├── columns_controller_test.rb │ │ │ │ ├── not_nows_controller_test.rb │ │ │ │ └── streams_controller_test.rb │ │ │ ├── left_positions_controller_test.rb │ │ │ └── right_positions_controller_test.rb │ │ ├── concerns/ │ │ │ ├── block_search_engine_indexing_test.rb │ │ │ ├── current_timezone_test.rb │ │ │ ├── request_forgery_protection_test.rb │ │ │ └── set_platform_test.rb │ │ ├── controller_authentication_test.rb │ │ ├── events/ │ │ │ └── day_timeline/ │ │ │ └── columns_controller_test.rb │ │ ├── events_controller_test.rb │ │ ├── filters_controller_test.rb │ │ ├── join_codes_controller_test.rb │ │ ├── landings_controller_test.rb │ │ ├── my/ │ │ │ ├── access_tokens_controller_test.rb │ │ │ ├── identities_controller_test.rb │ │ │ ├── menus_controller_test.rb │ │ │ ├── passkey_challenges_controller_test.rb │ │ │ ├── passkeys_controller_test.rb │ │ │ ├── pins_controller_test.rb │ │ │ └── timezones_controller_test.rb │ │ ├── notifications/ │ │ │ ├── bulk_readings_controller_test.rb │ │ │ ├── readings_controller_test.rb │ │ │ ├── settings_controller_test.rb │ │ │ ├── trays_controller_test.rb │ │ │ └── unsubscribes_controller_test.rb │ │ ├── notifications_controller_test.rb │ │ ├── prompts/ │ │ │ ├── boards/ │ │ │ │ └── users_controller_test.rb │ │ │ ├── cards_controller_test.rb │ │ │ ├── tags_controller_test.rb │ │ │ └── users_controller_test.rb │ │ ├── public/ │ │ │ ├── boards/ │ │ │ │ ├── columns/ │ │ │ │ │ ├── closeds_controller_test.rb │ │ │ │ │ ├── not_nows_controller_test.rb │ │ │ │ │ └── streams_controller_test.rb │ │ │ │ └── columns_controller_test.rb │ │ │ ├── boards_controller_test.rb │ │ │ └── cards_controller_test.rb │ │ ├── qr_codes_controller_test.rb │ │ ├── searches/ │ │ │ └── queries_controller_test.rb │ │ ├── searches_controller_test.rb │ │ ├── sessions/ │ │ │ ├── magic_links_controller_test.rb │ │ │ ├── menus_controller_test.rb │ │ │ ├── passkeys_controller_test.rb │ │ │ └── transfers_controller_test.rb │ │ ├── sessions_controller_test.rb │ │ ├── signup/ │ │ │ └── completions_controller_test.rb │ │ ├── signups_controller_test.rb │ │ ├── tags_controller_test.rb │ │ ├── users/ │ │ │ ├── avatars_controller_test.rb │ │ │ ├── data_exports_controller_test.rb │ │ │ ├── email_addresses/ │ │ │ │ └── confirmations_controller_test.rb │ │ │ ├── email_addresses_controller_test.rb │ │ │ ├── events_controller_test.rb │ │ │ ├── joins_controller_test.rb │ │ │ ├── push_subscriptions_controller_test.rb │ │ │ ├── roles_controller_test.rb │ │ │ └── verifications_controller_test.rb │ │ ├── users_controller_test.rb │ │ ├── webhooks/ │ │ │ └── activations_controller_test.rb │ │ └── webhooks_controller_test.rb │ ├── fixtures/ │ │ ├── accesses.yml │ │ ├── account/ │ │ │ └── join_codes.yml │ │ ├── accounts.yml │ │ ├── action_text/ │ │ │ └── rich_texts.yml │ │ ├── assignees_filters.yml │ │ ├── assignments.yml │ │ ├── boards.yml │ │ ├── card/ │ │ │ └── goldnesses.yml │ │ ├── cards.yml │ │ ├── closures.yml │ │ ├── columns.yml │ │ ├── comments.yml │ │ ├── entropies.yml │ │ ├── events.yml │ │ ├── exports.yml │ │ ├── filters.yml │ │ ├── filters_tags.yml │ │ ├── identities.yml │ │ ├── identity/ │ │ │ └── access_tokens.yml │ │ ├── mentions.yml │ │ ├── notifications.yml │ │ ├── pins.yml │ │ ├── reactions.yml │ │ ├── sessions.yml │ │ ├── taggings.yml │ │ ├── tags.yml │ │ ├── user/ │ │ │ └── settings.yml │ │ ├── users.yml │ │ ├── watches.yml │ │ ├── webhook/ │ │ │ ├── delinquency_trackers.yml │ │ │ └── deliveries.yml │ │ └── webhooks.yml │ ├── helpers/ │ │ ├── .keep │ │ ├── action_text_rendering_test.rb │ │ ├── application_helper_test.rb │ │ ├── entropy_helper_test.rb │ │ ├── excerpt_helper_test.rb │ │ ├── hotkeys_helper_test.rb │ │ └── html_helper_test.rb │ ├── integration/ │ │ ├── active_storage_authorization_test.rb │ │ ├── blob_key_traversal_test.rb │ │ ├── card_preview_boost_count_test.rb │ │ └── notifications_test.rb │ ├── jobs/ │ │ ├── account/ │ │ │ ├── data_import_job_test.rb │ │ │ └── incinerate_due_job_test.rb │ │ ├── delete_unused_tags_job_test.rb │ │ └── storage/ │ │ ├── materialize_job_test.rb │ │ └── reconcile_job_test.rb │ ├── lib/ │ │ ├── action_pack/ │ │ │ ├── passkey_test.rb │ │ │ └── web_authn/ │ │ │ ├── authenticator/ │ │ │ │ ├── assertion_response_test.rb │ │ │ │ ├── attestation_response_test.rb │ │ │ │ ├── attestation_test.rb │ │ │ │ ├── attestation_verifiers/ │ │ │ │ │ └── none_test.rb │ │ │ │ ├── data_test.rb │ │ │ │ └── response_test.rb │ │ │ ├── cbor_decoder_test.rb │ │ │ ├── cose_key_test.rb │ │ │ ├── public_key_credential/ │ │ │ │ ├── creation_options_test.rb │ │ │ │ └── request_options_test.rb │ │ │ └── relying_party_test.rb │ │ ├── rails_ext/ │ │ │ ├── action_pack_passkey_infer_name_from_aaguid_test.rb │ │ │ ├── active_record_uuid_type_test.rb │ │ │ ├── active_storage_analyze_job_skip_detached_test.rb │ │ │ ├── active_storage_blob_service_url_for_direct_upload_expiry_test.rb │ │ │ └── string_test.rb │ │ └── web_push/ │ │ └── persistent_request_test.rb │ ├── mailers/ │ │ ├── .keep │ │ ├── account_mailer_test.rb │ │ ├── export_mailer_test.rb │ │ ├── import_mailer_test.rb │ │ ├── magic_link_mailer_test.rb │ │ ├── notification/ │ │ │ └── bundle_mailer_test.rb │ │ ├── previews/ │ │ │ ├── export_mailer_preview.rb │ │ │ ├── magic_link_mailer_preview.rb │ │ │ ├── notification/ │ │ │ │ └── bundle_mailer_preview.rb │ │ │ └── user_mailer_preview.rb │ │ └── smtp_delivery_error_test.rb │ ├── middleware/ │ │ └── account_slug_extractor_test.rb │ ├── models/ │ │ ├── access_test.rb │ │ ├── account/ │ │ │ ├── cancellable_test.rb │ │ │ ├── cancellation_test.rb │ │ │ ├── data_transfer/ │ │ │ │ ├── action_text/ │ │ │ │ │ └── rich_text_record_set_test.rb │ │ │ │ ├── active_storage/ │ │ │ │ │ ├── blob_record_set_test.rb │ │ │ │ │ └── file_record_set_test.rb │ │ │ │ └── record_set_test.rb │ │ │ ├── export_test.rb │ │ │ ├── external_id_sequence_test.rb │ │ │ ├── import_test.rb │ │ │ ├── incineratable_test.rb │ │ │ ├── join_code_test.rb │ │ │ ├── multi_tenantable_test.rb │ │ │ └── seedeable_test.rb │ │ ├── account_test.rb │ │ ├── application_platform_test.rb │ │ ├── assignment_test.rb │ │ ├── board/ │ │ │ ├── accessible_test.rb │ │ │ ├── cards_test.rb │ │ │ └── publishable_test.rb │ │ ├── card/ │ │ │ ├── activity_spike/ │ │ │ │ └── detector_test.rb │ │ │ ├── assignable_test.rb │ │ │ ├── closeable_test.rb │ │ │ ├── colored_test.rb │ │ │ ├── commentable_test.rb │ │ │ ├── entropic_test.rb │ │ │ ├── eventable/ │ │ │ │ └── system_commenter_test.rb │ │ │ ├── eventable_test.rb │ │ │ ├── exportable_test.rb │ │ │ ├── golden_test.rb │ │ │ ├── messages_test.rb │ │ │ ├── pinnable_test.rb │ │ │ ├── postponable_test.rb │ │ │ ├── readable_test.rb │ │ │ ├── searchable_test.rb │ │ │ ├── stallable_test.rb │ │ │ ├── statuses_test.rb │ │ │ ├── taggable_test.rb │ │ │ ├── triageable_test.rb │ │ │ └── watchable_test.rb │ │ ├── card_test.rb │ │ ├── column/ │ │ │ ├── colored_test.rb │ │ │ └── positioned_test.rb │ │ ├── column_limits_test.rb │ │ ├── column_test.rb │ │ ├── comment/ │ │ │ └── searchable_test.rb │ │ ├── comment_test.rb │ │ ├── concerns/ │ │ │ └── mentions_test.rb │ │ ├── entropy_test.rb │ │ ├── event/ │ │ │ └── description_test.rb │ │ ├── filter/ │ │ │ └── search_test.rb │ │ ├── filter_test.rb │ │ ├── identity/ │ │ │ ├── access_token_test.rb │ │ │ ├── joinable_test.rb │ │ │ └── transferable_test.rb │ │ ├── identity_test.rb │ │ ├── magic_link/ │ │ │ └── code_test.rb │ │ ├── magic_link_test.rb │ │ ├── notification/ │ │ │ ├── bundle_test.rb │ │ │ ├── push_target/ │ │ │ │ └── web_test.rb │ │ │ └── pushable_test.rb │ │ ├── notification_test.rb │ │ ├── notifier/ │ │ │ ├── event_notifier_test.rb │ │ │ └── mention_notifier_test.rb │ │ ├── push/ │ │ │ └── subscription_test.rb │ │ ├── qr_code_link_test.rb │ │ ├── reaction_test.rb │ │ ├── search/ │ │ │ ├── highlighter_test.rb │ │ │ └── stemmer_test.rb │ │ ├── search_test.rb │ │ ├── signup/ │ │ │ └── account_name_generator_test.rb │ │ ├── signup_test.rb │ │ ├── ssrf_protection_test.rb │ │ ├── storage/ │ │ │ ├── attachment_tracking_test.rb │ │ │ ├── entry_test.rb │ │ │ ├── no_reuse_test.rb │ │ │ ├── total_test.rb │ │ │ ├── totaled_test.rb │ │ │ └── tracked_test.rb │ │ ├── tag_test.rb │ │ ├── time_window_parser_test.rb │ │ ├── user/ │ │ │ ├── accessor_test.rb │ │ │ ├── avatar_test.rb │ │ │ ├── configurable_test.rb │ │ │ ├── data_export_test.rb │ │ │ ├── email_address_changeable_test.rb │ │ │ ├── mentionable_test.rb │ │ │ ├── named_test.rb │ │ │ ├── notifiable_test.rb │ │ │ ├── role_test.rb │ │ │ ├── searcher_test.rb │ │ │ └── settings_test.rb │ │ ├── user_test.rb │ │ ├── webhook/ │ │ │ ├── delinquency_tracker_test.rb │ │ │ ├── delivery_test.rb │ │ │ └── triggerable_test.rb │ │ ├── webhook_test.rb │ │ └── zip_file_test.rb │ ├── routes_test.rb │ ├── system/ │ │ ├── .keep │ │ ├── back_link_navigation_test.rb │ │ ├── markdown_paste_test.rb │ │ └── smoke_test.rb │ ├── test_helper.rb │ ├── test_helpers/ │ │ ├── action_text_test_helper.rb │ │ ├── caching_test_helper.rb │ │ ├── card_activity_test_helper.rb │ │ ├── card_test_helper.rb │ │ ├── change_test_helper.rb │ │ ├── command_test_helper.rb │ │ ├── search_test_helper.rb │ │ ├── session_test_helper.rb │ │ ├── vcr_test_helper.rb │ │ └── webauthn_test_helper.rb │ └── webmock_ipaddr_extension.rb ├── tmp/ │ └── .keep └── vendor/ └── javascript/ ├── @hotwired--hotwire-native-bridge.js └── @rails--request.js