Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7cd8163
Preserve raw linked transcript source edits
Chris0Jeky Sep 9, 2026
0ed0726
Enforce raw linked transcript length cap
Chris0Jeky Sep 9, 2026
eaf68ac
Record comparison scenarios and build attribution
Chris0Jeky Sep 9, 2026
0f498e2
Merge origin/main into transcript source fidelity fix
Chris0Jeky Sep 9, 2026
2ef4a4f
Create linked cards from saved thinking steps atomically
Chris0Jeky Sep 9, 2026
b07e148
Connect thinking steps to explicit card creation and status
Chris0Jeky Sep 9, 2026
5bed087
Settle insight analysis and retry workspace discovery safely
Chris0Jeky Sep 9, 2026
8865c58
Connect comparison trials and document overhaul continuation
Chris0Jeky Sep 9, 2026
7dfdc1a
Merge remote-tracking branch 'origin/main' into codex/2808-overhaul-c…
Chris0Jeky Sep 9, 2026
1109069
Version linked thinking material for safe import compatibility
Chris0Jeky Sep 9, 2026
7ee2c01
Merge branch 'main' into issue-1999/transcript-source-fidelity
Chris0Jeky Sep 9, 2026
768bb58
Disable checkout credential persistence and scope Pages permissions
Chris0Jeky Sep 9, 2026
d62d5e2
Coordinate board card and route discard confirmation
Chris0Jeky Sep 9, 2026
f076baa
Merge main after Chat recovery delivery
Chris0Jeky Sep 9, 2026
0e3e827
Merge remote-tracking branch 'origin/main' into codex/2808-overhaul-c…
Chris0Jeky Sep 9, 2026
a7ff71f
Integrate transcript source fidelity
Chris0Jeky Sep 9, 2026
749432c
Integrate checkout credential hardening
Chris0Jeky Sep 9, 2026
f6a2bc9
Integrate single board discard confirmation
Chris0Jeky Sep 9, 2026
3a3053a
Restore palette focus to programmatic openers
Chris0Jeky Sep 9, 2026
1124784
Merge pull request #2837 from Chris0Jeky/codex/2808-overhaul-continua…
Chris0Jeky Sep 9, 2026
dc101ad
Integrate reviewed milestone changes on current main
Chris0Jeky Sep 9, 2026
b6258bb
Integrate programmatic palette focus restoration
Chris0Jeky Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/cd-staging-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Resolve image tag
id: resolve-tag
Expand Down Expand Up @@ -127,6 +129,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Build container images
run: |
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-extended.yml
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Run dependency review
uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ci-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/mutation-testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down Expand Up @@ -78,6 +80,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/nightly-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down Expand Up @@ -74,6 +76,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/pages-frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ on:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
Expand All @@ -29,9 +27,14 @@ jobs:
build:
name: Build Frontend
runs-on: ubuntu-latest
permissions:
contents: read
pages: read # configure-pages reads the existing site; enablement defaults to false.
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
Expand Down Expand Up @@ -78,6 +81,9 @@ jobs:
name: Deploy to GitHub Pages
needs: build
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release-security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-api-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-backend-architecture.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-backend-solution.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-backend-unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-container-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Validate reverse-proxy routing contract
shell: pwsh
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-container-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-demo-director-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-dependency-security-signals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-developer-portal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/reusable-docs-governance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Validate detached-first worktree helper
shell: powershell
Expand All @@ -38,6 +40,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-e2e-cross-browser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-e2e-smoke.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-frontend-unit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/reusable-gitleaks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ jobs:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Full history needed for both PR diff and full-history scanning
fetch-depth: 0

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-load-concurrency-harness.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-migration-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-openapi-guardrail.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-paper-color-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Test Paper color audit scanner
run: node --test scripts/ci/check-paper-color-components.test.mjs
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-performance-regression-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-sast-scanning.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-sbom-provenance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/reusable-visual-regression.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Setup .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
Expand Down
28 changes: 28 additions & 0 deletions backend/src/Taskdeck.Api/Controllers/ThinkingStepController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Taskdeck.Api.Extensions;
using Taskdeck.Application.DTOs;
using Taskdeck.Application.Interfaces;
using Taskdeck.Application.Services;

namespace Taskdeck.Api.Controllers;

[ApiController]
[Authorize]
[Route("api/boards/{boardId}/cards/{cardId}/thinking/steps/{layerId}/{itemId}/card")]
public class ThinkingStepController : AuthenticatedControllerBase
{
private readonly ThinkingStepService service;
public ThinkingStepController(ThinkingStepService service, IUserContext userContext) : base(userContext)
{ this.service = service; }

[HttpPost]
[RequestSizeLimit(4000)]
public async Task<IActionResult> Promote(Guid boardId, Guid cardId, Guid layerId, Guid itemId,
PromoteThinkingStepDto dto, CancellationToken cancellationToken)
{
if (!TryGetCurrentUserId(out var userId, out var error)) return error!;
var result = await service.PromoteAsync(userId, boardId, cardId, layerId, itemId, dto, cancellationToken);
return result.IsSuccess ? Ok(result.Value) : result.ToErrorActionResult();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public static IServiceCollection AddApplicationServices(this IServiceCollection
services.AddScoped<CardService>();
services.AddScoped<CardCommentService>();
services.AddScoped<ThinkingDeckService>();
services.AddScoped<ThinkingStepService>();
services.AddScoped<ThinkingAnswerService>();
services.AddScoped<LabelService>();
services.AddSingleton<IPasswordHasher, BcryptPasswordHasher>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public record ImportCardDto(
int Position,
DateTimeOffset? DueDate,
IEnumerable<string>? Labels,
ThinkingMaterialDto? Thinking = null);
ThinkingMaterialDto? Thinking = null, Guid? SourceId = null);

public record ImportLabelDto(
string Name,
Expand Down
1 change: 1 addition & 0 deletions backend/src/Taskdeck.Application/DTOs/ThinkingDeckDto.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ namespace Taskdeck.Application.DTOs;

public sealed record ThinkingDeckDto(Guid CardId, long Revision, int SchemaVersion, IReadOnlyList<ThinkingLayer> Layers, bool CanWrite);
public sealed record SaveThinkingDeckDto(long ExpectedRevision, IReadOnlyList<ThinkingLayer> Layers);
public sealed record PromoteThinkingStepDto(long ExpectedRevision, Guid ColumnId, string Title);
Loading
Loading