Ctrl K
ComunidadGuías…

CHANGELOG.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Changelog

All notable MCPlica changes are recorded here. The format follows Keep a Changelog, and release
identities follow Semantic Versioning. Unreleased entries describe repository changes only; a
version is not published until its immutable tag and release workflow complete.

## [Unreleased]

## [1.0.0-rc.2] - 2026-09-26

### Changed

- Integrated structured, rotating application logs, worker registration recovery, protected login
  destinations, and asynchronous build failure feedback.
- Preserved canonicalization isolation across cancelled requests, mutable source roles, byte limits,
  and callers; bounded cached results and retained safe database diagnostics without private rows.
- Excluded absent retrieval embeddings from AI usage counts and verified failed-run SQL NULL storage.
- Updated the container and application dependencies, explicitly installed Corepack for Node 26,
  and rebuilt the existing MinIO release from verified official source after registry removal.

- Added top margin to the project setup wizard's inline error alerts so they no longer visually
  merge with the content above them, most noticeably the info cards on the **Start build** step.

- Paged the sources list over distinct sources rather than raw version rows, so a superseded source
  version can no longer land on a different page than its latest version and render as an orphaned
  top-level entry.

- Retried a canonicalization request as the new leader instead of failing it when the concurrent
  in-flight request it was coalesced onto was cancelled by an unrelated caller, preventing one
  cancelled poll from failing every other request waiting on the same result.

- Replaced the native `window.confirm()` prompt on the Sources tab with the same in-app dialog
  already used for project deletion, so source deletion confirmation is consistent across the site.

- Raised a dedicated `ExecutionOwnershipError` when a build's execution lease is stale, and skipped
  the failure-audit write when that loss is itself the error being recorded, so an expired lease no
  longer masks the real failure behind a doomed ownership recheck.

- Declared `JSONB(none_as_null=True)` on the AI run's response/usage/cost columns so a `None` value
  is stored as true SQL `NULL`, fixing an intermittent `IntegrityError` on
  `ck_build_ai_runs_outcome` when an AI operation genuinely failed, and expanded diagnostic logging
  to surface exception types and safe constraint identifiers without exposing private row values.

- Resolved path-level OpenAPI servers before checking whether the document has a usable server URL,
  so a spec declaring servers only under a path item (valid per OpenAPI 3.1) no longer fails at
  server selection before the parser's existing path-level handling ever runs.

- Rejected OpenAPI and API Inventory documents whose operations reference an undefined security
  scheme at parse time instead of admitting them silently.

- Persisted the configured embedding model on a document index generation instead of the model name
  a provider's response happened to echo back, so a completed generation's `embedding_model` matches
  what was actually requested.

- Added a per-model AI usage and cost counter under **Settings > Usage**, showing call count, total
  tokens, and total cost per model from the build AI-run history.



## [1.0.0-rc.1] - 2026-09-04

### Changed

- Moved canonical repository and OCI source metadata to the `waqoor/MCPlica` organization
  namespace, added the owner-operated public-prerelease security/settings ledger, and made release
  asset publication compatible with GitHub immutable releases.
- Recorded the current single-maintainer governance exception: exact automated release gates remain
  mandatory, while an explicitly authorized founder self-merge is reported truthfully instead of
  being labeled as independent review.
- Updated the unprivileged Nginx image to `1.31.5-alpine3.24-slim` and made nested
  source-configuration response models validate domain records through Pydantic attribute access.
- Preserved account timestamps in authenticated identities so `GET /api/v1/auth/me` returns the
  same `created_at`, `updated_at`, and `last_login_at` values as the user record.
- Replaced the organization-license-dependent Gitleaks Action with an offline, digest-pinned
  Gitleaks CLI history scan so the required `secrets` job remains executable after transfer.
- Migrated the frontend toolchain to pnpm 11.25.0 and its explicit `allowBuilds` configuration,
  and made CI audit the complete pnpm lockfile through a digest-pinned OSV-Scanner instead of the
  registry's retired legacy endpoint.
