Skip to content

Tags: METR/inspect-eagle

Tags

v0.2.16

Toggle v0.2.16's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix AuthConfig decoding to match Hawk API response (#9)

The /auth/config endpoint returns token_endpoint and authorization_endpoint
as full URLs, but AuthConfig expected token_path and authorize_path.
JSONDecoder threw keyNotFound, surfacing the cryptic "The data couldn't
be read because it is missing." on the sign-in screen.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.2.15

Toggle v0.2.15's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
link fixes

v0.2.14

Toggle v0.2.14's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Upgrade GitHub Actions to Node.js 24 compatible versions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.2.13

Toggle v0.2.13's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fetch OIDC config from Hawk API instead of hardcoding values (#8)

Replace hardcoded issuer, client_id, audience, scopes, and URL paths
with dynamic values fetched from GET /auth/config. The config is cached
in HawkAPI to avoid redundant fetches during token refresh.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>

v0.2.12

Toggle v0.2.12's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Update API and viewer URLs to new hawk.prd.metr.org domain

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v0.2.11

Toggle v0.2.11's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
PLT-661: Add Kandji deployment to CI pipeline (#7)

* Add Kandji deployment to CI pipeline

Automatically push signed Eagle.dmg to Kandji custom app on main builds
using kpkg. Requires KANDJI_API_URL and KANDJI_TOKEN repo secrets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Temporarily allow Kandji deploy on PRs for testing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix kpkg download and use vars for KANDJI_API_URL

Use gh cli instead of unauthenticated curl (avoids GitHub API rate
limits in CI). Reference KANDJI_API_URL as a repo variable, not secret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix Rust dep caching: commit Cargo.lock, set GH_TOKEN for kpkg

Cargo.lock was missing from the repo, so the cache key was always empty
and deps were re-downloaded every build.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Remove kpkg cache step

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Enable auto-creation of Kandji custom app

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Fix kpkg config key names to match upstream schema

auto_create_new_app -> auto_create_app
dynamic_lookup_fallback -> dynamic_lookup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Stamp version into Info.plist at build time for Kandji enforcement

kpkg reads CFBundleShortVersionString from the DMG to set
MINIMUM_ENFORCED_VERSION in the audit script. Without a real version,
enforcement always passes and updates are never pushed.

Also deduplicates version computation into a shared step.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Include version in DMG filename

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Restrict Kandji deploy to non-PR builds

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.2.10

Toggle v0.2.10's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
HTTP range requests for lazy eval open, stream cancellation

- Add range_zip module: fetch zip central directory and individual
  entries via HTTP Range headers instead of downloading entire file
- Lazy open (openRemoteFileLazy): only fetches ~64KB for metadata,
  not the full multi-GB eval file
- Stream cancellation: cancel previous sample stream when switching
  samples or navigating back
- Handle "downloading" phase in poll loop for range request progress
- Falls back to full download if range requests fail

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v0.2.9

Toggle v0.2.9's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Pipeline decompression with event scanning, render events during stre…

…aming

Decompresses zip entry in 4MB chunks while simultaneously scanning for
JSON event boundaries. Events appear in the transcript with full content
as they're discovered, rather than showing spinners until loading completes.

- Add shared buffer to SampleStream for mid-stream event reads
- Add eagle_get_event_from_stream FFI for reading events during streaming
- TranscriptEventView tries stream buffer first, falls back to finalized sample
- Merge decompressing/indexing phases into single "streaming" phase
- Make extract_event_detail and extract_string_field_from_bytes public

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v0.2.8

Toggle v0.2.8's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Fix streaming indexer: inline boundary finding with event extraction

The previous approach found ALL event boundaries first (scanning 5GB),
then extracted summaries in batches. Events couldn't appear until the
full scan completed.

Now boundary scanning and summary extraction are interleaved: as each
event object boundary is found, its summary is extracted immediately
and pushed to Swift in batches of 500. Events start appearing within
seconds of the indexing phase starting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

v0.2.7

Toggle v0.2.7's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Streaming sample loading, markdown tables, toolbar fixes

- Streaming decompression: events appear incrementally as the sample
  decompresses and indexes, with progress bar showing "Decompressing 45%"
  instead of blocking for minutes on large (5GB) samples
- New FFI: eagle_open_sample_stream/poll/finish for incremental loading
- Rust stream module: background thread decompresses in 4MB chunks with
  progress, then indexes events in batches of 500, pushing to Swift
- Markdown tables: pipe-delimited tables now render as formatted grids
- Hide sandbox events (no useful info to display)
- Fix toolbar: split epoch/position into separate toolbar items with padding
- Hide "Eagle" title when no file is open

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>