Ctrl K
ComunidadGuías…

CHANGELOG.md

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

Archivo original ↗Preguntar a KiBot
# Changelog

All notable changes to Taskist are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow [Semantic Versioning](https://semver.org/).

Each release lists **Upgrade notes** when an install needs action beyond the steps in [UPGRADING.md](UPGRADING.md).

## [Unreleased]

### Added

- **GitHub support** alongside GitLab: multiple Git connections, several repositories per project, webhooks per repository, user accounts connected by token or OAuth, and two-way issue sync. See [docs/git-integration.md](docs/git-integration.md).
- **Merge request reviews** (Work Items → Reviews): approve, comment, reject with a reason, rebase and merge under the reviewer's own account.
- **Chat notifications** to Microsoft Teams (channel or Power Automate flow), Slack, Google Chat, Discord, Mattermost or any JSON webhook (optionally HMAC-signed), chosen per project and event.
- **Release version auto-generation** from a per-project format, with "patch of" a chosen release and live hints for manual names.
- **Closing checklist**: statuses can require root cause, resolution details or a closing merge request.
- **Appearance**: light, dark or system theme and an accent colour per user.
- **Per-user export column layouts** on top of the administrator's default.
- **Tags** for the backlog, with inline create and merge.
- **Optional Sentry error tracking** (`Sentry:Enabled` + `Sentry:Dsn`, off by default): unhandled exceptions and logged errors, with request bodies, cookies, query strings, auth headers and personal data filtered out.
- `Security:RequireHttpsCookies` and `Security:ForwardedHeaders:*` settings for plain-HTTP and reverse-proxy deployments.
- Startup checks: the Data Protection key folder must be writable; Production logs warnings for plain-HTTP cookies and an unprotected key ring.
- Test project (`src/Tests/Taskist.Tests`) and GitHub Actions CI.

### Changed

- Upgraded to **.NET 10** and EF Core 10.
- Passwords are hashed with PBKDF2-HMAC-SHA512 (210,000 iterations).
- All stored secrets are protected with ASP.NET Core Data Protection.
- Renamed *Employee* → *User* and *BacklogTask* → *Backlog* throughout.
- Backlog filters use select2; Kendo UI was removed.
- Excel export uses ClosedXML instead of EPPlus; object mapping uses Mapperly.
- Seed data moved from the install wizard to four idempotent scripts in `sql-scripts/`: schema, defaults, translations and optional sample data. A fresh install now also gets the email templates, using an inactive placeholder email account.
- Docker images target .NET 10; the migrate container runs `sql-scripts/02`–`04`.
- E-mails fill `%company%` from **Configuration → Settings → Company name** (falls back to "Taskist").

### Security

- Wiki reads (content, tree, history, linked tasks, Word export) are limited to members of the page's project; previously any signed-in user could read any project's pages by id. Restoring a version now requires the version to belong to the page, and pages and folders can no longer be moved into another project or into their own sub-folders.
- Wiki images are recorded against their page's project at upload and served only to the uploader and that project's members; previously any user with the Wiki permission could fetch any stored image (including other projects' wiki images, profile photos and unsaved task uploads) by id.
- Task attachments are access-checked on download, upload and delete, uploads require the antiforgery token, and files are served as downloads with `nosniff`.
- Uploads are limited to an allow-list of file types and a size cap; wiki images and profile photos accept raster images only.
- Files uploaded before a task is saved are linked through a signed, user-bound token instead of a raw document ID.
- The seeded administrator is only created in an empty user table, so re-running the seed scripts can never restore the default account.

### Fixed

- "Open tasks by project" on the dashboard no longer counts closed or deleted tasks.
- Missing "Reporter" label on the task form.
- Branch names from accented titles no longer split words ("déjà" → `deja`).
- Malformed wiki page or category ids no longer cause a server error; the action returns its normal "not found" response.
- Word export of a wiki page now includes its images (image links were not recognised before).
- Wiki pages now open read-only for users without edit rights (the editor call that set the mode had been removed in TinyMCE 5).

### Removed

- HR module (leave, work from home, attendance, holidays, approvals), the desktop quick-capture app, and the organisation structure (departments, designations, org chart, country/state masters).
- Issue Tracker module.
- Developer notes and QA notes fields.
- Reporting fields on tasks (reported via / on / by / to) and the generic Lookup master.
- Dev, Test and Release status fields on tasks; release tracking uses the Release Plan.
- The Client User role; signing in requires the Registered role.
- The unused "Form Name" column in the release export.
- The Configuration → Notifications tab: its daily-digest switches no longer controlled anything (the digest jobs were removed with the HR module).
- The built-in encryption key and the legacy `enc:` secret format.

### Upgrade notes

- The schema was re-baselined into a single `InitialCreate` migration. Databases from earlier releases cannot be upgraded in place — see [UPGRADING.md](UPGRADING.md).
- Environment variables are no longer prefixed: use `ConnectionStrings__AppContext`, not `TASKIST_ConnectionStrings__AppContext`.
- The Docker `uploads` volume is no longer used; attachments are stored in the database.
- New additive migration `AddWikiImage` (one new table, `WikiImage`). Docker applies it automatically; manual installs run `dotnet ef database update` or the regenerated `sql-scripts/01_schema.sql`.