That covered everything that looked low-hanging.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Feb 19 2021
A minimal implementation here is probably:
See T13612 for followup.
Continued in T13612.
Feb 18 2021
See T13602 for eventual followup.
I'm going to close this in favor of T13602, which has a more cohesive/modern discussion of the issue. Broadly:
Ah! I like that fix, and it also works for me locally. I think the protocol-length-limit is reasonable to retain on the basis of general sanity, but I'll add the negative lookbehind to further encourage PCRE to run in something resembling O(N) time.
Feb 17 2021
This is at least approximately resolved by D21562. Hopefully that'll stick if I don't kick it anymore. I may or may not land D21561, depending on whether I ultimately use it in T13586.
This passes tests, but it sure is a big mess compared to a 3-character change to just add a maximum length, and discretion is the better part of avoiding a sunk cost fallacy or something along those lines:
At least on my system, no: \w+, \w{3,}, and \w{3,}+ all take 60s+ to (fail to) match AAAAAAAA... (with total length 512KB).
We also can't pass $flags to preg_replace_callback(...) because it wasn't supported until PHP 7.4. This means preg_replace_callback() can't operate on a match-offset basis.
I've deployed these changes to secure, so hopefully any issues will present themselves.
If something goes wrong with this, the patch which fixes the problem can now change the indexer version and then all mis-indexed documents can be reindexed with:
Feb 16 2021
The existing SearchIndexVersion table (which stores document versions) may reasonably be able to store index versions too. This limits the need to apply changes to fdocument.
This has stalled for a while because it's moderately expensive to recover from if the updated index logic has a bug: rebuilding all document indexes is expensive, and it's difficult to identify the set of documents that need to be reindexed if a bug is present.
Yep, that's more constraints.
Feb 15 2021
See PHI1997, which discusses things from the perspective of reporting coverage from a build system.
In 2014, Phacility was still largely pre-revenue and the business model wasn't entirely clear, and there was value in testing support for payment processing by handling small, low-stakes charges. Phacility now has revenue and more clarity around the business model (and the payment processing code is more mature and proven), and accepting donations (even with the disclaimer that Phacility is an "evil, for-profit corporation") no longer feels appropriate.
Feb 13 2021
Feb 12 2021
Feb 8 2021
I also don't see any way to really make useful assertions about this parameter statically.
PHP8 supports named arguments. At a minimum, the builtin function call_user_func_array() has changed behavior. This script:
Feb 7 2021
Feb 5 2021
See also PHI1987 for another case of this.
- When rendering a "no view permission" hovercard, it would be nice to annotate it with an explicit "The user can't see this object" piece of context information.
- Context objects don't make it into timeline rendering engines.
- Context objects don't make it into comment previews.
Feb 4 2021
This more-or-less worked as desired. Some minor issues:
Feb 3 2021
A new linter should be introduced to detect [private final]...
I believe that covers all cases of this.
Feb 2 2021
Update the daemon UI to break tasks down by object/container.