# HISTORICAL AUDIT NOTE

This file records earlier repair history. Current Package 1.0.147 identity is BoneCalendar 1.0.44 / `bf-calendar` Functional Class 1.0.15. Every 1.0.16 / 1.0.7 statement below is historical repair evidence only and must not be read as the current guide contract.

# Bone Flow #024 Calendar — #017 Text Fine-Grained Reference Audit

Date: 2026-09-20
Reference: `BoneFlow_017_Text_Rebuild_v1.0.14_Candidate.zip` / BoneText 1.0.37 / `bf-text`.
Repair input: `BoneFlow_024_Calendar_v1.0.14_Candidate(1).zip`.
Repair target: Package 1.0.15 Candidate / **BoneCalendar 1.0.16** / `bf-calendar`.

## 1. #017で比較した面

#017は見た目だけではなく、Header、Dependency表示、Property/Preview、Runtime-owned Property Schema、Connection Image、Smoke/Validation、Completion、HTML Functional Class、Guide入口、Installer、MANIFEST、累積回帰を比較基準にした。

## 2. v1.0.14入力で見つかった重大差

1. **Runtime巻き戻し**: 正式 #024 は BoneCalendar 1.0.16 なのに、入力Candidateは 1.0.14 を名乗っていた。
2. **min/max仕様逆転**: 正式仕様は「範囲内月移動可 / minより前・maxより後の月移動禁止」。入力Candidateは「月移動は制限しない」へ変更していた。
3. **Functional Class差し替え**: #054 Weekly v1.0.41 が要求する正式 `BoneCalendarFunctionalClass` 契約を、独自 `BoneCalendarHTMLClass` だけのBridgeへ置き換えていた。
4. **DOC短縮上書き**: 正式 DOC-0024 は Frozen の既存JA/ENガイドを使うべきところ、Candidate内の短縮DOCをInstallerで上書きする構造だった。
5. **#048/#054 Consumer危険**: #054 Weekly実バンドルは BoneCalendar 1.0.16 / `BoneCalendarFunctionalClass` / `bf-calendar` を明示要求しているため、1.0.14化はConsumer破壊につながる。

## 3. 修正内容

- Runtime identityを **BoneCalendar 1.0.16** へ復元。
- 正式月境界ロジック `isViewMonthInRange()` を復元。Previous/Nextと `setView()` の両方で min/max 外月を拒否。
- #017方式の Runtime-owned Property Schema 18件と Completion gate は維持し、min/max説明を正式仕様へ修正。
- 正式 `BoneCalendarFunctionalClass` を復元し、`bf-calendar` / mount / unmount / scan 契約を維持。互換aliasとして `BoneCalendarHTMLClass` も公開。
- #017方式に合わせて MutationObserver と Runtime default参照を追加し、動的DOM mountとSchema二重管理回避を維持。
- 祝日絵文字を正式契約へ固定: **🎌 holiday / 🏖️ customHoliday / ⭐ anniversary**。
- DOC-0024 / TOC-0024はInstallerで存在・routeを検証するだけに変更し、Frozen DOC本文とRegistryを上書きしない。
- #048 Table / #054 Display TimelineのファイルはPackageにもInstaller copy対象にも含めない。
- #054 Weekly v1.0.41の実契約に対する互換Node testを追加。

## 4. #017共通構造との対応

| #017基準 | #024修正版 |
|---|---|
| Package / Runtime分離表示 | Package 1.0.15 Candidate / Runtime 1.0.16 |
| Runtime-owned Property Schema | 26 Property / `getPropertySchema()` / `getPropertyDefaults()` / `getPropertyDefinition()` |
| Property + Preview | Calendar固有Propertyと実Previewを維持 |
| Connection Image | #002 BoneJointを使う既存5ケースを維持 |
| Smoke / Validation / Report | 手動実行。自動ALL PASS宣言なし |
| Completion gate | Runtime APIでSmoke+Validation結果を要求 |
| HTML Functional Class | `bf-calendar` / `BoneCalendarFunctionalClass`、動的scan対応 |
| Guide | Frozen DOC-0024への正式入口を維持、本文は上書きしない |
| Installer | MANIFEST検証、固定DocumentRoot、累積#024更新、#048/#054非上書き |

## 5. #048 / #054 / Weekly Sample互換境界

- #048 Table Runtime 1.0.11: **変更しない / 上書きしない**。
- #054 Display Timeline Runtime 1.0.1: **変更しない / 上書きしない**。
- #054 Weekly Calendar + Table Sample v1.0.41: 実バンドルが要求する #024 は BoneCalendar 1.0.16 / `BoneCalendarFunctionalClass` / `bf-calendar`。この契約を維持。
- Annotation kind `holiday/customHoliday/anniversary/task` を維持。
- Weekly表示で使用する祝日記号 **🎌** を変更しない。

