|
409 | 409 | {"id":"webrun-vcs-lqva","title":"Validate packages/testing and packages/sandbox documentation","description":"Review and update documentation for testing infrastructure:\n- packages/testing/README.md\n- packages/sandbox/README.md\n\nEnsure test utilities and sandbox environment are accurately documented.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-27T19:29:23.52902727+01:00","updated_at":"2025-12-27T19:41:49.751624778+01:00","closed_at":"2025-12-27T19:41:49.751624778+01:00","close_reason":"Fixed testing README.md to reference @webrun-vcs/core instead of @webrun-vcs/vcs. Sandbox README is minimal (just a title) which is appropriate for a small internal utility package."} |
410 | 410 | {"id":"webrun-vcs-lxe","title":"[Phase 6.3] Rename object-storage.suite.ts to raw-storage.suite.ts","description":"Rename packages/testing/src/suites/object-storage.suite.ts to raw-storage.suite.ts. Update to test RawStore interface instead of ObjectStore.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-23T21:58:46.184475459+01:00","updated_at":"2025-12-24T01:03:12.147224202+01:00","closed_at":"2025-12-24T01:03:12.147224202+01:00","close_reason":"The deprecated object-storage.suite.ts was deleted entirely rather than renamed - it tested ObjectStore which is now removed","dependencies":[{"issue_id":"webrun-vcs-lxe","depends_on_id":"webrun-vcs-4hw","type":"blocks","created_at":"2025-12-23T22:03:27.388175602+01:00","created_by":"daemon"}]} |
411 | 411 | {"id":"webrun-vcs-lxj6","title":"Epic: Core Package Documentation","description":"Complete documentation for @webrun-vcs/core package including README.md, ARCHITECTURE.md, and JSDoc comments","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T12:07:32.458586671+01:00","updated_at":"2025-12-25T15:56:48.231763087+01:00","closed_at":"2025-12-25T15:56:48.231763087+01:00","close_reason":"Closed","dependencies":[{"issue_id":"webrun-vcs-lxj6","depends_on_id":"webrun-vcs-zk2w","type":"blocks","created_at":"2025-12-25T12:07:55.352272212+01:00","created_by":"daemon"},{"issue_id":"webrun-vcs-lxj6","depends_on_id":"webrun-vcs-r8g6","type":"blocks","created_at":"2025-12-25T12:07:55.474690887+01:00","created_by":"daemon"},{"issue_id":"webrun-vcs-lxj6","depends_on_id":"webrun-vcs-eh4y","type":"blocks","created_at":"2025-12-25T12:07:55.634455305+01:00","created_by":"daemon"}]} |
| 412 | +{"id":"webrun-vcs-lye2","title":"Demo: Refactor Step 04 to use git.checkout()","description":"## Task\nRefactor branching step to use `git.checkout()` instead of low-level ref manipulation.\n\n## File\n`apps/demos/git-workflow-complete/src/steps/04-branching.ts`\n\n## Current Implementation (low-level)\n```typescript\n// Switch branch using refs\nawait store.refs.setSymbolic(\"HEAD\", \"refs/heads/feature\");\nconst commit = await store.commits.loadCommit(commitId);\nawait store.staging.readTree(store.trees, commit.tree);\n```\n\n## Target Implementation (porcelain)\n```typescript\n// Switch branch using checkout\nawait git.checkout().setName(\"feature\").call();\n\n// Create and switch in one command\nawait git.checkout()\n .setCreateBranch(true)\n .setName(\"new-branch\")\n .call();\n```\n\n## Changes Required\n- Replace `store.refs.setSymbolic()` calls with `git.checkout()`\n- Replace `store.staging.readTree()` with checkout handling\n- Remove direct refs/commits/trees store access\n- Keep `git.branchCreate()` and `git.branchList()` (already porcelain)\n\n## Note\nThe checkout command should handle:\n- Updating HEAD symbolic ref\n- Loading commit tree into staging\n- Updating working directory (if worktree available)","status":"open","priority":2,"issue_type":"task","created_at":"2026-01-11T20:58:22.38880198+01:00","created_by":"kotelnikov","updated_at":"2026-01-11T20:58:22.38880198+01:00"} |
412 | 413 | {"id":"webrun-vcs-lzhl","title":"Update documentation references (README, ARCHITECTURE, docs/)","status":"closed","priority":2,"issue_type":"task","created_at":"2026-01-01T06:45:58.022278475+01:00","updated_at":"2026-01-04T16:12:48.765154542+01:00","closed_at":"2026-01-04T16:12:48.765154542+01:00","close_reason":"Closed","dependencies":[{"issue_id":"webrun-vcs-lzhl","depends_on_id":"webrun-vcs-wpi8","type":"blocks","created_at":"2026-01-01T06:47:29.700457378+01:00","created_by":"kotelnikov"}]} |
413 | 414 | {"id":"webrun-vcs-m1oe","title":"Update all command implementations","description":"Update all command implementations to use new store names.\n\n**Files:** packages/commands/src/commands/*.ts\n\n**Steps:**\n1. Update AddCommand to use history/checkout/worktree\n2. Update CommitCommand\n3. Update CheckoutCommand\n4. Update all other commands\n5. Update internal property access\n\n**Testing:**\n- pnpm test in packages/commands\n- All command tests pass","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-10T13:28:48.673569076+01:00","updated_at":"2026-01-11T10:39:36.824090759+01:00","closed_at":"2026-01-11T10:39:36.824090759+01:00","close_reason":"Commands work with both old GitStore and new three-part architecture via createGitStoreFromStores adapter - 916 tests pass","dependencies":[{"issue_id":"webrun-vcs-m1oe","depends_on_id":"webrun-vcs-vg36","type":"blocks","created_at":"2026-01-10T13:28:58.559797238+01:00","created_by":"daemon"}]} |
414 | 415 | {"id":"webrun-vcs-m3su","title":"Implement examples/03-object-model","description":"# Implement examples/03-object-model\n\n**Goal:** Understand Git's internal object model (blobs, trees, commits, tags).\n\n## Sources\n\n**Extract from:**\n- `apps/example-git-cycle/steps/01-04`\n- `apps/examples-git/06-high-level-api/06-high-level-api.ts`\n\n## File Structure\n\n```\nexamples/03-object-model/\n├── package.json\n├── README.md\n├── src/\n│ ├── main.ts\n│ └── steps/\n│ ├── 01-blob-storage.ts # Content addressing\n│ ├── 02-tree-structure.ts # Directory snapshots\n│ ├── 03-commit-anatomy.ts # Commit object details\n│ ├── 04-tags.ts # Lightweight vs annotated\n│ └── 05-deduplication.ts # Content deduplication demo\n└── tsconfig.json\n```\n\n## Key Code References\n\n### From example-git-cycle/steps/02-create-files.ts - Deduplication:\n\n```typescript\n// Deduplication demonstration\nconst content = encoder.encode(\"Hello, World!\");\nconst blob1 = await repo.blobs.store([content]);\nconst blob2 = await repo.blobs.store([content]); // Same content\nconsole.log(\"Blob IDs match:\", blob1 === blob2); // true - deduplication!\n```\n\n### From examples-git/06-high-level-api - Object metadata:\n\n```typescript\n// Get object metadata\nconst header = await repository.objects.getHeader(readmeId);\nconsole.log(\"Object type:\", header.type);\nconsole.log(\"Object size:\", `${header.size} bytes`);\n```\n\n### From examples-git/06-high-level-api - Tree entries:\n\n```typescript\n// Load and display tree entries\nfor await (const entry of repository.trees.loadTree(treeId)) {\n console.log(\n `${entry.mode.toString(8).padStart(6, \"0\")} ${entry.name} ${entry.id.slice(0, 7)}`\n );\n}\n```\n\n### From example-git-cycle/steps/04-create-commits.ts - Commit anatomy:\n\n```typescript\nconst commit = await repository.commits.loadCommit(commitId);\nconsole.log(\"Tree:\", commit.tree);\nconsole.log(\"Parents:\", commit.parents);\nconsole.log(\"Author:\", commit.author.name, commit.author.email);\nconsole.log(\"Message:\", commit.message);\n```\n\n## Topics Covered\n\n1. **Blob storage and content addressing**\n - SHA-1 hash from content\n - Same content = same hash\n\n2. **Tree structure and file modes**\n - REGULAR_FILE (100644)\n - EXECUTABLE_FILE (100755)\n - TREE (040000)\n - SYMLINK (120000)\n\n3. **Commit object anatomy**\n - tree reference\n - parent references\n - author/committer with timestamp\n - message\n\n4. **Annotated vs lightweight tags**\n - Lightweight: ref pointing to commit\n - Annotated: tag object with metadata\n\n5. **Object deduplication demonstration**\n - Identical content produces identical hashes\n - Storage efficiency\n\n## Key Insight\n\nShow that identical content produces identical hashes, enabling deduplication.\n\n## Dependencies (package.json)\n\n```json\n{\n \"@statewalker/vcs-core\": \"workspace:*\"\n}\n```\n\n## Estimated Effort\n\n4 hours (extraction + documentation)\n\n## Acceptance Criteria\n\n- [ ] All 5 step files implemented\n- [ ] Deduplication clearly demonstrated\n- [ ] Object metadata inspection shown\n- [ ] Tree structure visualization\n- [ ] README explains Git object model concepts","status":"closed","priority":1,"issue_type":"task","created_at":"2026-01-11T18:27:00.413345602+01:00","created_by":"kotelnikov","updated_at":"2026-01-11T18:58:38.837852916+01:00","closed_at":"2026-01-11T18:58:38.837852916+01:00","close_reason":"Closed"} |
|
0 commit comments