Files
Codewhale/docs/THIRD_PARTY_NOTICES.md
CodeWhale BotandClaude Sonnet 5.5 0c2ab7d577 Move the credentials module from tui into codewhale-runtime
First placement-independent step of the S7=(c) decision (config, credentials
and OAuth move toward codewhale-runtime). credentials has no dependency on any
other tui module (0 outbound edges) and is the only module the config cluster
was blocked on at module level (23 references), so it moves first and alone.

- scripts/split/move-modules.py credentials rewrote the seven callers
  (config, config/credential_resolve, config/tests, provider_readiness,
  runtime_api/secrets, tui/provider_picker, client test cases) to
  codewhale_runtime::credentials. No shim or re-export stays in tui.
- scripts/split/widen.py widened exactly the 38 items the compiler named
  (pub(crate) to pub) and deleted three expect(dead_code) attributes the export
  fulfils. Token and key material is unchanged: Credential keeps its
  hand-written Debug that prints only the variant tag, and secrets stay behind
  the existing store trait.
- MapAuthContext is gated on any(test, feature = "test-support") instead of
  cfg(test) so tui tests can still use it across the crate boundary; the tui
  dev-dependency on runtime already enables test-support.
- codewhale-runtime gains a codewhale-secrets dependency (Cargo.toml and
  Cargo.lock). codewhale-secrets is a leaf; the command-crate-boundaries check
  still passes with runtime free of UI packages.
- One module comment that named crate::config::credential_resolve now names
  codewhale_tui::config::credential_resolve. THIRD_PARTY_NOTICES and the old
  decomposition roadmap carry the path sweep; the roadmap still plans a later
  move into codewhale-secrets, which S7=(c) supersedes.
- dead-code budget lowered 212 to 209.

Size: codewhale-runtime production lines 14,699 to 15,416 (closure_report),
tui 965,801 to 965,081. This is NOT progress on the 79-module SCC (credentials
was never in it) and the crate split is not done. Honest headroom note for the
founder: moving the rest of the S7=(c) cluster (config 14,105, settings 5,935,
config_persistence 2,180, oauth 9,896, codex_model_cache 608 = 32,724
production lines) would take runtime to about 48,140, within about 1,900 of
the 50k ceiling and far from the 10k typical target, with no room for the 13
other wave-0 modules (5,988 lines).

Verified (macOS, local only; no hosted CI, Linux/FreeBSD/Windows compile):
- scripts/dev-cargo.sh build -p codewhale-cli --bin codewhale --locked: exit 0
  (known ld __eh_frame warning only).
- nextest -p codewhale-runtime -p codewhale-tui --lib, filters runtime
  credentials:: and tui credential / secrets / provider_readiness /
  provider_picker / config::tests: 774 run, 774 passed, 0 failed, 14792
  skipped (10 runtime credentials tests, 755 tui tests).
- module_graph --check 121 closure modules PASS, blocking calls 543/165,
  command-crate-boundaries PASS, dead-code 209 (budget updated).

Not verified: a signing-in or key-saving run through the product. The
exercised paths are the existing unit and API tests only.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-25 05:41:03 -07:00

3.1 KiB

Third-party notices

Codewhale is MIT licensed (see LICENSE). Portions of it are adapted from other open-source projects. Their copyright and permission notices are reproduced here, and each adapted file carries an attribution header pointing back to its origin.

Rust crate dependencies are covered by cargo deny (see deny.toml) and are not duplicated here; this file records source-level adaptations, where the licence obligation travels with the code rather than with a package.


pi-mono — credential resolution design

  • Project: pi-mono (https://github.com/earendil-works/pi-mono)
  • Author: Mario Zechner
  • Licence: MIT
  • Used in: crates/runtime/src/credentials/ and crates/tui/src/config/credential_resolve.rs
  • What was taken: the design of packages/ai/src/auth/ — one type-tagged credential per provider, modify as the only serialized write path, a single stated precedence rule enforced in one place, an injectable auth context, and a resolution result that names its source. This is a design port into idiomatic synchronous Rust over Codewhale's existing stores, not a line-for-line copy; several doc comments are adapted closely.
MIT License

Copyright (c) 2025 Mario Zechner

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Other source-level adaptations

These predate this file. Each already names its origin in a header comment on the adapting file; they are listed here so the set is discoverable from one place. Their licence text has not been reproduced below — that is a gap, not a claim that none is required.

Codewhale file Adapted from
crates/tui/src/tui/frame_rate_limiter.rs codex-rs/tui/src/tui/frame_rate_limiter.rs, openai/codex
crates/tui/src/tui/display_refresh.rs Grok CLI's host display-refresh probe
patches/unicode-width-0.2.2/ vendored patch; upstream LICENSE-MIT retained in-tree
patches/crossterm-0.29.0/ vendored patch (surrogate key-up handling in src/event/sys/windows/parse.rs, the change proposed upstream as crossterm-rs/crossterm#1073); upstream MIT LICENSE retained in-tree