Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Aug 13, 2025

Problem

Codex reports token usage on each chat request with entries like [2025-08-13T04:38:03] tokens used: 32169 and [2025-08-13T04:38:06] tokens used: 28828. The current logs parsing logic only kept the maximum value (32169) instead of summing them to get the total usage (60997).

This resulted in underreported token usage for Codex workflows with multiple interactions.

Solution

Updated the parseLogFile function in pkg/cli/logs.go to properly handle multiple Codex token usage entries by:

  1. Adding specific Codex detection: Created extractCodexTokenUsage() to identify "tokens used: X" patterns
  2. Summing Codex entries: Multiple Codex token entries are now accumulated instead of taking only the maximum
  3. Preserving backward compatibility: Existing behavior for mixed JSON/text logs and other token patterns remains unchanged

Example

Before:

[2025-08-13T04:38:03] tokens used: 32169
[2025-08-13T04:38:06] tokens used: 28828
Result: 32169 tokens (maximum)

After:

[2025-08-13T04:38:03] tokens used: 32169
[2025-08-13T04:38:06] tokens used: 28828
Result: 60997 tokens (sum)

Testing

  • Added TestParseLogFileWithMultipleCodexTokenEntries to validate the summing behavior
  • Verified all existing tests still pass
  • Confirmed backward compatibility with Claude JSON logs and mixed format logs

The fix is surgical and minimal, only affecting the specific case of multiple Codex "tokens used" entries while preserving all existing functionality.

Warning

Firewall rules blocked me from connecting to one or more addresses

I tried to connect to the following addresses, but was blocked by firewall rules:

  • api.contoso.com
    • Triggering command: /tmp/go-build2654920358/b256/cli.test -test.testlogfile=/tmp/go-build2654920358/b256/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true (dns block)
    • Triggering command: /tmp/go-build217373110/b001/cli.test -test.testlogfile=/tmp/go-build217373110/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true (dns block)
    • Triggering command: /tmp/go-build3082135891/b001/cli.test -test.testlogfile=/tmp/go-build3082135891/b001/testlog.txt -test.paniconexit0 -test.timeout=10m0s -test.v=true (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] codex reports token usage on each chat request so you will find multiple entries [2025-08-13T04:38:03] tokens used: 32169 which need to be added to get the total usage token. - update the logs.go logic to handle this case. ``` ] } [2025-08-13T04:... Fix Codex token usage summing for multiple chat requests Aug 13, 2025
Copilot AI requested a review from pelikhan August 13, 2025 14:14
@pelikhan pelikhan closed this Aug 13, 2025
@pelikhan pelikhan deleted the copilot/fix-1fdd954a-9494-491f-b741-1314e29efa8e branch August 13, 2025 14:40
pelikhan added a commit that referenced this pull request Sep 3, 2025
…and enhanced network analysis (#39) (#296)

* Initial plan

* Implement squid access.log artifact upload and logs command analysis



* Add comprehensive tests for access log functionality and complete implementation



* Refactor access log handling: separate files, improved parsing, better console output



* Make access log artifact upload conditional - only generate when proxy tools are used



* Enhance workflow run listing and artifact download with verbose output formatting

* Fix workflow name argument formatting in listWorkflowRunsWithPagination

* Refactor analyzeAccessLogs to handle single access.log file and improve verbose output

* Refactor displayAccessLogAnalysis for improved formatting and update test cases to use access.log naming convention

* Refactor analyzeAccessLogs to remove legacy single access.log file support and update tests for no access logs scenario

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants