Repository navigation
Conversation
Give every analyzable language a documented lifecycle stage (preview, supported, deprecated, retired) with scheduled deprecation and sunset dates, so languages can be trialled, announced for removal, and retired without retired files silently reading as clean results. - Versioned, validated policy with a canonical digest; scheduled dates move languages forward on their own (inclusive UTC-day boundaries). - Governance checks between policy versions: no removals, no retiring a supported language without deprecation, minimum notice from the publish day, no pulling a sunset forward. Overrides need a reason and are audited. - Per-scan write-once pins (policy digest, asOf day, tenant opt-ins, config) keep retries deterministic across restarts, publishes and sunsets; the pin fingerprint belongs in scan-result cache keys. - planScan filters the engine's path-to-language map for AnalyzerRegistry.analyzeMultiple and reports skipped files and deprecation warnings; complete / partial / unsupported / empty statuses. - Tenant-scoped preview opt-ins and pins; digest-derived file-store paths. - Backward compatible: built-in default marks every engine language supported, unlisted languages are analyzed, and LANGUAGE_LIFECYCLE_ENABLED =false restores pre-policy behaviour while honouring existing pins. - Retryable CONFLICT / STORE_UNAVAILABLE vs non-retryable INVALID_INPUT, INVALID_POLICY, TRANSITION_REJECTED, UNSUPPORTED_REPOSITORY. - Prometheus metrics with bounded labels; sanitized logs that never include file paths, content, or store error messages. - Fixtures: realistic Soroban DEX repository with EVM/Starknet bridges, and a frozen sunset-boundary regression snapshot. - Docs: docs/LANGUAGE_LIFECYCLE_POLICY.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@Mainnet-ops Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Give every analyzable language a documented lifecycle stage (preview, supported, deprecated, retired) with scheduled deprecation and sunset dates, so languages can be trialled, announced for removal, and retired without retired files silently reading as clean results.
Closes #1275
Closes #1273
Closes #1272
Closes #1271