personal memory agent

fix(import): guard both detail reads and pin the status contract master

Follow-on to #391. The detail endpoint's second metadata read sat outside the not-found guard, so an import removed between the two reads raised instead of returning import_not_found. Both reads now share the guard; status resolution stays outside it, since it touches no filesystem. Adds the server-side coverage the change was missing. The JSON fixtures pin the client derivation, but nothing asserted that the endpoint itself returns status, error and error_stage — the half a later refactor drops silently. Two tests now pin it: an unfinished import reads running, and a failed one carries its error and stage through.


+66 -7
3 changed files