feat(clearfolio): expose queryable capability readiness to planners - #537
Open
cursor[bot] wants to merge 8 commits into
Open
Conversation
Authenticated GET /api/capabilities and attachment 503 reuse the configuration-only evaluator so operators and the 산출물 dialog can act without coupling optional conversion to /api/health liveness. Co-authored-by: Seongho Bae <seonghobae@users.noreply.github.com>
seonghobae
changed the base branch from
fix/clearfolio-artifact-origin-policy-489-reconciled
to
feat/clearfolio-capability-readiness-489
August 16, 2026 16:03
seonghobae
marked this pull request as ready for review
August 24, 2026 01:33
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.
Buyer and operator impact
Startup logs are not a planner control surface. This bounded Clearfolio slice gives authenticated operators the same non-secret readiness record that the planner UI uses, prevents avoidable upload/view work when local conversion configuration is unsafe or unavailable, and keeps whole-process
/api/healthliveness independent from the optional document-viewer capability.This is a child of #502 and does not close #489.
Exact current stack
develop:2c328875e00e86537df3e965170be80532571cad;feat/clearfolio-capability-readiness-489@9e465a2cdebc6769717914160f24ecb2b339e163;abcd68c20ef073818d1869f2a5e891fb99248a05;cursor/bc-7295b3cf-ffc9-426a-b244-d93d50dc6d53-190f;The current child remains stacked directly on the exact #502 head. Any parent, contributor-head, protected-base, review, or check movement invalidates revision-sensitive evidence until freshly revalidated.
Production contract
GET /api/capabilitiesreturns{capabilities:{clearfolio:{ready,mode,reason,action}}}from configuration-only evaluation. Anonymous callers receive401; the query performs no provider DNS/HTTP request.GET /api/healthstays liveness-only{ok:true}so an optional conversion dependency cannot take the planner process out of service.fetchreplaced by a throwing function, and client-side notice behavior.Current informational review observations do not demonstrate product defects: already-converted artifacts intentionally stop opening when the locally configured trust boundary becomes unready; a failed advisory capability query leaves the client input enabled but the server remains authoritative; authenticated capability 401 follows the existing global unauthorized-session contract; capability readiness is process-bound and consistent with startup logging; and the duplicate local readiness parse is negligible. They are not promoted into blockers without a realistic failing reproduction.
Current repaired finding and evidence
A current-head review observation exposed a real contract mismatch on the predecessor: view checked attachment status before local Clearfolio readiness, so a persisted
PENDINGattachment in unconfigured production returned 409 instead of the documented actionable 503.96af8abfa0d9c73671cfad1d0d21eedd06e7adc0: Server Tests run33035773372reproduced409 !== 503with providerfetchreplaced by a throwing function.server/app.mjs.abcd68c20ef073818d1869f2a5e891fb99248a05: Server Tests run33036284907completed successfully;unit-and-apiandcloud-e2eboth passed, including the new persisted-pending view regression.These results are behavioral evidence only, not merge-authorizing exact-head evidence: the current repository Server Tests workflow still checks out synthetic pull-request merge revision
2f1dd611f0bebe129aca611515a776cee5160988rather than proving the immutable contributor SHA. ScopeWeave #523 owns repository-native exact-head Server Tests/coverage integrity;ContextualWisdomLab/.github#1222owns organization-reusable SAST/Security exact-head integrity. Pending, queued, skipped-required, cancelled, absent, neutral, failed, stale, predecessor, synthetic-only, status-only, author-only, or model-only evidence is non-authorizing.Stack and merge boundary
Do not integrate independently of #502/#538/#498/#493 and their protected predecessors. After the prerequisite stack reaches protected
develop, reconcile this bounded semantic delta onto the resulting protected head and regenerate every then-applicable exact-head deterministic/browser/owned statement-branch-function-line coverage/docstring/CodeQL/SAST/security/dependency/supply-chain/package/SBOM/provenance/review gate. Require zero valid unresolved defect findings and a qualifying independent current-head/last-push approval under live governance.Remote Clearfolio reachability, retry/idempotency, persisted provider lifecycle, and final release acceptance remain #489 work; do not duplicate the Clearfolio repository's source authority or invent a second wire contract.
Refs #489 #502 #523