= Version
* phabricator ca30df847e4e99aec46dd97c7bd9b4f7d8542cab (Fri, Sep 2)
* arcanist 10e5194752901959507223c01e0878e6b8312cc5 (Fri, Aug 26)
* phutil c14343ee620e43f0ba55eaf80aabcba78c732d45 (Mon, Sep 5)
= Summary
Queries that utilize `link` and `text` custom fields seem to not be filtering properly using constraints via conduit.
The below query returns all tasks, instead of only those that match. I'd expect only task 1 should be returned (since it matches the full string passed in)
= Reproduction Steps
1. Add custom field of either `link` or `text` type.
``` lang=json
{
"trac-url": {
"name": "Trac Ticket",
"type": "link",
"caption": "Linked trac ticket",
"required": false,
"search": true
}
}
```
2. Add 2 tasks. On one, fill out the `Trac Ticket` field. On the other, leave it empty. The URL doesn't matter.
3. Call `maniphest.search` with this, using the bogus URL from step 2.
``` lang=json
{
"custom.trac-url": [
"https://mysite.com/project/ticket/1"
]
}
```
4. Response includes multiple tasks instead of only the one that matches the URL.
For completeness, see {Q475} for my original use-case and example.