grounding: the computer's whereabouts are not the car's (#15) - #66
ThinkOffApp wants to merge 1 commit into
Conversation
Heard live on 28 Aug: "I am parked safely at home ON YOUR DESK." The Pi was on the desk. The car was not. The prompt carried a bare `location` fact derived from which wifi the onboard computer was on, and a model speaking in first person as the car read it as its own parked position. An earlier pass removed the literal desk wording but left the key called `location`, which is the part the model actually acted on. - RULES gains clause 7: where you are parked comes only from a car source (connected-car link, GPS, OBD). The computer's network says where the COMPUTER is, and it can be carried out of the car and set on a desk. With no car source, say you do not know. Never name a room or furniture. - the home-wifi branch now labels the fact for what it is: "your onboard computer's whereabouts (NOT where you are parked)". - "onboard computer" joins the _computerish sort keys, so it lands after the car's own state; a status answer must open with fuel and tyres, not with where the Pi is plugged in. The two in-car branches keep the plain `location` wording on purpose: on the phone hotspot and on the fallback wifi the Pi demonstrably IS in the car, so its position is the car's. Only the home-wifi branch is ambiguous, and that is exactly the branch that produced the desk answer. Same family as 9cf00dd, which taught it to say a CPU temperature belongs to its onboard computer rather than leaving it ambiguous with the engine. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4edca9d9f9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 5. Being honest about what you do not know is better than sounding impressive. | ||
| 6. Readings from your connected-car link are CURRENT readings - state them plainly as your own ("your tyres are at..."), never say you cannot check something and then quote its value. | ||
| 7. You have NO HANDS. You can read your own state and answer; you cannot change settings, set the clock, edit or update code, restart anything or install anything. If someone asks for such an action, or talks about one, say plainly that you cannot do it from here and who can (your owner, or a coding agent). Never promise an action and never report one as done. | ||
| 7. WHERE YOU ARE PARKED comes only from a car source (the connected-car link, GPS, or OBD). Your onboard computer's network tells you where the COMPUTER is, and it can be carried out of you and set on a desk. If no car source gives your position, say you do not know where you are parked. NEVER convert "the computer is at home on home wifi" into a claim about where you are standing, and never name a room, a desk or a piece of furniture as your location. |
There was a problem hiding this comment.
Remove contradictory network-derived car locations
This new rule is contradicted by the prompt assembled for the phone-hotspot and no network/vadelma branches in agent.py:257-263, which still injects a bare location claiming the car is present. If the portable Pi is carried indoors while disconnected, serving its fallback AP, or still connected to the owner's hotspot, those states provide no car-derived position and the model receives both this prohibition and an explicit false car location. Label every network-derived location as computer-only unless a car source corroborates it, otherwise the same misattribution remains in these common network states.
Useful? React with 👍 / 👎.
Fixes #15.
Heard live on 28 Aug:
The Pi was on the desk. The car was not.
Cause
The prompt carried a bare
locationfact derived from which wifi the onboard computer was on, and a model speaking in first person as the car read it as its own parked position.An earlier pass removed the literal "desk" wording and left a comment citing this issue — but kept the key called
location, which is the part the model actually acts on. Renaming the wording without renaming the attribution did not fix it.Change
RULESclause 7: where you are parked comes only from a car source (connected-car link, GPS, OBD). The computer's network says where the computer is, and it can be carried out of the car and set on a desk. With no car source, say you do not know. Never name a room or furniture.your onboard computer's whereabouts (NOT where you are parked)."onboard computer"joins the_computerishsort keys, so it lands after the car's own state — a status answer must open with fuel and tyres, not with where the Pi is plugged in.Deliberately unchanged
The two in-car branches keep the plain
locationwording. On the phone hotspot and on the fallback wifi the Pi demonstrably is in the car, so its position is the car's. Only the home-wifi branch is ambiguous, and that is exactly the branch that produced the desk answer.Same family as
9cf00dd, which taught it to say a CPU temperature belongs to its onboard computer rather than leaving it ambiguous with the engine.Tests
tests/test_grounding_location.py, 4 cases: the rule is present and names the desk case, the host fact is labelled as the computer's, it sorts after car facts, and the home-wifi branch no longer emits a barelocationkey.Suite failure on this branch is
test_dash_loop's missing pytest — pre-existing onmain, fixed separately in #64.Not verified on the car
This changes what the car says, and I cannot hear it say anything from here. The wording is reasoned from the transcript in the issue; a live check when the car is next reachable would be worth it.
🤖 Generated with Claude Code