It isn't so much abandoned as put on the back-burner.
The tool database was documented here:
wiki.linuxcnc.org/cgi-bin/wiki.pl?ToolDatabase
A branch containing some initial work is here:
github.com/LinuxCNC/linuxcnc/commits/andypugh/tooltable
Take a look around November 2013.
OK, so it is somewhere behind the back-burner
It isn't done exactly as I would do it now. But here is the idea...
LinuxCNC currently passes the whole tool table in to the realtime layer to make it available to the trajectory planner to do lookahead and motion buffering.
We need to abandon this, and accept that the queue is cleared any time the tool data changes. (possibly with exceptions).
Then any time the tool data changes, the system stops and makes a tool data request back to Userspace, where a query is made to get the data that the system needs out of the tool database.
I think that the logical way to do this is with a default, but editable, set of database queries (as the query _has_ to come from C++ code). In the 2013 work I had a Python layer (toolstore.py) , but I think that might not be useful.
Whatever the answer is, there needs to be a way for the integrator to configure the query.
Points of note:
What happens to tool data changes made in the realtime layer (for example when a G10 command is executed. How do we synchronise the internal and database states?
The GUIs need to understand this, and ToolEdit needs to learn a lot.
Back in 2013 I did not know enough Python to modify ToolEdit. If I was doing it now I might even _start_ there.