main · last commit
6 hours ago ·
ti41arbu
sr-ht-dolt-ux7 browse.Log reports an unparseable start hash as an internal failure
Past Stand
bd reopen sr-ht-dolt-ux7
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-08-13T05:46:20Z |
| Started | 2026-08-13T06:27:39Z |
| Updated | 2026-08-13T06:35:00Z |
| Closed | 2026-08-13T06:35:00Z |
browse.Log classifies a from-hash that is not a parseable dolt hash with a plain fmt.Errorf and has no sentinel for it, so a caller that hands over a mistyped cursor is told the service broke rather than that the ref does not exist. Found while building the MCP get_commit_log cursor (7a77409): mcpsrv cannot classify it without parsing a hash format that browse/ owns, so the fix belongs in browse/.
Wrap the MaybeParse arm of Log in ErrRefNotFound, the sentinel the package already uses for "this ref names nothing". mcpsrv then answers it as the ordinary miss it is, through the refMiss classifier that already exists.
browse test: a garbage from-hash returns an error satisfying errors.Is(err, ErrRefNotFound); the MCP tool answers it as a miss rather than an internal error.
No outgoing dependencies.
Nothing depends on this issue.
| id | sr-ht-dolt-ux7 |
| content_hash | 4b1926735da5ca79103be3182a885d250e69d467de48e359793621e66cb29728 |
| title | browse.Log reports an unparseable start hash as an internal failure |
| description | browse.Log classifies a from-hash that is not a parseable dolt hash with a plain fmt.Errorf and has no sentinel for it, so a caller that hands over a mistyped cursor is told the service broke rather than that the ref does not exist. Found while building the MCP get_commit_log cursor (7a77409): mcpsrv cannot classify it without parsing a hash format that browse/ owns, so the fix belongs in browse/. |
| design | Wrap the MaybeParse arm of Log in ErrRefNotFound, the sentinel the package already uses for "this ref names nothing". mcpsrv then answers it as the ordinary miss it is, through the refMiss classifier that already exists. |
| acceptance_criteria | browse test: a garbage from-hash returns an error satisfying errors.Is(err, ErrRefNotFound); the MCP tool answers it as a miss rather than an internal error. |
| notes | |
| status | closed |
| priority | 3 |
| issue_type | bug |
| assignee | NULL |
| estimated_minutes | NULL |
| created_at | 2026-08-13T05:46:20Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-08-13T06:35:00Z |
| closed_at | 2026-08-13T06:35:00Z |
| closed_by_session | |
| external_ref | NULL |
| spec_id | |
| compaction_level | 0 |
| compacted_at | NULL |
| compacted_at_commit | NULL |
| original_size | NULL |
| sender | |
| ephemeral | 0 |
| wisp_type | |
| pinned | 0 |
| is_template | 0 |
| mol_type | |
| work_type | |
| source_system | |
| metadata | �{} |
| source_repo | |
| close_reason | Landed in 2c8903f: the MaybeParse arm plus two more the agent found by testing rather than inspection — a well-formed but nonexistent from-hash reaching the topological iterator, and the same shape in resolveCommit — all wrapped in ErrRefNotFound via datas.ErrCommitNotFound. Genuine failures stay unwrapped, so 'not there' and 'could not answer' remain distinguishable. |
| event_kind | |
| actor | |
| target | |
| payload | |
| await_type | |
| await_id | |
| timeout_ns | 0 |
| waiters | |
| hook_bead | |
| role_bead | |
| agent_state | |
| last_activity | NULL |
| role_type | |
| rig | |
| due_at | NULL |
| defer_until | NULL |
| no_history | 0 |
| started_at | 2026-08-13T06:27:39Z |
| is_blocked | 0 |
| id | 019ff9a8-3bc1-7242-b846-44f2f18abc3b |
| issue_id | sr-ht-dolt-ux7 |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-08-13T08:46:19Z |
| id | 019ff9ce-0f48-75e3-9b86-b1c4e7714b6d |
| issue_id | sr-ht-dolt-ux7 |
| event_type | status_changed |
| actor | Eugene Blikh |
| old_value | {"id":"sr-ht-dolt-ux7","title":"browse.Log reports an unparseable start hash as an internal failure","description":"browse.Log classifies a from-hash that is not a parseable dolt hash with a plain fmt.Errorf and has no sentinel for it, so a caller that hands over a mistyped cursor is told the service broke rather than that the ref does not exist. Found while building the MCP get_commit_log cursor (7a77409): mcpsrv cannot classify it without parsing a hash format that browse/ owns, so the fix belongs in browse/.","design":"Wrap the MaybeParse arm of Log in ErrRefNotFound, the sentinel the package already uses for \"this ref names nothing\". mcpsrv then answers it as the ordinary miss it is, through the refMiss classifier that already exists.","acceptance_criteria":"browse test: a garbage from-hash returns an error satisfying errors.Is(err, ErrRefNotFound); the MCP tool answers it as a miss rather than an internal error.","status":"open","priority":3,"issue_type":"bug","owner":"bigbes@gmail.com","created_at":"2026-08-13T05:46:20Z","created_by":"Eugene Blikh","updated_at":"2026-08-13T05:46:20Z"} |
| new_value | {"status":"in_progress"} |
| comment | NULL |
| created_at | 2026-08-13T09:27:38Z |
| id | 019ff9d4-c836-7e2c-aca6-98b555761b98 |
| issue_id | sr-ht-dolt-ux7 |
| event_type | closed |
| actor | Eugene Blikh |
| old_value | |
| new_value | Landed in 2c8903f: the MaybeParse arm plus two more the agent found by testing rather than inspection — a well-formed but nonexistent from-hash reaching the topological iterator, and the same shape in resolveCommit — all wrapped in ErrRefNotFound via datas.ErrCommitNotFound. Genuine failures stay unwrapped, so 'not there' and 'could not answer' remain distinguishable. |
| comment | NULL |
| created_at | 2026-08-13T09:34:59Z |
No comments.
Close reason