Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1142 commits
Select commit Hold shift + click to select a range
bdb1f14
Refactor gallery panel to use event delegation
drusepth Mar 9, 2026
2035ca3
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Mar 9, 2026
c0263ac
Fix NoMethodError on Book model for random_image_including_private
drusepth Mar 9, 2026
e8feb60
Add composite index to fix slow ContentChangeEvent query during login
drusepth Mar 9, 2026
dd074ec
Fix N+1 query in ContentController#edit by eager loading associations
drusepth Mar 9, 2026
f705bca
Merge pull request #1430 from indentlabs/claude/add-universe-filterin…
drusepth Mar 9, 2026
b0112ea
Merge pull request #1425 from indentlabs/claude/fix-word-counter-upda…
drusepth Mar 9, 2026
b6b2235
Fix forum pagination dark mode styling
drusepth Mar 9, 2026
7ef66ab
clean gallery panel circle-ness on icons
drusepth Mar 9, 2026
c5439c3
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Mar 9, 2026
433532c
Fix ActiveStorage ImageAnalyzer finding MiniMagick
drusepth Mar 21, 2026
fb2b2c7
Merge branch 'master' into tailwind-redesign
drusepth Mar 21, 2026
51da7f7
Fix Docker build and dependencies: revert Node to 16, fix engtagger s…
drusepth Mar 21, 2026
97cc423
Fix local file storage configuration for image uploads
drusepth Mar 21, 2026
5fc8d4f
Chore: Add Docker debug environment configuration
drusepth Mar 27, 2026
b91d0b8
Fix: Style forum replacement tags and tooltips with Tailwind
drusepth Mar 27, 2026
32d8b91
Fix: Apply correct formatting to moderator username links and blocked…
drusepth Mar 27, 2026
90f361a
Fix: Ensure navbar search bar maintains full width on mobile
drusepth Mar 27, 2026
50a6827
Feature: Add Site Uptime link to footer
drusepth Mar 27, 2026
d523965
Fix: Resolve blank page on image deletion via standard HTTP requests
drusepth Mar 27, 2026
d226609
Feature: Add support for saving notes on image uploads
drusepth Mar 27, 2026
018f6c0
add more suggested hair styles to autocomplete
drusepth Mar 27, 2026
267235a
Style new messageboard form with Tailwind CSS
drusepth Mar 27, 2026
9c43f3e
Clean up unused new.html.erb views and move Talk to Character tool to…
drusepth Mar 27, 2026
dc9b83a
Migrate Thredded moderation pages to Tailwind CSS
drusepth Mar 27, 2026
926d336
Fix mobile search layout and behavior in navbar
drusepth Mar 27, 2026
0062703
Include Thredded flash messages styling and moderation stats updates
drusepth Mar 27, 2026
c052a6c
redesign opencharacters export page with tailwind
drusepth Mar 27, 2026
f281789
allow notebook prod url hosts
drusepth Apr 1, 2026
5617850
Support image descriptions for Basil Commission images
drusepth Apr 1, 2026
4242dab
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Apr 1, 2026
50dd700
Fix 404 on image description updates in gallery panel
drusepth Apr 1, 2026
3cb5e2c
Fix DoubleRenderError in UsersController dynamically defined endpoints
drusepth Apr 1, 2026
88af3d7
Restore stylized hero banner to worldbuilding edit pages
drusepth Apr 1, 2026
f643a5b
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Apr 1, 2026
72464b3
UI: Show 'Last post by' instead of 'Started by' on thread list
drusepth Apr 1, 2026
cb29e15
Show image thumbnails for recently edited pages on dashboard
drusepth Apr 1, 2026
bd15329
don't mark-dirty the page from image notes
drusepth Apr 1, 2026
ae0c67b
Refactor image thumbnail logic to HasImageUploads
drusepth Apr 1, 2026
6acef51
Maximize thumbnail size in dashboard recent pages list
drusepth Apr 1, 2026
b57acdf
Implement custom_thumbnail_url directly on ContentPage wrapper
drusepth Apr 1, 2026
bb71c9b
Use private thumbnails for /my/content/recent lists
drusepth Apr 1, 2026
033fe15
Allow Grid View cards to show private images securely
drusepth Apr 1, 2026
eeea434
Allow Dashboard Most-Edited cards to display private images
drusepth Apr 1, 2026
ec8998e
Show image descriptions in content show gallery
drusepth Apr 1, 2026
ec8a3bb
Make edit page headers link to show page
drusepth Apr 1, 2026
6ff9a33
Fix pin icon CSS on content#show pages to be a perfect circle
drusepth Apr 1, 2026
101eb11
remove button we nixed
drusepth Apr 1, 2026
4045be9
Restructure content show page by moving universe card
drusepth Apr 1, 2026
5c5b0c7
Finish Table of Contents feature for public universe browsing
claude Apr 2, 2026
853b88c
Merge pull request #1435 from indentlabs/claude/review-table-of-conte…
drusepth Apr 2, 2026
4b4d9e7
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Apr 2, 2026
a989906
Redesign Universe Table of Contents and internal category index pages…
drusepth Apr 2, 2026
934448a
Fix 500 error on autosave when Redis is unavailable
drusepth Apr 3, 2026
bb4dc77
Fix N+1 query in ContentSerializer
drusepth Apr 3, 2026
ed849ef
show what's in the universe pages from the unvierse page
drusepth Apr 3, 2026
a70c216
Add Universe content tabs and Encyclopedia sidebar card
drusepth Apr 3, 2026
32dd01d
Merge pull request #1431 from indentlabs/claude/audit-document-analys…
drusepth Apr 3, 2026
fcf9508
Upgrade to Tailwind CSS v3
drusepth Apr 3, 2026
753820c
Add Encyclopedia link to Edit page tools for universes
drusepth Apr 3, 2026
737c42c
Fix text wrapping and link styling in user-generated content
drusepth Apr 3, 2026
12431ec
Redirect user back to previous page when selecting a universe
drusepth Apr 3, 2026
dfbed0d
Fix sidebar icon scaling sizes for consistency
drusepth Apr 3, 2026
01858b6
Refactor Universe wiki card styling and alignment
drusepth Apr 3, 2026
38f6fa0
Standardize Book settings sidebars and add privacy toggles
drusepth Apr 3, 2026
b74ee96
Standardize gallery styling and image upload components
drusepth Apr 3, 2026
b3612c4
Add universe filter reminder UI to content index pages
drusepth Apr 3, 2026
8736754
Smooth Table of Contents management & tab URL syncing
drusepth Apr 3, 2026
e360013
Introduce public book pages and add quick links to book edit UI
drusepth Apr 7, 2026
27f4b76
Refactor header_asset_for helper to ensure reliable asset delivery in…
drusepth Apr 7, 2026
13b8fa2
Enhance content sidebars with Template Editor link and cleaner condit…
drusepth Apr 7, 2026
4e05f33
Remove legacy 'Back to old layout' option from user dropdown
drusepth Apr 7, 2026
c58c341
Hide pagination suggestion in link modal when actively searching
drusepth Apr 7, 2026
10f7a37
Fix word count inflation on document recovery
drusepth Apr 7, 2026
f1d0a6f
Improve timeline link content modal search and sort by recency
drusepth Apr 7, 2026
08cbf18
Skip word count tracking job for default timeline events on initializ…
drusepth Apr 7, 2026
6ec0cec
Refactor header_asset_for to return native asset strings and use Acti…
drusepth Apr 7, 2026
92815cb
Refactor skip_word_count_update to rely on an instance variable flag …
drusepth Apr 7, 2026
b74752b
Apply break-words and prose styling to content fields to prevent over…
drusepth Apr 7, 2026
95f0636
Set local development active_job adapter to async
drusepth Apr 7, 2026
84d4c00
Fix timeline content partial styles and layout
drusepth Apr 7, 2026
411548c
Fix Recent Activity Most Edited count and add image_uploads eager loa…
drusepth Apr 7, 2026
ebd3aef
Optimize image eager loading on recent activity to prevent Bullet war…
drusepth Apr 7, 2026
85fc740
Fix Bullet warnings on dashboard by appropriately eager loading image…
drusepth Apr 7, 2026
08f241c
Allow owners/contributors to see private content in universe encyclop…
drusepth Apr 8, 2026
f5ee819
Fix stream conversation display
drusepth Apr 8, 2026
1f5c4b9
Restore forum list bullets
drusepth Apr 8, 2026
a8485d0
Redesign tag browse page
drusepth Apr 8, 2026
debb388
Fix content linking modal data and logic
drusepth Apr 8, 2026
171897c
Fix Recent Activity scaling and ManualAdjustment eager load crash
drusepth Apr 8, 2026
70c97bf
feat: Implement manual word count adjustments
drusepth Apr 8, 2026
bd8ce10
ui: Redesign Writing Goals CTA and update default goal labels
drusepth Apr 8, 2026
d363935
chore: Add webpack dev server to docker-compose configuration
drusepth Apr 8, 2026
50ad6a8
ui: Link dashboard activity labels to writing activity page
drusepth Apr 8, 2026
bea0d94
Configure cssnano to preserve empty variables for Tailwind v3 css var…
drusepth Apr 8, 2026
3abff2a
Fix NoMethodError for TimelineEvent and improve WordCountUpdates rend…
drusepth Apr 8, 2026
5dfd7c0
chore: Remove cssnano minifier breaking Tailwind v3 variables
drusepth Apr 8, 2026
83a489f
fix links to forums from stream
drusepth Apr 8, 2026
bc376ca
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Apr 8, 2026
ddf4de8
opt
drusepth Apr 8, 2026
7a624c6
Filter out spam/blocked forum topics from stream links
drusepth Apr 8, 2026
7f5fa60
fix node pinned version
drusepth Apr 16, 2026
68975cc
Fix slow DB query on UsersController#followers (N+1 elimination)
drusepth Apr 21, 2026
3a40650
Fix NoMethodError when word_count is nil in batch_words_written_on_dates
claude Jun 1, 2026
3cbf715
Treat blank word counts as zero in WordCountUpdate
claude Jun 2, 2026
dcdc6aa
Merge pull request #1436 from indentlabs/claude/hopeful-feynman-eIeSi
drusepth Jun 2, 2026
2267557
Fix N+1 query in Thredded::TopicsController#show
claude Jun 6, 2026
5b3646c
Fix UrlGenerationError for users without usernames in content tag links
claude Jun 6, 2026
8ca4ef7
Extract user_tag_path_for helper to centralize username fallback
claude Jun 6, 2026
6478506
Merge pull request #1437 from indentlabs/claude/serene-galileo-F6DwH
drusepth Jun 6, 2026
9587f73
Fix 500 error on word count logs page from nil word_count
claude Jun 7, 2026
6712f0a
Fix image uploads silently dropped on content edit pages
claude Jun 7, 2026
3acd414
Fix timeline events scattering after reordering
claude Jun 7, 2026
25d5484
Reorder timeline events via a single full-order endpoint
claude Jun 7, 2026
8854c57
Add controller tests for timeline event reorder endpoint
claude Jun 7, 2026
f173506
Merge pull request #1439 from indentlabs/claude/eager-faraday-sgPbH
drusepth Jun 7, 2026
059842c
Merge pull request #1440 from indentlabs/claude/intelligent-bell-gTMlQ
drusepth Jun 7, 2026
313172d
Merge pull request #1438 from indentlabs/claude/confident-rubin-94N49
drusepth Jun 7, 2026
e9c8d1d
Merge pull request #1442 from indentlabs/claude/focused-mccarthy-bOxrU
drusepth Jun 7, 2026
8234b03
Fix NoMethodError on usage analytics page for users with no content
claude Jul 18, 2026
a972247
Fix NoMethodError in BasilController#commission for fields missing la…
claude Jul 18, 2026
f598e1b
Fix nil error for logged-out visitors on share page
claude Jul 18, 2026
4e7bcec
Fix N+1 image queries on universe content list pages
claude Jul 18, 2026
604be00
Improve profile bio display and restore profile details on V2 profiles
claude Jul 18, 2026
d2e6b00
Merge pull request #1445 from indentlabs/claude/site-administrator-ni…
drusepth Jul 18, 2026
9dee9f5
Merge pull request #1444 from indentlabs/claude/basil-controller-comm…
drusepth Jul 18, 2026
e7fe4ee
Merge pull request #1443 from indentlabs/claude/nil-pluralize-usage-v…
drusepth Jul 18, 2026
a886893
Migrate transactional email from SendGrid to Amazon SES
claude Jul 29, 2026
432cd93
Fix NoMethodError in exports when a linked page no longer exists
claude Aug 3, 2026
f65bbcd
Fix NoMethodError when content-type collection action gets an invalid ID
claude Aug 3, 2026
c4c7937
Fix N+1 query in UsersController content list actions
claude Aug 3, 2026
7765e6d
Guard site_administrator? check against nil current_user in stream feed
claude Aug 3, 2026
851afd4
Merge pull request #1450 from indentlabs/claude/site-administrator-ni…
drusepth Aug 6, 2026
4893001
Merge pull request #1449 from indentlabs/claude/notebook-export-nomet…
drusepth Aug 6, 2026
d48c26d
Merge pull request #1448 from indentlabs/claude/page-types-nil-error-…
drusepth Aug 6, 2026
4335d01
Merge pull request #1447 from indentlabs/claude/n-plus-1-users-charac…
drusepth Aug 6, 2026
d98f6ec
Merge pull request #1446 from indentlabs/claude/profile-bio-display-x…
drusepth Aug 6, 2026
231ba37
Show human-readable page type names in share notifications and stream
claude Aug 6, 2026
767c6e1
Clean up share comments on user deletion and add comment moderation UI
claude Aug 6, 2026
7652303
Merge pull request #1451 from indentlabs/claude/peaceful-ritchie-7itw5u
drusepth Aug 6, 2026
4570bcc
Merge pull request #1452 from indentlabs/claude/spam-comment-user-cle…
drusepth Aug 6, 2026
b011b1b
Merge pull request #1453 from indentlabs/claude/sendgrid-ses-migratio…
drusepth Aug 6, 2026
0914801
Add inventory of all changes on tailwind-redesign vs master
claude Aug 6, 2026
a6a8ac3
Raise books status filter dropdown above card badges
claude Aug 6, 2026
1882b4f
Truncate analytics sidebar titles with CSS instead of fixed lengths
claude Aug 6, 2026
9f9d07d
Merge pull request #1454 from indentlabs/claude/books-status-dropdown…
drusepth Aug 6, 2026
f13ffbe
Fix profile header stat wrapping with compact number formatting
claude Aug 6, 2026
ed86767
Add per-feature section-writing notes for the tailwind-redesign inven…
claude Aug 6, 2026
efe9298
Merge pull request #1455 from indentlabs/claude/affectionate-galileo-…
drusepth Aug 6, 2026
76f9f38
Fix broken timeline links, tab hash restore, and timezone method on v…
claude Aug 6, 2026
edff6c7
Add regression test for content show tab navigation fixes
claude Aug 6, 2026
e0d4258
Make documents in public books readable, following the universe conve…
claude Aug 7, 2026
a0d4089
Merge pull request #1459 from indentlabs/claude/public-book-private-d…
drusepth Aug 7, 2026
4bfa7c6
Merge pull request #1457 from indentlabs/claude/long-branch-changes-i…
drusepth Aug 7, 2026
43902ce
Fix parallel Stripe subscriptions created on plan changes
claude Aug 8, 2026
c23387a
Fix timeline event reorder and tag persistence in the editor
claude Aug 8, 2026
48ebc17
Harden remaining code paths against the parallel-subscription bug
claude Aug 8, 2026
b0a9988
Fix 500 when a page update carries a file we don't accept as an image
claude Aug 8, 2026
f20147f
Restyle forum user moderation page with Tailwind
claude Aug 10, 2026
1dff522
Merge pull request #1466 from indentlabs/claude/user-moderation-tailw…
drusepth Aug 11, 2026
e9a9179
Merge pull request #1465 from indentlabs/claude/characters-controller…
drusepth Aug 11, 2026
e0b5a89
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Aug 11, 2026
e4ffe98
Merge pull request #1462 from indentlabs/claude/timeline-event-persis…
drusepth Aug 11, 2026
f448187
fix local webpacker
drusepth Aug 11, 2026
1a74a9d
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Aug 11, 2026
f7722a6
Merge pull request #1461 from indentlabs/claude/n-plus-1-universes-co…
drusepth Aug 11, 2026
9269c85
Hide forum post action menu from logged-out visitors
claude Aug 11, 2026
34b5e15
Add BookAuthorizer tests covering default and universe-less privacy
claude Aug 14, 2026
1b36171
Fix headings rendering as normal text in documents
claude Aug 14, 2026
45507c0
Surface universe-inherited visibility in book privacy UI
claude Aug 17, 2026
5251cad
Left-align Tags filter dropdown on content index
claude Aug 20, 2026
8831aac
Keep page sidebars from sliding under the site nav rail
claude Aug 20, 2026
706c1fc
Fix billing history crash from removed Stripe invoice fields
claude Aug 20, 2026
8ca117d
Guard smart sidebar against missing content pages
claude Aug 20, 2026
e6a4976
Merge pull request #1474 from indentlabs/claude/stripe-invoice-paid-m…
drusepth Aug 23, 2026
cbe9502
Fix navbar billing badge always showing PREMIUM
claude Aug 23, 2026
5c68d7a
Merge pull request #1475 from indentlabs/claude/navbar-premium-standa…
drusepth Aug 23, 2026
65e9ae4
Skip Markdown help link in tab order on post forms
claude Aug 24, 2026
5b470b5
Keep archived fields off content pages
claude Aug 24, 2026
1062590
Merge pull request #1476 from indentlabs/claude/markdown-help-tab-ski…
drusepth Aug 24, 2026
d848183
Merge pull request #1477 from indentlabs/claude/archived-fields-visib…
drusepth Aug 26, 2026
a7fdc13
Merge pull request #1473 from indentlabs/claude/sidebar-overlap-mediu…
drusepth Aug 26, 2026
39dbc52
Merge pull request #1471 from indentlabs/claude/document-headers-bug-…
drusepth Aug 26, 2026
b97cf43
Merge pull request #1470 from indentlabs/claude/created-books-default…
drusepth Aug 26, 2026
7a0e09b
Merge pull request #1468 from indentlabs/claude/forum-message-menu-au…
drusepth Aug 26, 2026
d75c73b
Merge pull request #1463 from indentlabs/claude/parallel-stripe-subsc…
drusepth Aug 26, 2026
b9bd546
reset gremlins phase
drusepth Aug 26, 2026
4274e2a
Merge branch 'tailwind-redesign' of github.com:indentlabs/notebook in…
drusepth Aug 26, 2026
63fa828
Merge pull request #1480 from indentlabs/claude/tags-dropdown-medium-…
drusepth Aug 26, 2026
294987c
Merge pull request #1478 from indentlabs/claude/nil-user-serializer-v…
drusepth Aug 26, 2026
ab0e35c
Use in-design tooltip for field archive button
claude Aug 26, 2026
5c94e0b
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Aug 26, 2026
c5b45dc
Add gallery management UX plan
claude Sep 1, 2026
a711626
Rebuild gallery management: unified cards, cover concept, no-reload u…
claude Sep 1, 2026
8c6c5d5
Add per-image framing editor and a site-wide cover image renderer
claude Sep 2, 2026
b6dd3d8
Add round-two gallery plan: per-shape covers, social preset, WebP, li…
claude Sep 2, 2026
9b2bae6
Gallery: per-shape covers, link-preview shape, WebP derivatives
claude Sep 2, 2026
853d585
Show page: gallery grid from the shared presenter with a lightbox
claude Sep 2, 2026
107fac6
Gallery uploads: HEIC conversion, camera capture, optional shrinking
claude Sep 2, 2026
d4aff8f
Gallery editor and lightbox: accessibility and dark-mode pass
claude Sep 2, 2026
6bef159
Images: preload covers on list pages and retire the legacy helpers
claude Sep 2, 2026
556a51f
Add a Characters card to the book show sidebar
claude Sep 2, 2026
3f883a5
update caniuse
drusepth Sep 4, 2026
616dc90
Keep hidden Table of Contents hidden while scrolling on edit pages
claude Sep 25, 2026
3bf8cd1
Merge pull request #1484 from indentlabs/claude/determined-darwin-qhmoxm
drusepth Sep 27, 2026
e4a7098
Subscription sync incident: recovery task, report-only sync, findings
claude Sep 27, 2026
d61bc08
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
26e2555
Drive Premium recovery from Stripe instead of an incident window
claude Sep 27, 2026
825f73b
Guard Bullet config so development env boots without the development …
claude Sep 27, 2026
6126191
Guard link field display against unparseable link attribute values
claude Sep 27, 2026
3895366
Preload cover images on the universe table of contents
claude Sep 27, 2026
78a9f73
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
20a83b9
Guard against already-removed page tags when updating tags
claude Sep 27, 2026
b0bb13c
Fix plan changes failing when the subscription has no payment method
claude Sep 27, 2026
128d33e
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
ef87ce9
Premium restore: work with a restricted Stripe key; LIMIT caps repairs
claude Sep 27, 2026
a693eae
Premium restore: list only Premium-price subscriptions; batch user lo…
claude Sep 27, 2026
e1a9c05
Charge for a new subscription instead of reviving an unpaid one
claude Sep 27, 2026
210c5f1
Fix duplicate-attribute race in content field autosaves
claude Sep 27, 2026
38375df
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
a86b30f
Gallery: stop cover-shape menu from being clipped by the card
claude Sep 27, 2026
82f3e1e
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
42f5dae
Add unique index on live attribute values
claude Sep 27, 2026
03dac83
Gallery: drop per-card privacy pill, warn on private covers
claude Sep 27, 2026
65c8ac7
Fix NameError on universe content list pages
claude Sep 27, 2026
99f2a50
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
02461bd
Rework autosave to send one save per form at a time and never drop edits
claude Sep 27, 2026
056f8a2
Gallery: bump page updated_at and log image changes to the changelog
claude Sep 27, 2026
7e69a8e
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
a4fe54b
Remove unused content edit tools partial
claude Sep 27, 2026
83b3299
Image crops job: don't depend on ImageUpload::FRAMED_STYLES
claude Sep 27, 2026
ccd2cac
Add cancel button to in-progress Basil commissions
claude Sep 27, 2026
24a7331
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
12ec51a
Add a public /community page with anonymous community-wide writing stats
claude Sep 27, 2026
d5647af
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 27, 2026
e59e92e
Give the word_count_updates for_date index migration a unique timestamp
claude Sep 27, 2026
81a0279
Precompute /community stats into small rollup tables
claude Sep 27, 2026
ee68435
Reuse end-of-day analytics reports for /community creation stats
claude Sep 27, 2026
68e9574
Avoid running each previous-count probe twice in the Postgres rollup …
claude Sep 27, 2026
e30e080
Fix broken Basil images: store base64 MD5 checksums, repair old blobs
claude Sep 28, 2026
89c3a1a
Basil images: record pixel size so saved crops actually apply
claude Sep 28, 2026
cccca05
Fix book character card calling removed thumbnail method
claude Sep 28, 2026
a9e27a2
Fix content_image_tag crash for shared page collections
claude Sep 28, 2026
6df81f2
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 28, 2026
ed5f506
Basil: build every image blob from the image bytes
claude Sep 28, 2026
84e20c0
Route all cover image checks through ContentImageHelper
claude Sep 28, 2026
f129e8d
Merge branch 'tailwind-redesign' of https://github.com/indentlabs/not…
claude Sep 28, 2026
5d0477a
Refresh /community stats hourly instead of every 15 minutes
claude Sep 28, 2026
02f60c6
/community: count pages edited this month, and simplify the hero
claude Sep 28, 2026
396201b
/community: Notebook.ai logo in the all-time card, new privacy copy, …
claude Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

