diff --git a/lang-packs/_bundled/g7-module-sirsoft-page-ja/CHANGELOG.md b/lang-packs/_bundled/g7-module-sirsoft-page-ja/CHANGELOG.md index e3ff53a2..68a94869 100644 --- a/lang-packs/_bundled/g7-module-sirsoft-page-ja/CHANGELOG.md +++ b/lang-packs/_bundled/g7-module-sirsoft-page-ja/CHANGELOG.md @@ -4,7 +4,7 @@ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며, [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다. -## [1.0.1] - 2026-07-01 +## [1.0.1] - 2026-07-06 ### Added diff --git a/lang-packs/_bundled/g7-template-sirsoft-admin_basic-ja/CHANGELOG.md b/lang-packs/_bundled/g7-template-sirsoft-admin_basic-ja/CHANGELOG.md index 31deaa42..58157976 100644 --- a/lang-packs/_bundled/g7-template-sirsoft-admin_basic-ja/CHANGELOG.md +++ b/lang-packs/_bundled/g7-template-sirsoft-admin_basic-ja/CHANGELOG.md @@ -4,7 +4,7 @@ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며, [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다. -## [1.0.1] - 2026-07-01 +## [1.0.1] - 2026-07-06 ### Changed diff --git a/lang-packs/_bundled/g7-template-sirsoft-basic-ja/CHANGELOG.md b/lang-packs/_bundled/g7-template-sirsoft-basic-ja/CHANGELOG.md index 86a8c166..35c00761 100644 --- a/lang-packs/_bundled/g7-template-sirsoft-basic-ja/CHANGELOG.md +++ b/lang-packs/_bundled/g7-template-sirsoft-basic-ja/CHANGELOG.md @@ -4,7 +4,7 @@ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며, [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다. -## [1.0.1] - 2026-07-01 +## [1.0.1] - 2026-07-06 ### Added diff --git a/modules/_bundled/sirsoft-page/CHANGELOG.md b/modules/_bundled/sirsoft-page/CHANGELOG.md index e082f21b..3658727c 100644 --- a/modules/_bundled/sirsoft-page/CHANGELOG.md +++ b/modules/_bundled/sirsoft-page/CHANGELOG.md @@ -4,7 +4,7 @@ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며, [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다. -## [1.0.1] - 2026-07-01 +## [1.0.1] - 2026-07-06 ### Fixed diff --git a/modules/_bundled/sirsoft-page/resources/js/__tests__/layouts/admin-page-layouts.test.ts b/modules/_bundled/sirsoft-page/resources/js/__tests__/layouts/admin-page-layouts.test.ts index 021addee..b7afa8bd 100644 --- a/modules/_bundled/sirsoft-page/resources/js/__tests__/layouts/admin-page-layouts.test.ts +++ b/modules/_bundled/sirsoft-page/resources/js/__tests__/layouts/admin-page-layouts.test.ts @@ -292,7 +292,7 @@ describe('admin_page_list.json', () => { expect(findById(adminPageList, 'published_false')).toBeNull(); }); - // ─── F2: 모바일 검색 저장/읽기 저장소 정합 (이슈 #424) ─── + // ─── F2: 모바일 검색 저장/읽기 저장소 정합 ─── /** * responsive.portable 등 반응형 오버라이드 내부까지 순회하며 id 로 노드를 찾는다. @@ -350,7 +350,7 @@ describe('admin_page_list.json', () => { expect(inputChange?.params?.target).not.toBe('global'); }); - // ─── C1·C2·C5: 시맨틱 클래스 정리 (이슈 #424) ─── + // ─── C1·C2·C5: 시맨틱 클래스 정리 ─── it('[C1] 검색바 안 필드 셀렉트는 pill(select-composite), 툴바 발행/정렬/개수는 테두리(border+bg-white) — 이커머스 목록 관행', () => { // 관행(이커머스 shipping_policy/order/product 목록): 검색바 내부 필드 셀렉트 = pill, @@ -772,7 +772,7 @@ describe('admin_page_form.json', () => { expect(uploaders[0].props.apiEndpoints.reorder).toContain('route?.id'); }); - // ─── UI 검토 M1·M6 회귀 차단 (이슈 #424) ─── + // ─── UI 검토 M1·M6 회귀 차단 ─── it('[M1-a] 검증에러 제목 클래스가 공백으로 분리됨 (font-medium + text-danger-soft, 병합 클래스 금지)', () => { // 회귀 배경: "font-mediumtext-danger-soft" 처럼 공백 없이 붙으면 두 클래스 모두 무효 @@ -1024,7 +1024,7 @@ describe('admin_page_detail.json', () => { expect(cellStr).toContain('sirsoft-page.admin.page.detail.versions.field_labels'); }); - // ─── UI 검토 M2·M3·M4·M5 회귀 차단 (이슈 #424) ─── + // ─── UI 검토 M2·M3·M4·M5 회귀 차단 ─── it('[M5] onError 메시지 바인딩이 $error 가 아닌 error 컨텍스트 변수를 사용함 (엔진 onError context 키는 error)', () => { // 회귀 배경: 엔진은 onError 콜백 컨텍스트를 `error` 키로 제공(ActionDispatcher). diff --git a/modules/_bundled/sirsoft-page/src/Console/Commands/PlaywrightSeedPage.php b/modules/_bundled/sirsoft-page/src/Console/Commands/PlaywrightSeedPage.php index 5922d8d1..ccebf538 100644 --- a/modules/_bundled/sirsoft-page/src/Console/Commands/PlaywrightSeedPage.php +++ b/modules/_bundled/sirsoft-page/src/Console/Commands/PlaywrightSeedPage.php @@ -12,7 +12,7 @@ use Modules\Sirsoft\Page\Models\PageAttachment; /** * Playwright E2E 용 페이지 도메인 시드 커맨드. * - * 미발행 페이지 관리자 미리보기(#424-15) E2E 를 위해 고정 슬러그의 미발행/발행 페이지와 + * 미발행 페이지 관리자 미리보기 E2E 를 위해 고정 슬러그의 미발행/발행 페이지와 * 첨부를 발급하여 stdout 에 JSON 으로 반환한다. 재실행 시 동일 슬러그를 물리 삭제 후 재생성해 * 멱등성을 보장한다 (페이지·첨부는 hard delete 모델). * diff --git a/modules/_bundled/sirsoft-page/src/Listeners/SeoPageCacheListener.php b/modules/_bundled/sirsoft-page/src/Listeners/SeoPageCacheListener.php index 1855946d..41d4d060 100644 --- a/modules/_bundled/sirsoft-page/src/Listeners/SeoPageCacheListener.php +++ b/modules/_bundled/sirsoft-page/src/Listeners/SeoPageCacheListener.php @@ -35,7 +35,7 @@ class SeoPageCacheListener implements HookListenerInterface 'method' => 'onPageChange', 'priority' => 20, ], - // 버전 복원도 콘텐츠(title/content/seo_meta) 변경이므로 수정과 동일하게 무효화 (이슈 #424-14) + // 버전 복원도 콘텐츠(title/content/seo_meta) 변경이므로 수정과 동일하게 무효화 'sirsoft-page.page.after_restore' => [ 'method' => 'onPageChange', 'priority' => 20, diff --git a/modules/_bundled/sirsoft-page/src/routes/api.php b/modules/_bundled/sirsoft-page/src/routes/api.php index c41e1e29..789afd0e 100644 --- a/modules/_bundled/sirsoft-page/src/routes/api.php +++ b/modules/_bundled/sirsoft-page/src/routes/api.php @@ -105,9 +105,6 @@ Route::prefix('admin/attachments')->middleware(['auth:sanctum', 'throttle:600,1' ->middleware('permission:admin,sirsoft-page.pages.update') ->name('reorder'); - // 다운로드/미리보기는 공개 hash 라우트(pages/attachment/*)로 단일화 — - // 썸네일 ·다운로드는 토큰을 실을 수 없어 인증 라우트에 물리면 401 로 깨진다. - // 첨부파일 삭제 Route::delete('/{id}', [PageAttachmentController::class, 'destroy']) ->middleware('permission:admin,sirsoft-page.pages.update') @@ -125,12 +122,12 @@ Route::prefix('admin/attachments')->middleware(['auth:sanctum', 'throttle:600,1' */ // optional.sanctum: Bearer 토큰이 있으면 인증, 없으면 guest로 통과 Route::prefix('pages')->middleware(['optional.sanctum', 'throttle:600,1'])->name('pages.')->group(function () { - // 공개 첨부파일 다운로드 (해시 기반) - /{slug} 보다 먼저 등록 + // 첨부 다운로드 (해시 기반, 발행 상태에 따라 컨트롤러에서 접근 제어) - /{slug} 보다 먼저 등록 Route::get('/attachment/{hash}', [PublicPageAttachmentController::class, 'download']) ->where('hash', '[a-zA-Z0-9]{12}') ->name('attachment.download'); - // 공개 첨부파일 이미지 미리보기 (해시 기반, inline) + // 첨부 이미지 미리보기 (공개 - 토큰 없는 직접 GET 을 위해 권한 체크 없이 이미지만 제공) Route::get('/attachment/{hash}/preview', [PublicPageAttachmentController::class, 'preview']) ->where('hash', '[a-zA-Z0-9]{12}') ->name('attachment.preview'); diff --git a/modules/_bundled/sirsoft-page/tests/Feature/Admin/PageControllerTest.php b/modules/_bundled/sirsoft-page/tests/Feature/Admin/PageControllerTest.php index 7a60b6e4..125b6162 100644 --- a/modules/_bundled/sirsoft-page/tests/Feature/Admin/PageControllerTest.php +++ b/modules/_bundled/sirsoft-page/tests/Feature/Admin/PageControllerTest.php @@ -1299,7 +1299,7 @@ class PageControllerTest extends FeatureTestCase } /** - * 버전 복원 시 페이지 상세 SEO 캐시가 무효화되는지 확인 (이슈 #424-14) + * 버전 복원 시 페이지 상세 SEO 캐시가 무효화되는지 확인 * * 복원은 title/content/seo_meta 를 이전 버전으로 되돌리므로 수정과 동일하게 * 검색봇용 SEO 캐시를 갱신해야 한다. 복원 전 상세 URL 캐시를 적재한 뒤 복원하면 @@ -1349,7 +1349,7 @@ class PageControllerTest extends FeatureTestCase } /** - * 버전 복원 후 새 버전이 생성되고 기존 버전 이력이 모두 보존되는지 확인 (이슈 #424-14, 검수항목 3·4) + * 버전 복원 후 새 버전이 생성되고 기존 버전 이력이 모두 보존되는지 확인 (검수항목 3·4) * * 복원은 다음 버전 번호로 새 스냅샷을 만들며, 복원 대상을 포함한 기존 버전 이력을 * 삭제하지 않고 그대로 보존해야 한다. diff --git a/modules/_bundled/sirsoft-page/tests/Feature/User/PublicPageControllerTest.php b/modules/_bundled/sirsoft-page/tests/Feature/User/PublicPageControllerTest.php index 74252a1a..0fd947eb 100644 --- a/modules/_bundled/sirsoft-page/tests/Feature/User/PublicPageControllerTest.php +++ b/modules/_bundled/sirsoft-page/tests/Feature/User/PublicPageControllerTest.php @@ -119,7 +119,7 @@ class PublicPageControllerTest extends FeatureTestCase $response->assertStatus(404); } - // ─── 미발행 페이지 관리자 미리보기 (#424-15) ──────── + // ─── 미발행 페이지 관리자 미리보기 ──────── /** * 페이지 조회 권한(pages.read) 관리자는 미발행 페이지를 미리볼 수 있는지 확인 diff --git a/modules/_bundled/sirsoft-page/tests/Playwright/specs/user/unpublished-admin-preview.spec.ts b/modules/_bundled/sirsoft-page/tests/Playwright/specs/user/unpublished-admin-preview.spec.ts index 23547d2f..d5f78bf4 100644 --- a/modules/_bundled/sirsoft-page/tests/Playwright/specs/user/unpublished-admin-preview.spec.ts +++ b/modules/_bundled/sirsoft-page/tests/Playwright/specs/user/unpublished-admin-preview.spec.ts @@ -1,5 +1,5 @@ /** - * 미발행 페이지 관리자 미리보기 (#424-15). + * 미발행 페이지 관리자 미리보기. * * @scenario viewer=guest, viewer=member, viewer=other_admin, viewer=page_reader, published=published, published=unpublished * @effects page_reader_admin_previews_unpublished_page_with_200, @@ -39,7 +39,7 @@ const NOT_FOUND_TEXT = /페이지를 찾을 수 없습니다|Page Not Found/; const UNPUBLISHED_TITLE = '미발행 미리보기 대상'; const PUBLISHED_TITLE = '발행 대조군'; -test.describe('미발행 페이지 관리자 미리보기 (#424-15)', () => { +test.describe('미발행 페이지 관리자 미리보기', () => { test('페이지 조회 권한 관리자는 미발행 페이지를 미리보고 배너가 노출된다', async ({ page, pageReadToken, diff --git a/modules/_bundled/sirsoft-page/tests/Unit/Listeners/SeoPageCacheListenerTest.php b/modules/_bundled/sirsoft-page/tests/Unit/Listeners/SeoPageCacheListenerTest.php index c0bec93f..1db416af 100644 --- a/modules/_bundled/sirsoft-page/tests/Unit/Listeners/SeoPageCacheListenerTest.php +++ b/modules/_bundled/sirsoft-page/tests/Unit/Listeners/SeoPageCacheListenerTest.php @@ -40,7 +40,7 @@ class SeoPageCacheListenerTest extends ModuleTestCase $this->assertArrayHasKey('sirsoft-page.page.after_create', $hooks); $this->assertArrayHasKey('sirsoft-page.page.after_update', $hooks); $this->assertArrayHasKey('sirsoft-page.page.after_delete', $hooks); - // 버전 복원도 SEO 캐시 무효화가 필요하다 (이슈 #424-14: 복원 후 봇에 복원 전 버전 잔존 회귀 방지) + // 버전 복원도 SEO 캐시 무효화가 필요하다 (복원 후 봇에 복원 전 버전 잔존 회귀 방지) $this->assertArrayHasKey('sirsoft-page.page.after_restore', $hooks); $this->assertEquals('onPageChange', $hooks['sirsoft-page.page.after_create']['method']); diff --git a/modules/_bundled/sirsoft-page/tests/Unit/Services/PageServiceTest.php b/modules/_bundled/sirsoft-page/tests/Unit/Services/PageServiceTest.php index 6505bd71..6ee8ca29 100644 --- a/modules/_bundled/sirsoft-page/tests/Unit/Services/PageServiceTest.php +++ b/modules/_bundled/sirsoft-page/tests/Unit/Services/PageServiceTest.php @@ -402,7 +402,7 @@ class PageServiceTest extends ModuleTestCase } /** - * allowUnpublished=true 이면 미발행 페이지도 반환하는지 확인 (#424-15 미리보기) + * allowUnpublished=true 이면 미발행 페이지도 반환하는지 확인 (미리보기) */ public function test_get_published_page_by_slug_returns_draft_when_preview_allowed(): void { diff --git a/modules/_bundled/sirsoft-page/tests/scenarios/page-unpublished-admin-preview.yaml b/modules/_bundled/sirsoft-page/tests/scenarios/page-unpublished-admin-preview.yaml index 4b56eafb..66ee4eb1 100644 --- a/modules/_bundled/sirsoft-page/tests/scenarios/page-unpublished-admin-preview.yaml +++ b/modules/_bundled/sirsoft-page/tests/scenarios/page-unpublished-admin-preview.yaml @@ -1,5 +1,5 @@ # audit:allow test-scenario-coverage reason: | -# 본 매니페스트는 미발행 페이지 관리자 미리보기(#424-15) 단일 결함의 권한 × 발행상태 +# 본 매니페스트는 미발행 페이지 관리자 미리보기 단일 결함의 권한 × 발행상태 # cross product 를 기록한다. viewer(guest/member/other_admin/page_reader) × published # (published/unpublished) 8케이스 중 "미리보기 허용" 은 page_reader × unpublished 단 1조합이며, # 나머지는 기존 동작(발행=200 공개 / 미발행=404) 유지다. 실제 회귀 가드는 test_files 의 @@ -11,7 +11,7 @@ feature: 미발행 페이지 관리자 미리보기 (권한자만 사용자 화면 노출 + 미리보기 배너 + 첨부 admin URL) description: | - #424-15: 미발행 페이지는 관리자여도 사용자 화면(/page/{slug})에 접근할 수 없던 결함을 수정한다. + 미발행 페이지는 관리자여도 사용자 화면(/page/{slug})에 접근할 수 없던 결함을 수정한다. 게이트 정책: - 비로그인·일반 회원: 미발행 페이지 → 404 유지 (비공개). diff --git a/templates/_bundled/sirsoft-admin_basic/CHANGELOG.md b/templates/_bundled/sirsoft-admin_basic/CHANGELOG.md index 094d317d..913eab99 100644 --- a/templates/_bundled/sirsoft-admin_basic/CHANGELOG.md +++ b/templates/_bundled/sirsoft-admin_basic/CHANGELOG.md @@ -4,7 +4,7 @@ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며, [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다. -## [1.0.1] - 2026-07-01 +## [1.0.1] - 2026-07-06 ### Changed diff --git a/templates/_bundled/sirsoft-basic/CHANGELOG.md b/templates/_bundled/sirsoft-basic/CHANGELOG.md index f0065872..74e80093 100644 --- a/templates/_bundled/sirsoft-basic/CHANGELOG.md +++ b/templates/_bundled/sirsoft-basic/CHANGELOG.md @@ -4,7 +4,7 @@ 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며, [Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다. -## [1.0.1] - 2026-07-01 +## [1.0.1] - 2026-07-06 ### Added