Add a number of new test cases and refactor others.
Replace NotifyOne() with ActivityMatches.Add()
Shorten arr_ to a_ in tmpl_list.go
Reduce boilerplate.
Reduce allocs in WsHubImpl.getUsers()
Reduce allocs in wolContextRender()
Use b.String() instead of string(b.Bytes()) in preparseWidget()
Reduce boilerplate.
Comment out errorBuffer.
Optimise LogWarning() with a string builder.
Avoid allocing byte slice in MicroNotFound()
Rename basePage to bp.
Reduce boilerplate.
Add DateOlderThanQ() to accCountBuilder.
Add Stmt() to accCountBuilder.
Add AccExec interface.
Optimise AccSelectBuilder.In() with a string builder.
Use Count() in DefaultActivityStream.Count()
Reduce boilerplate and duplication.
Add LockMany() to TopicStore.
Add RemoveMany() to TopicCache.
Add ClearIPs() to PollStore.
Add Purge() to RegLogStore.
Add DeleteOlderThanDays() to RegLogStore.
Add Purge() to LoginLogStore.
Add DeleteOlderThanDays() to LoginLogStore.
Add SetInt() to MetaStore.
Add SetInt64() to MetaStore.
Use Createf() in RegLogItem.Create()
Use Count() in SQLRegLogStore.Count()
Use Count() in SQLLoginLogStore.Count()
Use Countf() in SQLLoginLogStore.CountUser()
Add trailing triple dot parser test case.
Removed a block of commented code in gen router.
Reduce boilerplate.
Add Http Conn Count tracking.
Move more panel phrases into the panel namespace.
Use a string builder in hookgen.
Use Countf() in a couple of places to eliminate boilerplate.
Reduce prepared stmt boilerplate in forum store with a lambda.
Reduce prepared stmt boilerplate in topic.go with a lambda.
Reduce prepared stmt boilerplate in group.go with a lambda.
Add TestSetCreatedAt method to *Topic.
Add DateOlderThanQ method to *accDeleteBuilder and *accUpdateBuilder.
Add Stmt method to *accUpdateBuilder and *AccSelectBuilder.
Add AccBuilder interface.
Shorten variable names.
Shorten extractPerm name to ep.
Add avatar_visibility setting stub. Implementation coming in a later commit.
Don't set an IP for installer generated posts.
Add counters_perf_tick_row hook.
Add avatar_visibility phrase.
Add avatar_visibility_label phrase.
Rename forums_no_description to forums_no_desc.
Rename panel.forums_create_description_label to panel.forums_create_desc_label.
Rename panel.forums_create_description to panel.forums_create_desc.
Rename panel_forum_description to panel.forum_desc.
Rename panel_forum_description_placeholder to panel.forum_desc_placeholder.
Add panel_debug_http_conns_label phrase.
Add panel.forum_actions_head phrase.
Add panel.forum_actions_create_head phrase.
Add panel.forum_action_run_on_topic_creation phrase.
Add panel.forum_action_run_days_after_topic_creation phrase.
Add panel.forum_action_run_days_after_topic_last_reply phrase.
Add panel.forum_action_action phrase.
Add panel.forum_action_action_delete phrase.
Add panel.forum_action_action_lock phrase.
Add panel.forum_action_action_unlock phrase.
Add panel.forum_action_action_move phrase.
Add panel.forum_action_extra phrase.
Add panel.forum_action_create_button phrase.
You will need to run the patcher / updater for this commit.
Add DisableStderr config setting.
Eliminate boilerplate in main.go
Increase the number of cached q strings.
Use the ErrLogger in LogError() and LogWarning()
Add the experimental LocalErrorf()
Add Err() log function.
Reduce boilerplate in tests in other ways like a heavier use of first order functions.
Add missing AdminOnly tests in TestPermsMiddleware.
Add preliminary test of LastTopicID, TopicCount, and LastPage for topic creation on forums.
Fix FPStore check in anonymous function in TestForumPermsStore.
Test forum perm changes against specific groups and the ViewForum route.
Add alert deletion test.
Add preliminary topic list test cases.
benchmark things
Use inqbuild2 in DefaultTopicList.Tick.
Avoid doing a full paginator calculation in the topic list when the result is obvious.
Add defaultPagi and setForumList methods to DefaultTopicList.
Cache two more items in qcache.
Use a string builder in inqbuild and inqbuildstr.
Add the inqbuild2 function.
Reduce boilerplate in topic.go
Use ErrCorruptAttachPath in DefaultAttachmentStore.
Consider the possibility that the requested attachment doesn't have a file extension.
Rename variables to reduce boilerplate.
Add TestThaw.
Avoid an allocation in hookgen.
Add route_attach_start hook.
Add route_attach_post_get hook.