Sam
a94dc0c731
Revert "FIX: preview theme not working consistently"
...
This reverts commit 845cec3ba0 .
was not a needed change, but was elsewhere
2018-02-23 17:59:00 +11:00
Sam
6f076963f2
FIX: incorrect caching of theme keys
2018-02-23 17:58:13 +11:00
Sam
845cec3ba0
FIX: preview theme not working consistently
...
Avoid flash, this makes debugging much simpler as well.
Additionally URL now clearly shows you are previewing a theme.
2018-02-23 15:25:35 +11:00
Sam
f4418ae884
PERF: fast docking of timeline so it does not overlap
...
In the past we debounced all dock check this causes situations where
sometimes timeline would not dock in time especially on slow computers
This works around it by performing the dock by hand.
Also there was missing integer casting causing over aggressive re-rendering
2018-02-22 12:52:43 +11:00
Sam
720e1965e3
FEATURE: add category suppress from latest
...
In the past we used suppress_from_homepage, it had mixed semantics
it would remove from category list if category list was on home and
unconditionally remove from latest.
New setting explicitly only removes from latest list but leaves the
category list alond
2018-02-22 09:56:35 +11:00
Sam
26450f7587
allow for no lograge
...
(fixes tests)
2018-02-21 15:40:37 +11:00
Sam
ca1a3f37e3
FEATURE: add instrumentation for all external net calls
2018-02-21 15:20:29 +11:00
Sam
80ec6ce4fd
bump onebox
2018-02-21 10:06:17 +11:00
Sam
de5418a905
correct search in topic list
2018-02-20 20:47:44 +11:00
Sam
86d12bd44b
FEATURE: search within title using in:title
...
Also
- Significantly improved search ranking, title is treated most strongly
- Adds tag names to the index
- Run search re-indexer more aggressively
- Re-index topic and all posts on category change
2018-02-20 14:41:21 +11:00
Sam
73a492f721
minor changes to discourse bench
...
Ruby master is not compatible with bootsnap atm
2018-02-20 14:41:21 +11:00
Sam
a3c7ee09b6
FIX: ruby bench not working properly
...
- Remove thin which is no longer supported
- Bypass admin api rate limiting in profile environment
- Admin password was too short
- Run by default in concurrency 1 mode
- A skip bundle assets flag to speed up local testing
2018-02-19 11:37:16 +11:00
Sam
107eb5d830
FIX: binding_of_caller not working on Ruby 2.5
2018-02-19 11:37:16 +11:00
Sam
9d8df812dd
PERF: upgrade Oj gem
2018-02-19 11:37:16 +11:00
Sam
cda3f72ab8
SECURITY: don't onebox whispers
2018-02-16 08:57:20 +11:00
Sam
57e140dc07
FIX: oneboxing to private messages
2018-02-16 08:00:22 +11:00
Sam
e456ae1b6c
Revert "Upgrade mail gem to drop dependency on mime-types."
...
This reverts commit 498cc15aa9 .
Noticed a certain amount of extra allocations due to this upgrade,
reverting to confirm if this is the case
2018-02-16 07:04:22 +11:00
Sam
7af9ed6674
FEATURE: add goanna rendering engine to non crawler list
...
Goanna the fork of Gecko which is used by Pale Moon browser is not a crawler.
2018-02-16 06:30:47 +11:00
Sam
5faffeeb82
demo script for profiling middleware stack
2018-02-15 14:36:40 +11:00
Sam
94b2c70c0d
PERF: remove oga gem
...
oga gem is automatically required by the aws gem
the oga gem retains about 1mb of memory, aws now uses nokogiri
This also removes the html normalize from the pretty text specs that was
a fair bit buggy as the polls test shows.
2018-02-15 14:36:40 +11:00
Sam
d8b4627fc8
we have to define this for tests to pass
2018-02-15 13:30:34 +11:00
Sam
b5b866aab3
oops
2018-02-15 13:13:31 +11:00
Sam
c89b42c488
PERF: only require the rss library if used
...
Before:
Total allocated: 257909321 bytes (2514134 objects)
Total retained: 39681579 bytes (343387 objects)
allocated memory by gem
-----------------------------------
42875979 rss
retained memory by gem
-----------------------------------
2080188 rss
retained objects by gem
-----------------------------------
13052 rss
After:
Total allocated: 210562047 bytes (2252030 objects)
Total retained: 37433816 bytes (328635 objects)
----
So, 2 less megabytes on boot and 13000 objects stuck in ruby heaps forever.
2018-02-15 13:11:33 +11:00
Sam
38f4acd55a
FIX: rate limiter text is confusing, should not say daily
...
Also, adds easily parseable JSON so users can figure out
how long to wait when the API is limited. ("extras" "wait_seconds")
2018-02-14 15:29:50 +11:00
Sam
f028ffaf29
SECURITY: correct local onebox category checks
...
Also removes ugly "source_topic_id" from cooked posts
Patch was authored by @zogstrip
Signed-off-by: Sam <sam.saffron@gmail.com >
2018-02-14 10:40:46 +11:00
Sam
14d0450bef
FEATURE: Only load service worker for Android
...
TBD an interface for plugin to enable service workers on desktop if they need them
2018-02-13 16:23:36 +11:00
Sam
074d590abd
FIX: stop counting offline page as a page view
2018-02-13 16:19:43 +11:00
Sam
b34b1b6fe3
FIX: invite to message was not allowing groups
...
Previously we were incorrectly checking mentionable instead of messageable
Also fix edge case where multiple groups sharing a name mean that exact match override is not working
Also cleans up params sent to user selector
2018-02-13 13:28:46 +11:00
Sam Saffron
fb91d24deb
PERF: add index on user email logs
...
This index makes it much faster to figure out if a user reached
email limit on sites where lots of emails are skipped
2018-02-07 11:33:28 -05:00
Sam Saffron
884b9d4b78
PERF: optimize performance of new topics query (home page)
...
This ensures the bypass is always applied to query plan
also, add frozen strings
2018-02-06 12:37:23 -05:00
Sam Saffron
df8e43abdd
use lazy & instead of try
...
unregister ip skipper in test
raise if called when a skipper is in play
2018-02-06 10:38:15 +11:00
Sam
187b0031c5
correct specs
2018-02-01 16:16:14 +11:00
Sam
60ee9a4ccf
make tests a bit happier
2018-02-01 15:56:22 +11:00
Sam
41986cdb2f
Refactor requires login logic, reduce duplicate code
...
This also corrects the positioning in the chain of the check
and removes misuse of prepend_before_action
2018-02-01 15:17:59 +11:00
Sam
ee0d3f15c1
FEATURE: allow better fidelity for auto linkify, disable most tlds based linkify
...
New site settings:
enable_markdown_linkify: which is default on, auto links https:// and http:// and mail://
markdown_linkify_tlds: which allows control of what tlds get autolinked for cases such as www.site.com, default is com|net|gov
2018-02-01 13:22:38 +11:00
Sam
f2e7b74d88
FIX: don't return 200s when login is required to paths
...
When running `ensure_login_required` it should always happen prior to
`check_xhr` cause check xhr will trigger a 200 response
2018-02-01 12:26:45 +11:00
Sam
f3502853fa
correct spec regression
2018-01-30 08:54:37 +11:00
Sam
f946db4afe
FIX: inline oneboxer min title length of 2
...
also: cache mini onebox misses as well to cut down traffic
2018-01-30 08:40:04 +11:00
Sam
073d072aa6
correct lockfile
2018-01-29 18:28:59 +11:00
Sam
fa5880e04f
PERF: ability to crawl for titles without extra HEAD req
...
Also, introduces a much more aggressive timeout for title crawling
and introduces gzip to body that is crawled
2018-01-29 15:40:12 +11:00
Sam
1fac2ecb56
FIX: uploads not working on themes admin page
2018-01-25 21:13:06 +11:00
Sam
adae963751
ensure we do not override charset for content type
2018-01-25 18:43:42 +11:00
Sam
3b083ca0bd
correct spec
2018-01-24 13:23:27 +11:00
Sam
95ac1655bc
revert settings
2018-01-24 13:21:23 +11:00
Sam
3492a91056
FEATURE: allow site operators to disable emoji shortcuts
2018-01-24 12:21:44 +11:00
Sam
7ba06de0d6
FEATURE: disable service worker for all browsers except for android
...
Service worker is still quite experimental, only enable on android
where it provides many benefits
2018-01-24 12:03:08 +11:00
Sam
c42bb94362
PERF: slow down optimizing images per host
2018-01-24 08:53:17 +11:00
Sam
bfd052a317
PERF: guard so we only create one optimized image per process
...
This protectd sidekiq and other cases where optimized images are created on
demand so they do not dominate the machine.
2018-01-24 08:22:28 +11:00
Sam
d2025e33cf
FEATURE: bump rbtrace to latest
2018-01-23 15:36:47 +11:00
Sam
2437b0d531
FIX: regression, missing 404 page
2018-01-23 09:00:28 +11:00
Sam
060e78e884
PERF: reduce memory usage for post alerter
2018-01-22 17:11:52 +11:00
Sam
ce815276d0
Small and big should be limited via rem so it works large font mode
2018-01-22 14:22:30 +11:00
Sam
f26ff290c3
FEATURE: Shorten setting name to max_reqs
...
So it is consistent with other settings
2018-01-22 13:18:30 +11:00
Sam
83a346cd68
FIX: migrate_from_s3 rake task not working
2018-01-22 11:42:09 +11:00
Sam
36ed8f5176
Correct regression where /sidekiq/scheduler was not working
2018-01-22 10:48:35 +11:00
Sam
47058b29d3
FEATURE: emit external_id field with user webhook
2018-01-22 10:09:26 +11:00
Sam
fc36f095a7
FIX: ensure proper header transfer (except for cache control)
...
allows discourse special headers to be visible on hijacked reqs
2018-01-21 14:26:42 +11:00
Sam
8bf91b8dca
correct tracking of x runtime
2018-01-19 17:51:19 +11:00
Sam
8ad43f01c2
FIX: correctly log topic timings as background
2018-01-19 10:37:43 +11:00
Sam
4f946319b4
improve warning text
2018-01-19 08:32:15 +11:00
Sam
873624c487
FIX: never flush timings while in progress
...
Also reset last flush counter when we finally get a response from server.
2018-01-19 08:27:29 +11:00
Sam
12872d03be
PERF: run post timings in background
...
This means that if a very large amount of registered users hit
a single topic we will handle it gracefully, even if db gets slow.
2018-01-19 08:27:29 +11:00
Sam
3c0296c625
should be lower case
2018-01-17 17:16:33 +11:00
Sam
b2009d6e32
PERF: bypass theme handling on static routes
2018-01-17 16:33:17 +11:00
Sam
72b592c395
PERF: add frozen string literals to app controller
2018-01-17 16:32:52 +11:00
Sam
650ec9c73f
minor test the developer cache first before digging into email
2018-01-17 15:50:41 +11:00
Sam
b7023da894
PERF: reduce queries required for post timings
...
- also freezes a bunch of strings
- bypass active record for an exists query
2018-01-17 15:50:41 +11:00
Sam
8c47eb2951
update coderay
2018-01-17 15:50:41 +11:00
Sam
2d2602edf0
no need to log anything if term is blank
2018-01-17 11:02:53 +11:00
Sam
d7657d8e47
correct specs, ensure crawler layout only applies to html
2018-01-16 16:28:11 +11:00
Sam
7b562d2f46
FEATURE: much improved and simplified crawler detection
...
- phase one does it match 'trident|webkit|gecko|chrome|safari|msie|opera'
yes- well it is possibly a browser
- phase two does it match 'rss|bot|spider|crawler|facebook|archive|wayback|ping|monitor'
probably a crawler then
Based off: https://gist.github.com/SamSaffron/6cfad7ea3e6df321ffb7a84f93720a53
2018-01-16 15:41:45 +11:00
Sam
eaca2cb049
bypass loud logging
2018-01-16 15:41:45 +11:00
Sam
fcfce3e426
PERF: avoid expensive OR clause query info more efficiently
2018-01-15 16:38:58 +11:00
Sam
38c018a84b
FIX: invalid cache for parent category with limit_suggested_to_category
2018-01-15 16:13:29 +11:00
Sam
41a604a764
PERF: improve perf of topic suggested query with limit_suggested_to_category
2018-01-15 15:32:25 +11:00
Sam
906f189914
have to clear debounce cache for tests
2018-01-15 15:29:54 +11:00
Sam
d9788a5fb3
missed a spec
2018-01-15 14:51:04 +11:00
Sam
bf68d394f4
PERF: handle debounce in redis cause SQL can be slow
2018-01-15 14:48:28 +11:00
Sam
442a17bfb2
PERF: bypass omniauth unless in an auth path
2018-01-15 12:44:54 +11:00
Sam
e3a616764e
PERF: add frozen strings
2018-01-15 12:44:54 +11:00
Sam
2113266e51
Simplify complex conditional, add frozen strings
2018-01-15 12:44:54 +11:00
Sam
215c0d5569
FEATURE: allow system api to target users via external id or user id
...
usage ?api_key=XYZ&api_user_external_id=ABC
usage ?api_key=XYZ&api_user_id=123
2018-01-12 17:40:18 +11:00
Sam
5bf116e719
warn if missing user option record
2018-01-12 15:43:56 +11:00
Sam
7e3543d96f
correct plugin specs
2018-01-12 14:42:05 +11:00
Sam
49ed382c2a
FIX: return 429 when admin api key is limited on admin route
...
This also handles a general case where exceptions leak out prior to being handled by the application controller
2018-01-12 14:15:26 +11:00
Sam
fc05164667
demo script for demonizing using fork exec
...
minor refinements to demon
2018-01-11 13:51:52 +11:00
Sam
114294d899
PERF: cache messages so re-opening composer on same topic does not issue a req
2018-01-10 14:39:39 +11:00
Sam
daad2291ba
simplify production switch and serve extra locales from actual site
2018-01-10 08:19:51 +11:00
Sam
c9f42506b7
If login is required skip CDN
2018-01-09 17:51:53 +11:00
Sam
6b8320fea6
PERF: use cdn for extra locales
2018-01-09 17:00:42 +11:00
Sam
18a929d801
PERF: enable gzip on proxied requests
2018-01-09 13:28:05 +11:00
Sam
d5fd6d2639
PERF: defer message bus on hidden tabs so only one in 1.5 seconds happens
2018-01-09 12:39:17 +11:00
Sam
6e70065291
PERF: add some minimal caching to javascripts folder
2018-01-09 12:38:15 +11:00
Sam
ea63abf0f7
bypass mini profiler for locales
...
bypass cdn for now
2018-01-09 11:30:59 +11:00
Sam
b0a7ee1aec
FIX: source admin locale from cdn
2018-01-09 10:27:33 +11:00
Sam
8ff5f5f2ef
FIX: cache admin locale file for 24 hours
2018-01-09 10:23:49 +11:00
Sam
cecd7d0d07
FEATURE: global rate limiter can bypass local IPs
2018-01-08 08:39:17 +11:00
Sam
8d4cd57662
Update libv8 from 5.9 to 6.3
2018-01-05 17:12:04 +11:00
Sam
715cb98e95
add better diagnostics for rate limits
2018-01-05 12:14:28 +11:00
Sam
25f4d98307
improve error logging for warn_exception
2018-01-05 09:54:42 +11:00