th-a78e1e: rename current_datetime → get_current_datetime (stop auto-mode prompts) - #428
Merged
Conversation
…de stops prompting
The engine's permission classifier grades a tool by name: get_/read_/list_
prefixes are read-only-safe and auto-allowed, mutating names are edits (also
auto-allowed under AcceptEdits), and everything else falls into Unknown ->
ask. The clock tool `current_datetime` is a pure, argument-free read but its
name had no safe prefix, so it landed in Unknown and AcceptEdits prompted the
user before every clock read ("current_datetime is not a recognised safe
tool. Allow?").
Rename it to `get_current_datetime` so the classifier recognises it as a safe
read and auto-allows it, matching read_file/list_files. Adds a regression
test asserting the engine actually returns Verdict::Allow for the name under
AcceptEdits, plus a module note so it isn't renamed back. Updates the persona
roster, the family safe-read allow-list, the reminders relative-date guidance,
and the docs.
Broader class fix tracked separately: engine metadata-based classification
(th-4c71a6) and wiring the "always allow" grant + UI button (th-cc0894).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brentrager
enabled auto-merge (squash)
August 13, 2026 02:33
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 65f1405 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Big Smooth's auto-mode (
AcceptEdits) prompted the user before every clock read:Auto-mode has no "problematic tools" list — it auto-allows tools it recognises as safe and asks about the rest. The engine's classifier (
smooth_operator::permission::tool_category) grades a tool by name:get_*/read_*/list_*/*search*→ read-only-safe (silent), mutating names → edit (silent under AcceptEdits), everything else →Unknown→ ask. The clock tool is a pure, argument-free read, but the bare namecurrent_datetimehad no safe prefix, so it fell intoUnknownand prompted.Fix
Rename the tool
current_datetime→get_current_datetimeso the classifier recognises it as a safe read and auto-allows it (same reasonread_file/list_filesnever prompt).Verdict::Allowfor the name underAcceptEdits— fails loudly if the name loses itsget_prefix or the heuristic moves.family.rs+ ADR-008), the reminders relative-date guidance, andUsing-th-CLI.md.Not in scope (tracked)
SharedGrantswas private in the pinned core; that's why there's only Yes/No.read_only/safeflag instead of the name heuristic, killing the whole class (create_artifact,remember, calendar/reminders reads) once the daemon catches up off core 1.7.0.Verification
cargo test -p smooai-smooth-tools --lib→ 263 passed (incl. newtool_name_is_classified_safe_and_auto_allowed)cargo test -p smooai-smooth-policy --lib family→ 11 passedcargo build -p smooai-smooth-daemon→ clean🤖 Generated with Claude Code