← 1.0.0 backlogs ISS-14

The old product name survives in three production constants, assembled byte by byte

Type
Debt — deliberate residue, plus one stale comment
Found while
SAPE-17
Triage
Defer
Status
Open
Severity
Low — nothing to remove; the measurable defect is a comment

Description

After SAPE-17, the old product name is gone from the format tag and from every key label. It survives in exactly three non-test constants, each spelled from single-character literals so that a string grep does not find it:

internal/naming/naming.go:31   var target     = string([]byte{'r','s','q','l'})
internal/server/server.go:857  var oldFileExt = "." + string([]byte{'r','s','q','l'})
internal/cli/cli.go:474        var oldFileExt = "." + string([]byte{'r','s','q','l'})

All three are intentional, and the page should say so rather than read as a cleanup list.

Evidence

Triage

Does it lose data, break a promise on a public surface, or stop somebody installing and running? No — and the residue is the thing preventing a data-loss shape, not causing one. Removing oldFileExt would take away the guard that stops a silently empty database; removing naming.target would take away the patrol that keeps the rename done.

Defer, and reframe: there is no cleanup to schedule here. The open decision is when the migration aid retires, which both comments already call out as "meant to be removed once operators have confirmed they have moved their database files". Since no build has ever been released, there are no such operators and no such files, so the aid guards against a case that cannot yet exist — but it costs nothing and removing it is a decision about a migration, not about a rename.

The stale sentence is a two-line edit and is worth doing whenever somebody is next in either file. It is not a release gate; it is the reason this issue is open rather than closed.

If deferred, what it costs to wait