- Added an admin-only, route-backed **Settings > Providers** workspace for write-only encrypted
  OpenRouter key rotation, live connection testing, and distinct credential/reachability/build
  readiness states.
- Corrected the public OpenRouter API default and decoded-response header handling so compressed
  model-catalog responses cannot be decompressed twice and falsely degrade the control plane.
- Updated the official MCP Python SDK to 2.1.1, made `2026-07-28` the candidate-validation
  protocol revision, and retained explicit legacy negotiation coverage on the same runtime.
- Refreshed compatible container, frontend, Python, and GitHub Actions dependencies while
  preserving the Node 24, Python 3.13, and single-host service compatibility boundaries.
- Made each cleanup dispatch use one eligibility snapshot, preventing a failed target from
  consuming multiple retry attempts in the same worker cycle when its backoff is short or the
  database is under load.
- Bound the post-build wizard transition directly to the created build so an obsolete unbound
  journey refetch cannot race the URL back to the start-build step.
- Made hosted Playwright retries diagnostic only: any flaky retry now fails CI, with regression
  coverage that rejects post-build journey requests lacking the created build identity.
- Restricted repository Actions to the recursively audited full-SHA direct/transitive action
  closure, enabled Dependabot vulnerability alerts and automated fixes, and documented the exact
  unavailable private-platform security gates without treating local scans as substitutes.
- Updated the backend and runtime development constraint to pytest 9.1.1 for
  GHSA-6w46-j5rx-g56g/CVE-2025-71176, and expanded both frozen Python advisory audits to include
  every optional development dependency rather than auditing only the production graph.

### Added

- Self-hosted FastAPI control plane, React administration UI, PostgreSQL persistence, Redis/RQ
  workers, Milvus document retrieval, and OpenRouter-backed build-time analysis.
- Deterministic OpenAPI 3.0/3.1 and API Inventory compilation into the shared
  `mcp-manifest/v1` contract, with source provenance, exact validation, immutable build evidence,
  export, diff, rebuild, and operation exclusion workflows.
- Reusable isolated MCP Streamable HTTP runtimes with static bearer or external OIDC inbound
  authentication, project-scoped upstream credentials, bounded HTTP execution, and dynamic
  Traefik routing.
- Health-before-switch deployment, stop/restart/redeploy, immutable-build rollback, durable
  command execution, fenced workers, retention cleanup, and recovery-safe lifecycle handling.
- Canonical Docker Compose development and production configurations, migration/init jobs,
  operator documentation, CI, security scanning, SBOM creation, checksums, digest signing, and
  provenance-aware release automation.

### Security

- Enforced cookie/CSRF/role authorization, encrypted write-only credentials, bounded uploads and
  external responses, SSRF/DNS/redirect controls, safe logging, non-root/read-only containers,
  resource limits, exact manifest/secret digests, and isolated runtime networks.
- Added frozen dependency locks, dependency and secret scans, pre-publication image scans,
  source/image SBOMs, Cosign verification, and immutable tag/digest refusal checks.

### Changed

- Established root `VERSION` as the `1.0.0-rc.1` authority and synchronized package, API, frontend,
  runtime, Compose, image-label, generated-contract, fixture, lockfile, and release metadata.
- Advanced the single Alembic migration line through `0025`, including legacy constraint
  normalization, current-source/build identity, runtime/cleanup execution fencing, deployment
  intent, and index-generation ownership.

### Known limitations

- The supported production topology is a single Docker Compose host; high availability,
  orchestrator-specific deployment, managed backup automation, and multi-host runtime scheduling
  are not included.
- OpenRouter availability/model access, public DNS/TLS, host hardening, external OIDC providers,
  registry permissions, and backup/restore RPO/RTO remain operator-owned production checks.
- See [the v1.0.0-rc.1 release notes](docs/releases/v1.0.0-rc.1.md) for the complete compatibility,
  migration, and evidence boundary.

[Unreleased]: https://github.com/waqoor/MCPlica/compare/v1.0.0-rc.1...HEAD
[1.0.0-rc.1]: https://github.com/waqoor/MCPlica/releases/tag/v1.0.0-rc.1