Skip to content

chore(ci): harden CI + roadmap for fearless-utils hygiene#1297

Open
WRRicht3r wants to merge 642 commits intodevelopfrom
chore/ci-utils-roadmap-hardening
Open

chore(ci): harden CI + roadmap for fearless-utils hygiene#1297
WRRicht3r wants to merge 642 commits intodevelopfrom
chore/ci-utils-roadmap-hardening

Conversation

@WRRicht3r
Copy link
Copy Markdown

Notes: references:
- shared-features-spm pin 6d6cb16
- web3-swift dedupe 7.7.7
- optional Google keys injection
- FearlessKeys gated by INCLUDE_FEARLESS_KEYS

@WRRicht3r WRRicht3r force-pushed the chore/ci-utils-roadmap-hardening branch 2 times, most recently from 9c91aeb to b7a28f0 Compare November 4, 2025 12:54
…already metatype

- Replace self.addressFactory = type(of: addressFactory) back to direct assignment in targeted files

Signed-off-by: William Richter <richter@soramitsu.co.jp>
- If param is AddressFactory.Type, keep direct assignment
- Else assign metatype with type(of:)

Signed-off-by: William Richter <richter@soramitsu.co.jp>
- Normalize property to AddressFactory.Type (dedupe .Type.Type)
- Replace self.addressFactory = addressFactory with AddressFactory.self

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…essFactory.self

- Line-anchored and inline pattern to catch spacing/comments variants in targeted files

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…den assignment rewrite

- Collapse any AddressFactory.Type.Type -> AddressFactory.Type
- Aggressive replacement of self.addressFactory = addressFactory (spacing/comments) to AddressFactory.self

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…et files

Signed-off-by: William Richter <richter@soramitsu.co.jp>
- Force property and init param to AddressFactory.Type
- Normalize assignment to use param metatype
- Flatten any AddressFactory.Type.Type to AddressFactory.Type

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Add shell guard to Modules Mock and Common Mock phases to skip when Pods/Cuckoo/run is missing. Preserves local behavior; prevents PhaseScriptExecution failures on PR agents without private pods.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Detect Cuckoo via  or /Pods; fall back to Pods/. Use  to invoke. Ensure output directory exists to avoid write failures in CI.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
CI env detected (CI=true). Use committed mocks; avoid PhaseScriptExecution flakiness when generator or inputs are not stable on runners.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Re-encode CI skip block with \n and escaped quotes to satisfy Nanaimo/Xcodeproj parser while preserving behavior.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r
Copy link
Copy Markdown
Author

@codex critique this codebase

@soramitsu soramitsu deleted a comment from chatgpt-codex-connector Bot Nov 6, 2025
@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

  • Added docs/CodexCritique.md documenting scene-management regressions, singleton coupling risks, and cancellation handling gaps observed in the Fearless iOS codebase. docs/CodexCritique.mdL1-L11

Testing

  • ⚠️ Not run (docs-only change)

View task →

…cate typealiases

CommonMocks.swift and ModuleMocks.swift: drop SSFModels import and local typealiases that shadow app types, keep single @testable import fearless to avoid symbol ambiguity and redeclarations on CI.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…iases to fearless.*

Strip all 'import SSFModels' from committed mocks and add top-level typealiases mapping MetaAccountModel/ChainAccountResponse to fearless module to avoid ambiguous lookup.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…/ChainAsset

Fix missing type errors by importing SSFModels at header and explicitly aliasing core types while keeping MetaAccountModel/ChainAccountResponse bound to fearless module.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…cates from generated mocks

Add SSFModels bindings (AssetModel, ChainModel, ChainAsset, ChainFormat, AccountId, StakingType, ChainAssetKey) and app-protocol aliases in CuckooTypealiases.swift. Remove header aliases/imports from CommonMocks.swift and ModuleMocks.swift to avoid redeclarations and ambiguity.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r
Copy link
Copy Markdown
Author

@codex critique this codebase

@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

  • Added docs/CodexCritique.md to document scene-management gaps, singleton-heavy composition, concurrency cancellation risks, and URL handler synchronization issues in the Fearless root stack. docs/CodexCritique.mdL1-L45

Testing

  • ⚠️ Tests not run (docs-only change)

View task →

- FearlessApplication.dropSession(): resolve active foreground window using connectedScenes and UIWindowScene windows instead of deprecated UIApplication.shared.windows.first.
- MainTabBarViewFactory.createView(): stop using deprecated keyWindow; resolve ApplicationStatusPresentable window via connectedScenes.
- HistoryService.fetchTransactionHistory: avoid invoking completion when the operation was cancelled to prevent teardown crashes.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ter cancellation-aware; make URL handler thread-safe

- RootPresenterFactory: add Dependencies container and overload to support constructor injection while keeping default singleton-backed path.
- RootPresenter: mark @mainactor, store and cancel Task handle on reload/deinit; remove extra main queue hops.
- URLHandlingService: add concurrent queue with barrier writes and snapshot reads; make registry updates thread-safe.
- docs: add CodexCritique.md capturing identified issues and directions.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Swift forbids deinit in extensions; keep cancellation in-class.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…col in dependencies

RootPresenterFactory.Dependencies now carries KeystoreProtocol; defaults to SoraKeystore.Keychain().

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…n; align OnboardingViewInput method signature

Satisfy nonisolated protocol requirements under Swift 6 while keeping UI mutations on main via DispatchQueue.main.async.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r
Copy link
Copy Markdown
Author

@codex fix the codecov issues once and for all

@chatgpt-codex-connector
Copy link
Copy Markdown

Summary

Testing

  • ⚠️ Not run (Xcode simulator tooling unavailable in the current container).

View task →

…igger)

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ation

- drop older duplicate class from TonChainSelectionTests

- keep canonical NetworkWorkerCompatibilityTests in ChainRegistry test group

- unblocks fearless.tests simulator test action

Signed-off-by: William Richter <richter@soramitsu.co.jp>
- use platform=iOS Simulator,arch=arm64,id=<UDID> in codecov workflow

- removes xcodebuild multiple-matching-destinations warning on dual-arch simulator entries

Signed-off-by: William Richter <richter@soramitsu.co.jp>
- remove redundant NetworkWorker compatibility tests from ConnectionPoolTests

- keep canonical coverage in NetworkWorkerCompatibilityTests

- narrows ConnectionPoolTests to connection-pool behavior only

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@takemiyamakoto
Copy link
Copy Markdown

@codex review

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3c79d46664

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread fearless/Common/Services/ChainRegistry/ChainRegistry.swift Outdated
…ngInfoTests

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ON node

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ection

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
@takemiyamakoto
Copy link
Copy Markdown

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: acc540d17d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread fearless/ApplicationLayer/TonJettonInjector.swift Outdated
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Copy link
Copy Markdown

@takemiyamakoto takemiyamakoto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93e4246f12

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread fearless/Common/Services/ChainRegistry/ChainRegistry.swift Outdated
WRRicht3r added 6 commits May 1, 2026 10:41
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
@takemiyamakoto
Copy link
Copy Markdown

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

…on error handling

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@takemiyamakoto
Copy link
Copy Markdown

@codex review

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