Skip to content

fix(codeberg-world): tsc TS2430 + TS6133 — unblocks #5805/#5806/#5807 CI (Omit<GiteaWorld, 'forgeSpecialization'> for literal narrowing)#5808

Merged
AceHack merged 2 commits into
mainfrom
otto-cli/fix-codeberg-world-tsc-unused-import-and-interface-extends-typing-2026-05-28
May 28, 2026
Merged

fix(codeberg-world): tsc TS2430 + TS6133 — unblocks #5805/#5806/#5807 CI (Omit<GiteaWorld, 'forgeSpecialization'> for literal narrowing)#5808
AceHack merged 2 commits into
mainfrom
otto-cli/fix-codeberg-world-tsc-unused-import-and-interface-extends-typing-2026-05-28

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 28, 2026

PR #5804 merged with 2 tsc errors blocking downstream CI:

  1. LifetimeState unused import (TS6133)
  2. CodebergWorld extends GiteaWorld fails — forgeSpecialization literal narrows from 'gitea' to 'codeberg' (TS2430; literal types invariant)

Fix: remove unused import + use Omit<GiteaWorld, 'forgeSpecialization'> to drop inherited literal before re-declaring narrower 'codeberg'.

6 tests pass; tsc clean on workflow-engine files.

Unblocks #5805 (AutoLoopLifetime) + #5806 (muscle-memory carving) + #5807 (trajectory carving) tsc gates.

🤖 Generated with Claude Code

… + TS6133 (unused LifetimeState import) — unblocks #5805/#5806/#5807 CI

PR #5804 merged with 2 tsc errors that surfaced on downstream PRs:
1. LifetimeState imported but never used (TS6133)
2. CodebergWorld extends GiteaWorld fails because forgeSpecialization
   literal narrows from 'gitea' → 'codeberg' (TS2430; literal types are
   invariant; can't widen via interface-extends)

Fix:
- Remove unused LifetimeState import
- Use Omit<GiteaWorld, 'forgeSpecialization'> to drop the inherited
  literal before re-declaring narrower 'codeberg' literal

Verification:
- bunx tsc --noEmit -p tsconfig.json — clean on workflow-engine files
- bun test tools/workflow-engine/codeberg-world.test.ts — 6 pass / 0 fail

Composes with substrate:
- PR #5804 (4-adapter batch; merged with this latent tsc issue)
- PR #5805 (AutoLoopLifetime) + PR #5806 (DUs-as-muscle-memory) +
  PR #5807 (trajectory carving) all unblock from tsc gate after merge

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 28, 2026 13:08
@AceHack AceHack enabled auto-merge (squash) May 28, 2026 13:08
@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.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR unblocks downstream workflow-engine CI by fixing two TypeScript compile errors introduced in #5804: removing an unused import (TS6133) and correcting CodebergWorld’s type relationship to GiteaWorld to avoid an interface-extends incompatibility caused by narrowing a literal type (TS2430).

Changes:

  • Remove unused LifetimeState import from codeberg-world.ts (TS6133).
  • Redefine CodebergWorld to extend Omit<GiteaWorld, "forgeSpecialization"> and then redeclare forgeSpecialization: "codeberg" (fixes TS2430).

Comment thread tools/workflow-engine/codeberg-world.ts Outdated
@AceHack
Copy link
Copy Markdown
Member Author

AceHack commented May 28, 2026

Hello! I noticed that there are a number of failing lint checks on this PR. You can see the details of the failing checks here: https://github.com/Lucent-Financial-Group/Zeta/pull/5808/checks.

To prevent this in the future, you may want to run the linter locally before pushing your changes.

Thank you for your contribution!

…ot thread)

Doc bullets listed "codeOfConduct, terms-of-service" + separate
"EU-data-sovereignty marker" + "rate-limit defaults" but the interface
only declares `hostingPolicy: "non-commercial-eu-sovereign"` +
`communityGoverned: true`. The actual fields capture the same SEMANTIC
INTENT under different names; doc was using descriptive prose where the
code uses concise field names.

Rewrote doc bullets to:
- Map directly to actual fields with explicit `field: type` references
- Preserve the substrate-engineering intent (EU-sovereignty, community
  governance, non-profit hosting) as inline explanation
- Move the "rate-limit defaults" note to a separate sentence pointing
  at the inherited GiteaResourceBudget (rate-limit is the BUDGET-shape
  built in buildCodebergWorld, not a new interface field)

Non-breaking: only docblock changed; interface + implementation unchanged.

Autonomous-loop tick 2026-05-28T14:03Z resolution of PR #5808.

Co-Authored-By: Claude <noreply@anthropic.com>
@AceHack AceHack merged commit 4d50e97 into main May 28, 2026
30 of 32 checks passed
@AceHack AceHack deleted the otto-cli/fix-codeberg-world-tsc-unused-import-and-interface-extends-typing-2026-05-28 branch May 28, 2026 13:37
AceHack added a commit that referenced this pull request May 28, 2026
…ency exactOptionalPropertyTypes (#5840)

PR #5812 left tsc errors on main blocking ALL PRs from auto-merging.

Root cause: `lastNamedDependency?: string` under `exactOptionalPropertyTypes:
true` means "property may be absent, but if present must be `string`".
Line 533 assigns `lastNamedDependency: shippedAction ? undefined : prior.lastNamedDependency`
which violates the constraint (TS2375).

Fix: change type to `string | undefined` (REQUIRED with explicit undefined).
COLD_BOOT_CONTEXT updated to include the now-required field explicitly
as `undefined`.

Tested locally:
- bun --bun tsc --noEmit -p tsconfig.json → clean
- bun test tools/workflow-engine/auto-loop-lifetime.test.ts → 27/27 pass

Same fix-fwd shape as PR #5808 (codeberg-world tsc TS2430 + TS6133).

Composes with B-0867 workflow-engine substrate.

Co-authored-by: Lior <lior@zeta.dev>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.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