# Ignore assets
/public/assets
/public/system/*
storage/*

# Super-secret stuff
Expand All @@ -41,3 +42,6 @@ node_modules
yarn-debug.log*
.yarn-integrity

# Heroku stuff
.env
db/*.sqlite3-journal
15 changes: 14 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,4 +128,17 @@ The application uses a content type system with these types of pages:
- Character, Location, Item (core types)
- Many premium content types like Creature, Planet, Religion, etc.

Creating a new content type requires following the process in `docs/content_types.md`.
Creating a new content type requires following the process in `docs/content_types.md`.

## Tailwind CSS Conventions

This project uses Tailwind CSS for styling. **Do not use the following Tailwind features** as they are not supported in our configuration:

1. **Arbitrary values** - Do not use bracket syntax like `text-[10px]`, `w-[200px]`, `mt-[17px]`, etc. Use only standard Tailwind classes or add custom values to `tailwind.config.js` if needed.

2. **Opacity shorthand** - Do not use slash syntax like `text-white/80`, `bg-black/40`, `border-gray-500/50`, etc. Instead, use separate opacity utilities:
- For backgrounds: `bg-black bg-opacity-40`
- For text: `text-white` with a wrapper using `opacity-80` if needed
- For borders: `border-gray-500 border-opacity-50`

3. **Custom sizes** - If you need a size that doesn't exist (e.g., smaller than `text-xs`), add it to the `extend` section in `tailwind.config.js`. For example, `text-xxs` is available for 10px text.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# The image to build from.
FROM ruby:3.2.1-slim
FROM ruby:3.2.3-slim

# Properties/labels for the image.
LABEL maintainer="Notebook.ai Contributors"
Expand Down
19 changes: 19 additions & 0 deletions Dockerfile.debug
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM ruby:3.2.3-slim
RUN groupadd --system --gid 1000 notebookai && useradd --system --home-dir /home/notebookai --gid notebookai --uid 1000 --shell /bin/bash notebookai
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev imagemagick libmagickwand-dev curl git libjemalloc2 && rm --recursive --force /var/lib/apt/lists/*
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" && \
case "${dpkgArch##*-}" in \
amd64) ARCH='x64';; \
arm64) ARCH='arm64';; \
*) echo "unsupported architecture"; exit 1 ;; \
esac && \
curl -fsSLO "https://nodejs.org/dist/v20.12.2/node-v20.12.2-linux-$ARCH.tar.gz" && \
tar -xzf "node-v20.12.2-linux-$ARCH.tar.gz" -C /usr/local --strip-components=1 && \
rm "node-v20.12.2-linux-$ARCH.tar.gz"
RUN npm install -g yarn@1.22.22
WORKDIR /home/notebookai
COPY Gemfile Gemfile.lock package.json yarn.lock ./
RUN bundle install && yarn install
COPY . .
RUN chown -R notebookai:notebookai /home/notebookai
USER notebookai
12 changes: 7 additions & 5 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ gem 'filesize'
gem 'paperclip' # TODO: we want to migrate off this game to ActiveStorage
gem 'rmagick'
gem 'image_processing'
gem 'mini_magick'
gem 'active_storage_validations'

# Authentication
Expand Down Expand Up @@ -55,7 +56,7 @@ gem 'react-rails'
# Form enhancements
gem 'redcarpet' #markdown formatting
gem 'acts_as_list' #sortables
gem 'tribute' # @mentions
# gem 'tribute' # @mentions - Replaced with Alpine.js implementation

# SEO
gem 'meta-tags'
Expand Down Expand Up @@ -106,6 +107,9 @@ gem 'redis', '~> 5.1.0'
# Exports
gem 'csv'

# Diff generation for document revisions
gem 'diffy'

# Admin
gem 'rails_admin'

Expand All @@ -132,12 +136,9 @@ end

group :test, :production do
gem 'pg', '~> 1.5'

gem "mini_racer", "~> 0.6.3" # TODO: audit whether we can remove this
end

group :test do
gem 'codeclimate-test-reporter', require: false # TODO: remove this
gem 'database_cleaner'
gem 'selenium-webdriver'
gem 'rspec-rails', '~> 5.0'
Expand All @@ -148,7 +149,7 @@ end

group :development do
gem 'web-console'
gem 'listen'
# gem 'listen'
gem 'bullet'
gem 'rack-mini-profiler'
gem 'memory_profiler'
Expand All @@ -167,3 +168,4 @@ group :worker do
gem 'ibm_watson'
gem 'textstat'
end

28 changes: 3 additions & 25 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1797,8 +1797,6 @@ GEM
logger (~> 1.5)
climate_control (0.2.0)
cocoon (1.2.15)
codeclimate-test-reporter (1.0.9)
simplecov (<= 0.13)
coderay (1.1.3)
coffee-rails (5.0.0)
coffee-script (>= 2.2.0)
Expand Down Expand Up @@ -1835,6 +1833,7 @@ GEM
responders
warden (~> 1.2.3)
diff-lcs (1.6.2)
diffy (3.4.4)
discordrb (3.5.0)
discordrb-webhooks (~> 3.5.0)
ffi (>= 1.9.24)
Expand All @@ -1843,7 +1842,6 @@ GEM
websocket-client-simple (>= 0.3.0)
discordrb-webhooks (3.5.0)
rest-client (>= 2.0.0)
docile (1.1.5)
domain_name (0.6.20240107)
dotenv (3.1.8)
dotenv-rails (3.1.8)
Expand Down Expand Up @@ -1936,7 +1934,6 @@ GEM
activesupport (>= 3.0)
nokogiri (>= 1.6)
jmespath (1.6.2)
json (2.11.3)
jwt (2.2.3)
kaminari (1.2.2)
activesupport (>= 4.1.0)
Expand Down Expand Up @@ -1966,12 +1963,6 @@ GEM
letter_opener (~> 1.9)
railties (>= 6.1)
rexml
libv8-node (16.19.0.1-aarch64-linux)
libv8-node (16.19.0.1-arm64-darwin)
libv8-node (16.19.0.1-x86_64-linux)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.7.0)
loofah (2.24.0)
crass (~> 1.0.2)
Expand Down Expand Up @@ -1999,8 +1990,6 @@ GEM
benchmark
logger
mini_mime (1.1.5)
mini_racer (0.6.4)
libv8-node (~> 16.19.0.0)
minitest (5.25.5)
minitest-reporters (1.7.1)
ansi
Expand Down Expand Up @@ -2117,9 +2106,6 @@ GEM
rake (>= 12.2)
thor (~> 1.0)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
react-rails (3.2.1)
babel-transpiler (>= 0.7.0)
connection_pool
Expand Down Expand Up @@ -2201,11 +2187,6 @@ GEM
logger
rack (>= 2.2.4)
redis-client (>= 0.22.2)
simplecov (0.13.0)
docile (~> 1.1.0)
json (>= 1.8, < 3)
simplecov-html (~> 0.10.0)
simplecov-html (0.10.2)
sin_lru_redux (2.5.2)
slack-notifier (2.4.0)
spring (4.3.0)
Expand Down Expand Up @@ -2241,7 +2222,6 @@ GEM
tilt (2.6.0)
timeago_js (3.0.2.2)
timeout (0.4.3)
tribute (3.6.0.0)
turbo-rails (2.0.12)
actionpack (>= 6.0.0)
railties (>= 6.0.0)
Expand Down Expand Up @@ -2301,13 +2281,13 @@ DEPENDENCIES
byebug
chartkick
cocoon
codeclimate-test-reporter
coffee-rails
csv
d3-rails (~> 5.9.2)
database_cleaner
dateslices
devise
diffy
discordrb
dotenv-rails
engtagger!
Expand All @@ -2321,11 +2301,10 @@ DEPENDENCIES
image_processing
language_filter
letter_opener_web
listen
material_icons
memory_profiler
meta-tags
mini_racer (~> 0.6.3)
mini_magick
minitest-reporters (~> 1.1)
onebox!
paperclip
Expand Down Expand Up @@ -2363,7 +2342,6 @@ DEPENDENCIES
terser
textstat
thredded!
tribute
uglifier (>= 1.3.0)
web-console
webmock (~> 3.0)
Expand Down
2 changes: 0 additions & 2 deletions README.rdoc
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
= Notebook.ai
{<img src="https://codeclimate.com/github/indentlabs/notebook/badges/gpa.svg" />}[https://codeclimate.com/github/indentlabs/notebook]
{<img src="https://codeclimate.com/github/indentlabs/notebook/badges/coverage.svg" />}[https://codeclimate.com/github/indentlabs/notebook/coverage]
{<img src="http://inch-ci.org/github/indentlabs/notebook.svg?branch=master" alt="Inline docs" />}[http://inch-ci.org/github/indentlabs/notebook]

== What is Notebook.ai?
Expand Down
78 changes: 78 additions & 0 deletions STREAM_REDESIGN_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# Stream Redesign Summary

## 🎨 Professional, Minimalist, and Fun Redesign Complete!

The social activity stream has been completely redesigned with a modern, professional aesthetic that maintains fun and engaging elements.

### ✅ Key Improvements Made

#### **Visual Design**
- **Glass morphism effects** - Frosted glass header with backdrop blur
- **Gradient backgrounds** - Subtle gradients from indigo to purple throughout
- **Professional color palette** - Indigo, purple, and pink accents with clean grays
- **Enhanced typography** - Better font weights, sizing, and spacing hierarchy
- **Rounded corners** - Modern 2xl border radius for cards and components

#### **Interactive Elements**
- **Smooth animations** - Hover effects, scale transforms, and smooth transitions
- **Gradient buttons** - Eye-catching CTAs with shadow effects and hover states
- **Interactive cards** - Subtle glow effects on hover, professional shadows
- **Status indicators** - Online status dots, content type badges
- **Micro-interactions** - Button hover states, form focus effects

#### **Layout & UX**
- **Sticky glass header** - Professional navigation that stays visible
- **Card-based design** - Clean, organized content in beautiful cards
- **Better spacing** - Generous whitespace and consistent padding
- **Visual hierarchy** - Clear content organization with dividers and sections
- **Mobile responsive** - Works beautifully across all device sizes

#### **Technical Fixes**
- **MaterializeCSS conflicts resolved** - No more double dropdowns
- **Form styling** - Tailwind-styled selects work properly
- **JavaScript protection** - Prevents MaterializeCSS initialization on Tailwind components

### 🚀 New Features

#### **Enhanced Share Creation**
- Beautiful gradient-bordered creation card
- Better placeholder text and instructions
- Visual feedback for public sharing
- Professional form styling

#### **Modern Feed Items**
- Glass morphism card design
- Content type badges with brand colors
- Interactive hover effects
- Better comment threading
- Professional interaction buttons (Like, Comment, Share)

#### **Improved Navigation**
- Icon-enhanced navigation buttons
- Search with keyboard shortcut indicators
- Professional toggle states
- Smooth transitions between views

#### **Professional Empty States**
- Beautiful empty state illustrations
- Encouraging call-to-action buttons
- Context-appropriate messaging

### 🎯 Design Principles Applied

1. **Professional** - Clean lines, consistent spacing, professional typography
2. **Minimalist** - Removed visual clutter, focused on content
3. **Fun** - Gradients, animations, playful hover effects
4. **Modern** - Glass morphism, subtle shadows, rounded corners
5. **Accessible** - Good contrast, clear hierarchy, readable fonts

### 💫 Visual Effects Used

- **Backdrop blur filters** for glass effects
- **CSS gradients** for backgrounds and buttons
- **Box shadows** with color tinting
- **Transform animations** for hover states
- **Opacity transitions** for smooth interactions
- **Border radius** for modern appearance

The stream now feels like a premium, professional social platform while maintaining the creative and fun nature that makes Notebook.ai special!
3 changes: 3 additions & 0 deletions app/assets/config/manifest.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
//= link_tree ../images
//= link_directory ../javascripts .js
//= link_directory ../stylesheets .css
//= link preload/jquery-3.1.1.min.js
//= link Chart.bundle.js
//= link chartkick.js
Binary file added app/assets/images/card-headers/books.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/card-headers/books.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/landing/notebook-hero-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/landing/notebook-hero-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/tristan/face.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/tristan/portrait.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 0 additions & 28 deletions app/assets/javascripts/_initialization.js

This file was deleted.

Loading