## 6. QA境界

Package-local Node / syntax / JSON / MANIFEST / ZIP integrity は実行する。Windows PowerShell 5.1実行とユーザーlocalhost Browser確認はこの環境では未実行のため、**Completed / Specification Frozen は宣言しない**。


## v1.0.16 visual-shell repair

- Rejected v1.0.15 Candidate replaced the combined Calendar CSS with the formal runtime-only CSS.
- That removed the #017-aligned test-page shell (`.bf-page`, `.bf-panel`, `.bf-usage-grid`, `.bf-field`, Preview, Joint/QA layout selectors), producing the narrow/unreadable localhost page reported by the user.
- v1.0.16 keeps the formal Calendar Runtime CSS v1.0.15 and appends the existing #017-reference-aligned test-page shell from the pre-regression source.
- Runtime stays BoneCalendar 1.0.16. `BoneCalendarFunctionalClass` / `bf-calendar` contract stays intact.
- #048 Table and #054 Display Timeline payloads are not copied or modified.
- Annotation emoji contract remains `holiday=🎌`, `customHoliday=🏖️`, `anniversary=⭐`.
- Added `bone-calendar-layout-node-test.js` so missing page-shell CSS and repeated DOCTYPE cannot pass static package QA again.
- User localhost verification is still required; this document does not declare Completed/Frozen.


## v1.0.17 #024 Task / Selected-Day Extension

