repo: Bash reads dropped where the shell could not have moved (conservative limits of #369)
Maintainers usually reply within 1 day
@antonwolfy is already working on this.
Since Nov 4, 2026.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
Research direction
The payload names no files, so start from the Bash command splitter that #369 added to the Python tracing code and find where it ends a part at an inner ; inside $( ) or backticks. Reproduce with cd $(printf sub; true) | cat; cat AGENTS.md and check that the trailing relative read is currently dropped. Done means that case and the & and source .venv/bin/activate forms record the read when bash would leave the foreground directory alone, and reads the agent may not have seen stay dropped.
Written by the indexing model from the issue text.
Description
#369 derives read events from Claude Code Bash commands and tracks whether a command may have moved the Bash shell (cd, pushd, popd, eval, source, .). Once the shell may have moved, later relative reads are not recorded, in that call and in the calls after it.
Where the parser cannot tell whether a directory builtin ran in the foreground shell, #369 assumes it did. That only drops reads, so guidance_read, reach's fetched, skill use and uptake can undercount, but they never count a file the agent was not shown. This issue collects the forms that are dropped this way although bash would leave the foreground directory alone. A fix for each is welcome, as long as it does not keep a read the agent may not have seen.
- A
$( )or backtick substitution holding a separator, inside a piped or backgrounded directory command:cd $(printf sub; true) | cat; cat AGENTS.md,cd $(printf sub; true) & cat AGENTS.md, and the backtick forms. The splitter ends the part at the inner;before the outer|or&is seen (https://github.com/intel/dokimi/pull/369#discussion_r4447632218). - A
source .venv/bin/activatein the foreground: it counts as moving the shell, so later relative Bash reads in the trace are not recorded. - A
cdinside a shell function the agent defines and then calls is not followed (listed in the contract's limits).
A more complete fix would read the command with a real shell parser in place of the hand-written splitter. That is a dependency decision for a separate PR.
- Dominant language
- Python
- Stars
- 11
- Forks
- 9
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 318
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from intel/dokimi
-
Difficulty 4/5 3-5 days Newbie friendliness 53/100
Maintainers usually reply within 1 day
-
dependencies
Difficulty 3/5 1-2 days Newbie friendliness 49/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 8/100
Maintainers usually reply within 1 day
-
eval reference: stamp a digest of the questions file so headroom catches an edit at the same pathOpen
Difficulty 3/5 1-2 days Newbie friendliness 32/100
Maintainers usually reply within 1 day
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
area:docs documentation effort:M ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
mczielinski/ob-analytics#423 ·
Maintainers usually reply within 1 day
-
infra
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
vllm-project/vllm-ascend#21033 ·
Maintainers usually reply within 1 day