Repository navigation
feat(concierge): edit level maps with AI (PPT-2832) #570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
bb335c4
chore(ci): run affected lib tests on PR branches
camreeves f881df1
build(deps): add dompurify for inserted SVG markup
camreeves 0ae789e
feat(map-editor): document core for the AI map editor
camreeves 5cbef8f
feat(map-editor): operation vocabulary, JSON schema and applier
camreeves d2ac3b9
feat(map-editor): proposal validator and render check port
camreeves 18308d1
feat(map-editor): snapshot history and browser draft store
camreeves a90fc5c
fix(map-editor): decode CSS escapes before the style safety checks
camreeves 618c25b
fix(map-editor): op bookkeeping fields, replacement deny tags and one…
camreeves 501be5a
fix(map-editor): applier reports dropped tspans, anchors style rule m…
camreeves 06bf84e
fix(map-editor): validator accepts server bookkeeping, locks hides, d…
camreeves c9bd7f8
fix(map-editor): plural layer groups are not bookable
camreeves fbe3e46
chore(map-editor): comments describe the draft store and the fixture …
camreeves 513c51d
feat(map-editor): editor session over the document core
camreeves 0dbdbc5
feat(map-editor): canvas host, properties strip and editor shell
camreeves 5efc75f
feat(map-editor): revert, markSaved and id-matched baseline on the se…
camreeves c10afe5
feat(concierge): Map Management page with the map editor
camreeves de496a1
style(map-editor): format the applier and the settings doc
camreeves 8b5660a
feat(map-editor): map AI client
camreeves d13882a
feat(map-editor): proposal context and snapshot
camreeves ff23a8b
feat(map-editor): proposal state
camreeves 1d5a62d
feat(map-editor): AI panel component
camreeves 94332a6
fix(map-editor): one session contract for the editor and the AI panel
camreeves a4e01cd
feat(concierge): mount the AI panel in the Map Management editor
camreeves 99e3cf6
feat(map-editor): ground the AI in containment, glyphs, mentions and …
camreeves 82b4a7b
feat(map-editor): cluster outlined labels and send them with the context
camreeves 36387f4
fix(map-editor): rebuild the session index once the map is rendered
camreeves 267817d
fix(map-editor): measure the trial document with attribute geometry
camreeves fc23dd5
feat(map-editor): place after deleted siblings and lay out text lines
camreeves c4bb166
style(concierge): keep the map list's buttons on one line
camreeves eb4ab3c
feat(map-editor): group the stacked layers of one drawn object as a p…
camreeves 0b7fc91
fix(concierge): keep a map's file name across saves and show it in th…
camreeves 7082b6f
feat(map-editor): multi-line labels in the properties strip
camreeves a7dce08
feat(map-editor): choose the AI model; text labels and labels outside…
camreeves 9b815a5
fix(map-editor): include complete furniture and named label context
camreeves 728888d
merge: update map editor review branch with develop
camreeves e41049b
fix(map-editor): refresh remaining AI usage after submission
camreeves ea6dc15
feat(map-editor): canvas-first editor layout with AI preview pins
camreeves 53b7d96
refactor(map-editor): one helper for the points an annotation covers
camreeves 4bdf50b
merge: update the map editor review branch with develop
camreeves 0dc4da4
style(map-editor): calmer AI panel with one type and spacing scale
camreeves 44fa6a6
fix(map-editor): smoother AI review panel and map selection
camreeves a27264a
fix(map-editor): change only the ticked row's marker when a checkbox …
camreeves 02aec9d
fix(map-editor): undo marks and map changes in order, and explain the…
camreeves f9f66f9
fix(map-editor): clearer AI change rows
camreeves 8b1729e
feat(map-studio): open the level being edited, signed in from Concierge
camreeves 0b190b3
merge: update the AI map editing branch with develop
camreeves a114800
fix(map-editor): tighter checks on AI style rules, new ids and replac…
camreeves c475a57
fix(map-editor): review findings on the AI preview, undo and job polling
camreeves 2594f7f
perf(map-studio): compose the imported map once per drag, not per poi…
camreeves fcd30b8
fix(concierge): save only the map on the level, and drop the old map …
camreeves 62c5325
build(concierge,map-studio): allow 16 kB of styles per component in p…
camreeves File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,7 @@ import { Clipboard } from '@angular/cdk/clipboard'; | |
| import { Component, inject } from '@angular/core'; | ||
| import { MatDialog } from '@angular/material/dialog'; | ||
| import { MatMenuModule } from '@angular/material/menu'; | ||
| import { Router } from '@angular/router'; | ||
| import { i18n, notifySuccess } from '@placeos/common'; | ||
| import { | ||
| IconComponent, | ||
|
|
@@ -94,7 +95,9 @@ import { LevelManagementService } from './level-management.service'; | |
| > | ||
| <div class="flex items-center space-x-2"> | ||
| <icon class="text-2xl">map</icon> | ||
| <span>Edit SVG map</span> | ||
| <span>{{ | ||
| 'APP.CONCIERGE.MAPS_EDIT' | translate | ||
| }}</span> | ||
| </div> | ||
| </button> | ||
| <button | ||
|
|
@@ -138,11 +141,13 @@ export class LevelListComponent { | |
| private _manager = inject(LevelManagementService); | ||
| private _clipboard = inject(Clipboard); | ||
| private _dialog = inject(MatDialog); | ||
| private _router = inject(Router); | ||
|
|
||
| public readonly levels = this._manager.filtered_levels; | ||
|
|
||
| public readonly editLevel = (level) => this._manager.editLevel(level); | ||
| public readonly editLevelMap = (level) => this._manager.editLevelMap(level); | ||
| public readonly editLevelMap = (level) => | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Optional. After this change nothing calls |
||
| this._router.navigate(['/map-management', level.id]); | ||
| public readonly removeLevel = (level) => this._manager.removeLevel(level); | ||
|
|
||
| public readonly copyToClipboard = (id: string) => { | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Issue, medium. For a ref that contains
releaseor-prod,tools/get-affected.jsreturns every folder inappsandlibsfor thetesttarget, without a check that the target exists.libs/paymentshas notesttarget. I ranbunx nx test paymentsand it fails withCannot find configuration for task payments:test. Before this change the matrix held apps only, so everycustom/*-prodpush now gets a red test job.Fix: filter the release list with
--withTarget=testinget-affected.js.Also, this workflow only runs on
feat/*,fix/*,custom/*andrefactor/*. The PR branch isPPT-2832-ai-map-review, so no run has used this change or the new specs. The only checks on the PR are from Vercel. Locally the 265 map-editor tests pass with--configuration=feat.