- Package: 1.0.17 Candidate; BoneCalendar Runtime version remains 1.0.15 for #054 Weekly v1.0.41 exact-version compatibility.
- Runtime-owned Properties: `calendarIconSizePx` (8..24, default 14), `calendarTaskIcon` (default 📑), `calendarTaskIconPosition` (`right` default / `center` / `left`), `selectedDayVisible` (default false; #024 test page explicitly enables it).
- Calendar task-present icon is rendered below the date number.
- Common icon size applies to 🎌 holiday / 🏖️ customHoliday / ⭐ anniversary / 📑 task indicator.
- Selected-day panel displays `📑 タスク`, `🎌 祝日`, `🏖️ カスタム休日`, `⭐ 記念日` in Japanese with emoji. `content` is visible; `memo` is a hover/focus tooltip.
- New #024 Task Editor writes `start`, `end`, `typeId`, `content`, `memo`, `showInRemarks`; start/end/typeId are required by the editor and end must be later than start.
- For backward compatibility with #054 Weekly v1.0.41, an incoming legacy `{kind:"task",label:"..."}` annotation remains valid as display-only (`timelineReady:false`). When any timeline field is supplied, start/end/typeId become an all-or-nothing validated contract.
- #048 Table and #054 Display Timeline files are not overwritten by this package.


## v1.0.18 Task Data CRUD correction
- #024 test/reference page now exposes task data as a visible table.
- Each task shows date, start, end, typeId, name, content, memo, and remarks flag.
- Edit loads the exact row back into the editor; Update can also move the task to another date.
- Delete removes only the selected task and preserves non-task annotations on the same date.
- Optional selected-date-only filter is available; default view shows all task data.
- BoneCalendar Runtime stays 1.0.15; #048 Table and #054 Display Timeline are not packaged or overwritten.


## v1.0.19 Installer MANIFEST repair

- v1.0.18 generated MANIFEST lines as `<sha256>  <path>` while the #017-standard installer parser requires `<sha256> *<path>`.
- v1.0.19 restores the exact #017 canonical star-prefixed MANIFEST path format and adds a regression check using the installer regex.
- Runtime remains BoneCalendar 1.0.16. #048 Table and #054 Display Timeline files remain outside this package ownership.


## v1.0.21 Task Type / Task external-data and modal management

- Task Type master and Task records moved into the #024 Runtime contract instead of page-only inline CRUD.
- Both can be supplied externally by options/Public API and by HTML Functional Class JSON data attributes.
- Calendar footer owns `タスク区分` / `タスク` buttons; both manager screens are modal by default and both button visibilities are Runtime Properties.
- Task Type manager has no `カレンダーへアイコン表示` field.
- Task tooltip is `開始時間~終了時間 タスク名`; selected-day Japanese emoji/content/memo behavior remains separate.
- BoneCalendar stays 1.0.15 for #054 Weekly compatibility; #048/#054 files remain outside package ownership.


## v1.0.22 Runtime Schema compact JSON display
- Runtime Schema table balance adjusted with fixed column proportions.
- Array/Object default values (including taskTypes) are shown as a compact expandable summary instead of one long inline JSON string.
- Expanded values use pretty-printed JSON code in a bounded scroll area so the schema does not consume excessive width or height.


## v1.0.34 Event management
- Calendar footer adds an 「イベント」 management button.
- Event manager opens as a modal by default and supports add/edit/delete.
- Event fields: date, event kind (customHoliday / anniversary), emoji, event name.
- Runtime-owned Properties: showEventManagerButton / events.
- External-data APIs: setEvents / getEvents / validateEvents / openEventManager.
- Event data uses eventId/date/kind/emoji/label so later DB/API adapters can replace the storage layer.
- Event date is date-only (`YYYY-MM-DD`). The Event manager does not use a datetime control. The `📅` button opens a normal #024 Calendar instance and the selected day is written back to the event date field.
- 🏖️ customHoliday / ⭐ anniversary sample data is managed through events rather than hard-coded Annotation samples.


## v1.0.34 Event date Calendar display
- The Event manager date selector remains the normal #024 Calendar opened by the 📅 button.
- The Calendar selector now expands inside the Event manager layout instead of creating an internal modal-panel scroll area.
- The Event manager panel itself does not use an internal scrollbar for the expanded Calendar on normal desktop viewports.

## v1.0.34追加監査

- #017基準のProperty checkboxとして `showAnnotationManagerButton` を追加。
- Calendar下部の管理ボタン群へ `🎌` を追加し、既存Task Type / Task / Eventと同じmodal管理方式に統一。
- 既存 `Annotation IN / 祝日CSV変換` の大きなページ内パネルはhidden化し、画面占有をなくした。
- #048 / #054 Runtime/assetは本Packageのコピー対象へ追加していない。


## v1.0.34追加監査
- Annotation managerの横はみ出しを修正。#017基準のpanel幅内に操作を収めるため、ボタン群を独立したwrap領域へ分離。
- 祝日CSVの出典確認用として内閣府「国民の祝日」公式サイトリンクを追加。外部JS/CDNは追加していない。


## v1.0.34 DOC-0024 guide update
- DOC-0024 JA/EN content is package-owned for this reopened #024 update.
- HTML Functional Class sections now document Task Type / Task / Event / Holiday contracts, usage, external data injection, manager APIs, and samples.
- Installer copies DOC-0024 content and merges DOC-0024 / TOC-0024 registry entries, then verifies the installed route.

## Package 1.0.134 actual Calendar anchor correction

- `below-calendar` は固定Hostの下端ではなく、実際の `.bone-calendar` の描画矩形を基準に直下表示します。
- 外部Selectionは `document.body` へ別DOMとしてPortalし、固定Hostの `height` / `max-height` / `overflow` は変更しません。
- Runtime: `BoneCalendar 1.0.38`。
- v1.0.133 の「固定Hostの後ろへ配置」は不採用です。



Package 1.0.135 task-bulk selected-day refresh isolation
- Runtime: BoneCalendar 1.0.38.
- #024 Task bulk replace / add-update / delete / clear updates data without refreshing the selected-day presentation during the bulk action.
- A pending selected-day refresh is applied once when Task Manager closes.
- below-calendar actual-Calendar anchoring from Package 1.0.134 is unchanged.
- Work Type color/name/60% opacity behavior is unchanged.
- USER localhost verification is required before Completed/Frozen.


Package 1.0.136 below-calendar manager isolation
- Runtime: BoneCalendar 1.0.39.
- below-calendar remains a separate body portal anchored to the actual Calendar bottom; fixed host height/overflow are not modified.
- While any #024 manager dialog is open, external selected-day portals are temporarily suppressed so they cannot float above the modal.
- Task-bulk pending selected-day refresh is flushed before the Task Manager portal is restored.
- ResizeObserver repositions the external block when the actual Calendar box changes size.
- USER localhost confirmation is required before Completed / Frozen.

Package 1.0.137 manager list visual-color synchronization
- Runtime: BoneCalendar 1.0.40.
- Task Type manager list rows use each Task Type background/text color and configured opacity.
- Task manager Task Type / Work Type select options and selected value use configured visual colors.
- Task list rows use effective Work Type visual for work tasks and Task Type visual otherwise.
Package 1.0.139 Smoke QA portal contract alignment
- Runtime remains BoneCalendar 1.0.40.
- S53/S54/S55 now validate the current below-calendar body Portal contract instead of the retired sibling placement.
- No Calendar Runtime behavior change in this package.

