Repository navigation
Description
Steps to reproduce
- Open Settings → Sessions → Session retention.
- Keep "Applies to" on Unarchived sessions and "When sessions expire" on Archive (both are the defaults).
- Hover the ⓘ next to "Applies to".
What you expected
A hint that explains the selected scope. For unarchived sessions the period counts from the session's last activity and expired sessions are archived; for archived sessions it counts from the archive time and expired sessions are deleted.
What happened instead
The hint says: "Uses Delete and counts the retention period from archiving. Unarchived sessions are kept."
That is the copy of the old "Only archived sessions" checkbox, and it contradicts all three controls on the row: the scope is Unarchived, the action is Archive, and the period runs from last activity. With "Archived sessions" selected the same sentence merely restates that mode and never explains the choice.
Where the text comes from
packages/ui/src/components/sections/openchamber/SessionRetentionSettings.tsx takes the row label from settings.layout.sessions.retention.target and the row info from settings.openchamber.sessionRetention.field.onlyArchivedDescription, unconditionally. 0e9e93d introduced that string for an "Only archived sessions" checkbox; 7bae0e7 replaced the checkbox with the two-option selector and left the string as the row's only explanation. The key still carries the checkbox name.
Suggested copy
- Unarchived sessions: "Counts the retention period from the session's last activity. Expired sessions are archived."
- Archived sessions: "Counts the retention period from the archive time. Expired sessions are deleted."
Related, same panel: the section tooltip lists the kept sessions as the five most recent, the open one, running and shared, but isSessionKeptByUser also keeps pinned sessions and sessions in the In work block, and neither tooltip mentions them.
Where does it happen? Desktop app (Windows)
OpenChamber version: 2.5.0
Screenshots

Activity
openchamber-bot commentedon Oct 26, 2026
For the maintainer:
fix-ready— cause tracedYour analysis is right, and the trace confirms the symptom exactly: the hint string you quoted matches
packages/ui/src/lib/i18n/messages/en.settings.ts:1139(onlyArchivedDescription) character for character, and it is confirmed — not just plausible — that this is what the reporter sees.Mechanism:
SessionRetentionSettings.tsx:115passesinfo={t('settings.openchamber.sessionRetention.field.onlyArchivedDescription')}to the "Applies to"SettingsFieldRowunconditionally, while the row's chip group (:117-125) freely switches betweenunarchivedandarchived. The string was written for the old "Only archived sessions" checkbox, so it both contradicts the unarchived scope and hardcodes an action ("Uses Delete") that the selector itself controls (:168disables Delete's Archive sibling when archived is selected). The retention engine backs your suggested copy:session-retention.ts:19-21counts fromtime.archivedfor archived scope andtime.updated/createdotherwise.What's new beyond the report:
onlyArchived(SessionRetentionSettings.tsx:87-89) — the row hint just needs the same branch with two new keys.packages/ui/src/lib/settings/search.ts:667reuses the staleonlyArchivedDescriptionas the settings-search description for this item, so a fix that touches only the component leaves the stale copy in search results.isSessionKeptByUser(session-retention.ts:35-37) keeps in-work and pinned sessions, and neithersessionRetention.tooltipnor.archivedTooltip(en.settings.ts:1140-1141) mentions them.Code path
SessionRetentionSettings.tsx:112-126— "Applies to" row: label fromsettings.layout.sessions.retention.target, info hardcoded toonlyArchivedDescriptionregardless ofonlyArchivedstate.en.settings.ts:1139— value: "Uses Delete and counts the retention period from archiving. Unarchived sessions are kept." (checkbox-era copy from0e9e93d;7bae0e7swapped the checkbox for the selector without replacing the row hint).session-retention.ts:19-27, 51-59— scope selects the timestamp source and the archive-vs-delete path, so the two suggested hint strings are semantically accurate.search.ts:667— same key reused as the settings-search item description.en.settings.ts:1140-1141vssession-retention.ts:35-37— section tooltips omit pinned and in-work sessions from the kept list.Suggested copy from the report works as-is; renaming the key (e.g.
field.appliesToDescriptionUnarchived/...Archived) would also retire the misleadingonlyArchivedname.fix(settings): match retention hints to scope and action (#5714)