Skip to content

refactor: sans IO architecture and clippy enforcement#83

Merged
bordumb merged 10 commits intomainfrom
fn-61
Mar 11, 2026
Merged

refactor: sans IO architecture and clippy enforcement#83
bordumb merged 10 commits intomainfrom
fn-61

Conversation

@bordumb
Copy link
Contributor

@bordumb bordumb commented Mar 11, 2026

No description provided.

bordumb and others added 10 commits March 11, 2026 09:02
Add sans-IO enforcement via disallowed-methods and disallowed-types
in per-crate clippy.toml files. Bans std::fs, std::process::Command,
dirs::*, and reqwest in domain crates. Added temporary #[allow] on
allowed_signers.rs I/O calls (to be removed in fn-61.4).
Add missing fake implementations for GitConfigProvider and ArtifactSource
port traits. Both follow FakeAgentProvider pattern with call recording,
builder methods, and configurable failures.
…ct ports

Add contract test suites that verify behavioral correctness for any
implementation of GitConfigProvider, GitDiagnosticProvider,
CryptoDiagnosticProvider, and ArtifactSource. Applied to all fakes.
…(fn-61.4)

Remove direct std::fs usage from auths-sdk's allowed_signers workflow by
introducing an AllowedSignersStore port trait. CLI callers now inject a
FileAllowedSignersStore adapter, and tests use FakeAllowedSignersStore.

Also fixes integration test compilation by enabling test-utils feature
via self-referential dev-dependency in auths-sdk/Cargo.toml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove direct std::fs usage from auths-core's config.rs by introducing
a ConfigStore port trait. CLI callers now inject FileConfigStore adapter.
FakeConfigStore added to auths-core testing module.

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

Add RootsFile::parse() pure method for sans-IO callers. Add #[allow]
annotations with INVARIANT comments on all inherently I/O-bound code:
PinnedIdentityStore (file-backed adapter), EncryptedFileStorage,
agent shutdown, Unix socket lifecycle, FFI boundary, test builders,
and paths home-dir resolution.

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

Add clippy.toml to auths-core duplicating workspace rules plus
sans-IO bans. Add #[allow] on import statements, struct fields,
and test modules where the per-crate rules surface new violations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nt (fn-61.8)

Proactively annotate all I/O-performing production functions and test modules
in auths-id with #[allow(clippy::disallowed_methods)] in preparation for the
per-crate clippy.toml that will enforce sans-IO architecture.

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

Adds crates/auths-id/clippy.toml with workspace rules + sans-IO bans
(filesystem, process, dirs, network). Fixes disallowed_types coverage
on keri/cache module. All 311 tests pass, zero clippy warnings.

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

- Replace InMemoryArtifact with FakeArtifactSource::from_data() (computes real SHA-256)
- Replace FailingArtifact with FakeArtifactSource::digest_fails_with()/metadata_fails_with()
- Move FakeSecureSigner to auths-sdk/src/testing/fakes/signer.rs
- Replace FakePassphraseProvider with PrefilledPassphraseProvider from auths-core
- Document FailingKeyStorage as intentionally test-local

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@bordumb bordumb self-assigned this Mar 11, 2026
@vercel
Copy link

vercel bot commented Mar 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
auths Ready Ready Preview, Comment Mar 11, 2026 2:59pm

@github-actions
Copy link

Auths Commit Verification

Commit Status Details
1c7d4589 ❌ Failed No signature found
366779f6 ❌ Failed No signature found
432db35f ❌ Failed No signature found
a1e127fd ❌ Failed No signature found
3503949d ❌ Failed No signature found
18ed3d84 ❌ Failed No signature found
dd093a51 ❌ Failed No signature found
6f829698 ❌ Failed No signature found
a735b423 ❌ Failed No signature found
6d2fe200 ❌ Failed No signature found

Result: ❌ 0/10 commits verified


How to fix

Commit 1c7d4589 is not signed. Install auths and re-sign:

macOS: brew install auths
Linux: Download from releases

Then re-sign:

git rebase HEAD~10 --exec 'git commit --amend --no-edit -S'
git push --force-with-lease

Quickstart →

@bordumb bordumb merged commit d4ffe13 into main Mar 11, 2026
11 of 12 checks passed
@bordumb bordumb deleted the fn-61 branch March 11, 2026 14:59
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.

1 participant